Bonjour,
Je dois créer un planning où l'on doit rentrer un numéro d'affaire et les heures que l'ouvrier à passer dessus chaque jour.
Etant donné qu'il peut avoir travaillé sur plusieurs chantiers dans la même journée et dans le mois, il y a une colonne supplémentaire permettant de faire un récapitulatif des affaires avec le nombre d'heure total passé sur l'affaire.
J'utilise cette macro :
Sub Macro3()
'
' Macro3 Macro
Dim num_chantier As String
Dim liste_num_chantier As String
Dim TestArray() As String
liste_num_chantier = ""
For a = 4 To 16 Step 3 ''Sur les colonnes 4, 7, 10, 13 et 16
For b = 5 To 35 ''sur les lignes 5 à 35
num_chantier = Feuil1.Cells(b, a)
If InStr(liste_num_chantier, num_chantier) = 0 Then ''si liste des chantiers ne contient pas le numéro de chantier nous l'insérons
If liste_num_chantier = "" Then ''Si la liste est vide
liste_num_chantier = num_chantier
Else ''Si la liste n'est pas vide
liste_num_chantier = liste_num_chantier & "," & num_chantier
End If
ElseIf InStr(liste_num_chantier, num_chantier) = 1 Then ''si liste des chantiers contient e numéro de chantier nous ne faisons rien : pour test. Peut être supprimé par la suite.
End If
Next b
Next a
''Split de liste_num_chantier dans la colonne
Données = Split(liste_num_chantier, ",")
For i = 0 To UBound(Données)
Feuil1.Cells(6 + i, 19) = Données(i)
Next i
End Sub
Si les numéros d'affaires sont dans l'odre croissant, la macro marche parfaitement. Cependant si l'affaire 15 est réalisée avant l'affaire 1 et 5, on ne retrouve que le numéro 15 dans le récapitulatif du mois.
Je ne vois pas du tout où pourrait se trouver l'erreur.
Ci joint un ficher essai.
Merci d'avance
ps : c'est le même problème pour 100 et 10 ...