désolé pour le temps de réponse j'étais sur une solution et une solution qui marche!!!
alors voici une partie de ma base de donné
MACHINE ELEMENT CIRCUIT TAILLE PIECECIRCUIT Qts sales Qts propre
HAX00 ELEMENT_RESERVOIR TAILLE 1 RESERVOIR 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 PORTE 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 FOURREAUX 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 PAL 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 TIGE 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 CAPUCHON 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 BOUCHON 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 2 RESERVOIR
HAX00 ELEMENT_RESERVOIR TAILLE 2 PORTE
HAX00 ELEMENT_RESERVOIR TAILLE 2 FOURREAUX
HAX00 ELEMENT_RESERVOIR TAILLE 2 PAL
HAX00 ELEMENT_RESERVOIR TAILLE 2 TIGE
HAX00 ELEMENT_RESERVOIR TAILLE 2 CAPUCHON
HAX00 ELEMENT_RESERVOIR TAILLE 2 BOUCHON
HAX00 ELEMENT_RESERVOIR TAILLE 3 RESERVOIR
HAX00 ELEMENT_RESERVOIR TAILLE 3 PORTE
HAX00 ELEMENT_RESERVOIR TAILLE 3 FOURREAUX
HAX00 ELEMENT_RESERVOIR TAILLE 3 PAL
HAX00 ELEMENT_RESERVOIR TAILLE 3 TIGE
HAX00 ELEMENT_RESERVOIR TAILLE 3 CAPUCHON
HAX00 ELEMENT_RESERVOIR TAILLE 3 BOUCHON
HAX00 ELEMENT_POMPE TAILLE 1 TUBE PISTON 4 2
HAX00 ELEMENT_POMPE TAILLE 1 COLLECTEUR 4 2
HAX00 ELEMENT_POMPE TAILLE 1 TIGE 4 2
HAX00 ELEMENT_POMPE TAILLE 1 COUPELLE 4 2
HAX00 ELEMENT_POMPE TAILLE 1 GUIDE 12 2
HAX00 ELEMENT_POMPE TAILLE 1 PORTE 4 2
.....
le but était de m'incrémenter les différentes quantité a l'aide d'un formulaire
ce formulaire je l'est constitué grâce a des liste de liste qui font référence au type de machine, la taille, la propreté(sale ou propre) et si l'élément était complet ou pas.
ma solution à était celle ci
lorsque l'opérateur a fini de remplir le formulaire grâce a la formule concassé je créer un sorte de nom pour une page( page que j'ai déja créer avant) ex HA_C_T1_S --> traduction pour la machine HAX00, circuit complet, taille 1, sale.
Dans cette feuille j'ai copier tout les lignes qui a appartienne à la machine hax00 de taille1, ainsi de suite pour les autrre machine,autre taille...
voila le plus important la marco que j'ai utilisé:
Code:
Sub Macro_test()
'
' Macro_test Macro
' Macro enregistrée le 08/03/2010 par Verdi
If Range("c7") = "PI" Then
Call piece
Else
Call recherchefeuille
End If
End Sub
'recherche feuille_____________________________________________________________
Sub recherchefeuille()
a = Sheets("formulaire").Range("c8")
Sheets(a).Select
Call COPIE
End Sub
'copie elements feuille dans stockage____________________________________________________
Sub COPIE()
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("STOCKAGE").Select
Range("a1").Select
ActiveSheet.Paste
Call propreté
End Sub
'Appeler la macro recherche______________
Sub propreté()
If Sheets("Formulaire").Range("C6") = "S" And Sheets("Formulaire").Range("c7") = "PI" Then
Call recherchePI_S
End If
If Sheets("Formulaire").Range("C6") = "S" And Sheets("Formulaire").Range("c7") = "CO" Then
Call rechercheP_S
End If
If Sheets("Formulaire").Range("C6") = "S" And Sheets("Formulaire").Range("c7") = "PA" Then
Call rechercheP_S
End If
If Sheets("Formulaire").Range("C6") = "P" And Sheets("Formulaire").Range("c7") = "PI" Then
Call recherchePI_P
End If
If Sheets("Formulaire").Range("C6") = "P" And Sheets("Formulaire").Range("c7") = "CO" Then
Call rechercheP_P
End If
If Sheets("Formulaire").Range("C6") = "P" And Sheets("Formulaire").Range("c7") = "PA" Then
Call rechercheP_P
End If
End Sub
Sub rechercheP_S()
' boucle de recherche bdd
Sheets("BDD2").Select
o = Sheets("STOCKAGE").Range("A1").Value
p = Sheets("STOCKAGE").Range("B1").Value
q = Sheets("STOCKAGE").Range("C1").Value
r = Sheets("STOCKAGE").Range("D1").Value
Do While Sheets("STOCKAGE").Range("A1") <> ""
Dim i As Integer
For i = 2 To 200
If Range("A" & i) = Sheets("STOCKAGE").Range("A1").Value And Range("B" & i) = Sheets("STOCKAGE").Range("B1").Value And Range("C" & i) = Sheets("STOCKAGE").Range("C1").Value And Range("D" & i) = Sheets("STOCKAGE").Range("D1").Value Then
Range("e" & i).Value = Range("e" & i).Value + 1 * Sheets("formulaire").Range("b10").Value
Call Macro2
Sheets("BDD2").Select
End If
Next i
Loop
End Sub
Sub rechercheP_P()
' boucle de recherche bdd
Sheets("BDD2").Select
o = Sheets("STOCKAGE").Range("A1").Value
p = Sheets("STOCKAGE").Range("B1").Value
q = Sheets("STOCKAGE").Range("C1").Value
r = Sheets("STOCKAGE").Range("D1").Value
Do While Sheets("STOCKAGE").Range("A1") <> ""
Dim i As Integer
For i = 2 To 200
If Range("A" & i) = Sheets("STOCKAGE").Range("A1").Value And Range("B" & i) = Sheets("STOCKAGE").Range("B1").Value And Range("C" & i) = Sheets("STOCKAGE").Range("C1").Value And Range("D" & i) = Sheets("STOCKAGE").Range("D1").Value Then
Range("f" & i).Value = Range("f" & i).Value + 1 * Sheets("formulaire").Range("b10").Value
Call Macro2
Sheets("BDD2").Select
End If
Next i
Loop
End Sub
Sub recherchePI_S()
' boucle de recherche bdd
Sheets("BDD2").Select
o = Sheets("STOCKAGE").Range("A1").Value
p = Sheets("STOCKAGE").Range("B1").Value
q = Sheets("STOCKAGE").Range("C1").Value
r = Sheets("STOCKAGE").Range("D1").Value
Do While Sheets("STOCKAGE").Range("A1") <> ""
Dim i As Integer
For i = 2 To 200
If Range("A" & i) = Sheets("STOCKAGE").Range("A1").Value And Range("B" & i) = Sheets("STOCKAGE").Range("B1").Value And Range("C" & i) = Sheets("STOCKAGE").Range("C1").Value And Range("D" & i) = Sheets("STOCKAGE").Range("D1").Value Then
Range("e" & i).Value = Range("e" & i).Value + Sheets("stockage").Range("e1").Value
Call Macro2
Sheets("BDD2").Select
End If
Next i
Loop
End Sub
Sub recherchePI_P()
' boucle de recherche bdd
Sheets("BDD2").Select
o = Sheets("STOCKAGE").Range("A1").Value
p = Sheets("STOCKAGE").Range("B1").Value
q = Sheets("STOCKAGE").Range("C1").Value
r = Sheets("STOCKAGE").Range("D1").Value
Do While Sheets("STOCKAGE").Range("A1") <> ""
Dim i As Integer
For i = 2 To 200
If Range("A" & i) = Sheets("STOCKAGE").Range("A1").Value And Range("B" & i) = Sheets("STOCKAGE").Range("B1").Value And Range("C" & i) = Sheets("STOCKAGE").Range("C1").Value And Range("D" & i) = Sheets("STOCKAGE").Range("D1").Value Then
Range("F" & i).Value = Range("F" & i).Value + Sheets("stockage").Range("e1").Value
Call Macro2
Sheets("BDD2").Select
End If
Next i
Loop
End Sub
[code]
_________________
Modo: Pour fermer, il faut écrire [ / CODE ].
alors dans cette macro, les différente fonction utilisé son les if pour les conditions, les do while pour les boucles.
j'espere que sa pourra aidé des passants merci encore