Salut à tous,
Suite à mon dernier sujet, je rencontre un soucis.
En effet, l'idée c'est de rechercher dans un dossier si le fichier existe, si oui on colorie la case en vert, dans le cas contraire en rouge.
Jusqu'ici, tout marche mais le problème c'est que j'aimerais vérifier si le fichier n'existe pas dans le premier "Dir", alors on cherche dans le second avant de colorier en rouge.
Sub test ()
Dim dlig&, i&, Dir1 As String, Dir2 As String, c As Byte: Application.ScreenUpdating = 0
Dir1 = "C:\Nouveau dossier\"
Dir2 = "C:\Nouveau dossier2\"
dlig = Cells(Rows.Count, 1).End(3).Row
For i = 2 To dlig 'couleur c : 3 = ROUGE ; 4 = VERT
With Cells(i, 1)
If .Value <> "" Then
c = IIf(Dir(Dir1 & .Value & "*.txt") = "", 3, 4)
.Offset(, 1).Interior.ColorIndex = c
d = IIf(Dir(Dir1 & .Value & "*.txt") = "", 3, 4)
.Offset(, 1).Interior.ColorIndex = d
End If
End With
Next i
End Sub
Du coup, je vais traduire ce que j'ai codé :
1) On regarde les lignes vides en colonne A pour retrouver la dernière ligne non vide.
2) Ensuite, de la ligne 2 à la dernière ligne non vide on boucle.
3) On boucle sur l'instruction, si la valeur de Cells ( i , 1 ) n'est pas vide alors..
4) Alors on regarde si le fichier existe dans le Dir1, si non on colorie en rouge, sinon en vert.
C'est là que sa pose problème, on fait la même manipulation que le point "4)" mais dans le Dir2, du coup sa écrase les couleurs que le point "4)" a exécuter.
La finalité, c'est que je ne sais pas comment dire : si le fichier existe, on colorie en vert, sinon en rouge puis on regarde dans un second répertoire (Dir2) sans retoucher au couleur verte.
Après, dans un second temps, je me dit que, il faut qu'on regarde avant tout "coloriage", de regarder dans les deux répertoires systématiquement, mais en réfléchissant c'est une mauvaise idée car imaginons que tout les fichiers sont dans le premier dossier, on n'a pas besoin de regarder dans le second. (du coup perte de temps, mais bon cela dit, on aura forcément des fichiers dans les deux dossiers donc..)
Cordialement