bertrand1202
XLDnaute Occasionnel
Bonsoir
J 'ai écrit un code afin d'ajouter en page "RECAP" une ligne si le critere ne figure pas dans cette colonne mais dans celle d'une autre page.
Je demande de l'aide car ma macro reste inerte, j 'ai repris des elements du forum et essaye d' adapter .
Je joins le code et le fichier au cas où.
Peut ^etre l'oubli sautera t il aux yeux des pros du VBA , je ne décèle pas l'erreur.
Merci de votre aide .
Le code :
complementlibellecolonnes Macro
' Macro enregistrée le 22/12/2008 par Customer
'
'
Dim Ws As Worksheet
Dim Vcellule As Range
Dim Vligne As Integer
Dim Trouve As Range
Dim c As Byte 'c correspond a colonnes
On Error Resume Next 'es ce indispensable?
'on recherche ligne à ligne les elements de la colonne "A" de la feuille "RECAP" et on compare chacune des lignes à la colonne "A " des feuilles suivantes
'si l' éléments contenu dans la colonne "A" des feuilles suivantes n'est pas présent dans la colonne "a" de la feuille "RECAP",
'on insère une ligne dans la colonne "A" de la feuille "RECAP"en suivant l'ordre des numeros ( avant ou apres
'et l'on copie les colonnes "A" à"E" de la feuille sur la feuille "RECAP"
'exemple : numero10077 avant 10078 et apres 10076;
For Each Ws In Active.Workbook.Worksheets 'boucle sur les feuilles du classeur
If Ws.Name <> "RECAP" Then 'on compare le resultat de la Vcellule a celui trouvé dans la colonne"A" de la feuille "RECAP"
For Each Vcellule In Ws.Range("a4:a" & Ws.Range("A65536").End(xlUp).Row)
Set Trouve = Sheets '"RECAP").range("a4:a3000").find(Vcellule.value,lookin:xlvalue)
If Not Trouve Is Nothing Then 'si on ne trouve pas la valeur , on ajoute une ligne
Vcellule.EntireRow.Insert.Sheets ("RECAP")
For c = 1 To 5 '(colonne("a" à"e")
Copy.Paste.Sheets("RECAP").Cells(Vligne, c) = Ws.Cells(Vligne, c) 'on copie les elements des celules des colonnes (3A3 à "E3 sur la feuille "RECAP"
Next c
End If
Next Vcellule
End If
Next Ws
End Sub
J 'ai écrit un code afin d'ajouter en page "RECAP" une ligne si le critere ne figure pas dans cette colonne mais dans celle d'une autre page.
Je demande de l'aide car ma macro reste inerte, j 'ai repris des elements du forum et essaye d' adapter .
Je joins le code et le fichier au cas où.
Peut ^etre l'oubli sautera t il aux yeux des pros du VBA , je ne décèle pas l'erreur.
Merci de votre aide .
Le code :
complementlibellecolonnes Macro
' Macro enregistrée le 22/12/2008 par Customer
'
'
Dim Ws As Worksheet
Dim Vcellule As Range
Dim Vligne As Integer
Dim Trouve As Range
Dim c As Byte 'c correspond a colonnes
On Error Resume Next 'es ce indispensable?
'on recherche ligne à ligne les elements de la colonne "A" de la feuille "RECAP" et on compare chacune des lignes à la colonne "A " des feuilles suivantes
'si l' éléments contenu dans la colonne "A" des feuilles suivantes n'est pas présent dans la colonne "a" de la feuille "RECAP",
'on insère une ligne dans la colonne "A" de la feuille "RECAP"en suivant l'ordre des numeros ( avant ou apres
'et l'on copie les colonnes "A" à"E" de la feuille sur la feuille "RECAP"
'exemple : numero10077 avant 10078 et apres 10076;
For Each Ws In Active.Workbook.Worksheets 'boucle sur les feuilles du classeur
If Ws.Name <> "RECAP" Then 'on compare le resultat de la Vcellule a celui trouvé dans la colonne"A" de la feuille "RECAP"
For Each Vcellule In Ws.Range("a4:a" & Ws.Range("A65536").End(xlUp).Row)
Set Trouve = Sheets '"RECAP").range("a4:a3000").find(Vcellule.value,lookin:xlvalue)
If Not Trouve Is Nothing Then 'si on ne trouve pas la valeur , on ajoute une ligne
Vcellule.EntireRow.Insert.Sheets ("RECAP")
For c = 1 To 5 '(colonne("a" à"e")
Copy.Paste.Sheets("RECAP").Cells(Vligne, c) = Ws.Cells(Vligne, c) 'on copie les elements des celules des colonnes (3A3 à "E3 sur la feuille "RECAP"
Next c
End If
Next Vcellule
End If
Next Ws
End Sub