Bonjour le forum,
Suite à la lecture de sujet sur le tri de 2 fichiers Excel, j ai tenté de modifier une Macro.
Mais je me perds sur la fin de recherche .find quand c et Nothing.
Mon projet :
1 classeur avec une liste de nom, statut, élu le, né le, décédé le. Qui est ma base pour travailler (Le grand livre.xlms)
1 classeur avec nom, date de naissance et age ou je travail avec la macro (Composition AT)
[strike]
moderator dixit : Pas de fichier plein de macros s'il te plaît.
Mon soucis est que lors de la boucle find si un nouveau nom ce trouve dans ma liste d'origine c devient nothing est saute la ligne alors que je voudrais le récupérer et le copier dans le fichier Composition AT.
Ci joint le code que j'ai retravailler :
Merci pour l'aide qui sera apporter
Suite à la lecture de sujet sur le tri de 2 fichiers Excel, j ai tenté de modifier une Macro.
Vous devez être connecté pour voir les liens.
Mais je me perds sur la fin de recherche .find quand c et Nothing.
Mon projet :
1 classeur avec une liste de nom, statut, élu le, né le, décédé le. Qui est ma base pour travailler (Le grand livre.xlms)
1 classeur avec nom, date de naissance et age ou je travail avec la macro (Composition AT)
Vous devez être connecté pour voir les images.
[strike]
Vous devez être connecté pour voir les liens.
Vous devez être connecté pour voir les liens.
[/strike]moderator dixit : Pas de fichier plein de macros s'il te plaît.
Mon soucis est que lors de la boucle find si un nouveau nom ce trouve dans ma liste d'origine c devient nothing est saute la ligne alors que je voudrais le récupérer et le copier dans le fichier Composition AT.
Ci joint le code que j'ai retravailler :
Code:
Sub Test2()
Dim I&, Z1 As Variant, Z2 As Integer, Z3 As Long, Y As Boolean, Y1 As Boolean, Y2 As Boolean, Y3 As Boolean, c
Dim iLRB%
Dim LGL As Workbook
Dim CAT As Workbook
Dim LG As Worksheet
Dim B As Worksheet
' Workbooks.Open Filename:=ThisWorkbook.Path & "\composition AT.xlsm", Local:=True
Set LGL = Workbooks("Le grand Livre.xlsm")
Set LG = LGL.Worksheets("Le grand livre")
Set CAT = Workbooks("composition AT.xlsm")
Set B = CAT.Worksheets("BASE")
'le rapprochement. Classeur(b) est celui ou on va chercher des différences
With B.Range("A1:A10")
iLRB = B.Cells(1000, 1).End(xlUp).Row
'Active le classeur de référence
LGL.Activate
'Pour chaque cellule dans la colonne 2 de feuil(1) de classeur(a)
For Each o In LG.Range("B3:B10")
'noter le N° de ligne
I = o.Row
'mémoriser la valeur de la cellule
Z1 = o.Value
'et celle de né le
Z2 = Cells(I, 6).Value
'et celle de decede le
Z3 = Cells(I, 7).Value
'cherche Z1 dans With...
Set c = .Find(Z1, LookIn:=xlValues, LookAt:=xlWhole)
'Si trouvé mémorise le N° de ligne
If Not c Is Nothing Then
FirstRow = c.Row
Do
'Pose un drapeau
Y = True
'si nom = faux pose un drapeau
If Z1 = False Then Y1 = True
'Si ne le est égale Z2 pose un autre drapeau
If Z2 = LG.Cells(I, 6).Value Then Y2 = True
'Si decede le est superieur à 2 pose un autre drapeau
If Z3 > 2 Then Y3 = True
'Si les des 2 drapeaux sont vrai...
If (Y And Y3) Then
'Colore la cellule colonne 1
.Cells(c.Row, 1).Interior.ColorIndex = 45
'Si les des 2 drapeau sont vrai...
ElseIf (Y1 And Y2) Then
'copie la valeur de la cellule apres la derniere ligne
B.Cells(iLRB + 1, 1).Value = LG.Cells(I, 2).Formula
iLRB = iLRB + 1
End If
'réinitialise les drapeaux
Y = False: Y1 = False: Y2 = False: Y3 = False
'cherche l'occurrence suivante
Set c = .FindNext(c)
'...Tant qu 'on n'est pas revenu à la ligne de départ
Loop While Not c Is Nothing And c.Row <> FirstRow
'réinitialise la variable avant de changer de...
FirstRow = ""
'...cellule de référence (o) suivante
End If
Next
End With
End Sub
Merci pour l'aide qui sera apporter