Bonjour,
Je ne programme pas souvent en vb sous excel.
Si quelqu'un pouvait venir à mon aide, cela serait sympa.
Je dois avoir un problème avec les champs numériques ou caractères.
J'ai simulé quelques lignes dans un fichier excel :
Sur ma première feuille, j'ai des données de num OF avec ls différents étapes de fabrication M1 M2 M3 ainsi que le poids correspondant P1 P2 P3 et sur le deuxième le détail pour l'of avec les différentes machines et pour chque le détail des productions.
Première feuille : Feuil1
OF M1 M2 M3 P1 P2 P3
000000001 PR5 BO2 PES 1000 800 700
000000002 FM3 S18 PES 2000 1800 1500
000000003 FM3 S18 PES 900 800 700
000000004 FM3 S21 PES 1000 950 900
000000005 FM3 S18 PES 700 650 600
Deuxième feuille : Feuil2
OF OPE MACH DATE SAISIE POSTE SAISIE POIDS
000000001 3 PES 11/12/2012 1 DATACOLL 2000
000000001 3 PES 11/12/2012 2 TINTIN 10000
000000001 3 PES 11/12/2012 3 TOTO 3000
000000001 3 PES 12/12/2012 2 TOTO 400
000000001 3 PES 12/12/2012 3 DATACOLL 5000
Je sélectionne le PES de la 1ère ligne et j'appuie sur le bouton recherche qui pointe sur une macro :
Et le résultat s'affiche sur la première feuille :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Sub Macro1() Dim tableau() Dim y, compteur As Long Dim L, C, v1 Dim v2 Dim Liste, NL As String Worksheets("Feuil1").Activate MsgBox ActiveCell.Value L = ActiveCell.Row C = ActiveCell.Column v1 = Cells(L, 1) v2 = Cells(L, C) Worksheets("Feuil2").Activate For y = 1 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(y, 1) = v1 And Cells(y, 3) = v2 Then compteur = compteur + 1 ReDim Preserve tableau(20, compteur) tableau(1, compteur) = Cells(y, 4) tableau(2, compteur) = Cells(y, 5) tableau(3, compteur) = Cells(y, 6) tableau(4, compteur) = Cells(y, 7) End If Next y NL = Chr(10) & Chr(13) '' For y = 1 To UBound(tableau) For y = 1 To compteur Liste = Liste & tableau(1, y) & " " & tableau(2, y) & " " & tableau(3, y) & " " & tableau(4, y) & NL Next y Worksheets("Feuil1").Activate MsgBox "Nbre de Saisie : " & compteur & " Pour l'OF : " & v1 & NL & "Date Poste User Pds " & NL & Liste End Sub
Petite fenêtre Microsoft EXcel Msg Box :
Nbre de Saisie : 5 Pour l'OF : 000000001
Date Poste User Pds
11/12/2012 1 DATACOLL 2000
11/12/2012 2 TINTIN 10000
11/12/2012 3 TOTO 3000
12/12/2012 2 TOTO 400
12/12/2012 3 DATACOLL 5000
Cela fonctionne bien sauf que mes poids ne sont pas alignés.
D'autre part si je veux rechercher mon of et le numéro de mon étape qui correspond à la cellule active -1 cela ne fonctionne pas.
Merci pour votre aide
Partager