Bonjour,
Je suis bloquee depuis 1h sur une macro. Je peux montrer le code mais pas les donnees qui sont confidentielles.
J'utilise la fonction FIND pour comparer 2 onglets. Chaque onglet a en colonne A un ID qui me sert de clé pour comparer l'occurrence de cette ligne possedant cet ID dans chaque onglet.
Excel me fait la comparaison, mais a un moment ça bugge avec l'erreur suivante:
"runtime error 91
Object variable or With block variable not set"
J'ai compris que Excel va bien jusqu'au bout, mais je ne parviens pas a gerer le cas ou l'ID n'est pas trouvee dans le premier fichier sans provoquer d'erreur qui bloque le derniere partie de la macro (masquer les colonnes), voici mon code (de debutante), des fois que quelqu'un peut me depanner:
Merci d'avance !
Je suis bloquee depuis 1h sur une macro. Je peux montrer le code mais pas les donnees qui sont confidentielles.
J'utilise la fonction FIND pour comparer 2 onglets. Chaque onglet a en colonne A un ID qui me sert de clé pour comparer l'occurrence de cette ligne possedant cet ID dans chaque onglet.
Excel me fait la comparaison, mais a un moment ça bugge avec l'erreur suivante:
"runtime error 91
Object variable or With block variable not set"
J'ai compris que Excel va bien jusqu'au bout, mais je ne parviens pas a gerer le cas ou l'ID n'est pas trouvee dans le premier fichier sans provoquer d'erreur qui bloque le derniere partie de la macro (masquer les colonnes), voici mon code (de debutante), des fois que quelqu'un peut me depanner:
Code:
Sub newtest()
Dim c As Range
Dim MyID As Integer
Dim co As Object
Dim theRow As Integer
Set IDListOLD = Sheet4.Range("A1", Sheet4.Range("A65536").End(xlUp))
Set IDListNEW = Sheet2.Range("A1", Sheet2.Range("A65536").End(xlUp))
i = 1
curseur = 2
For Each c In IDListNEW
i = i + 1
'select the contribution ID
MyID = Sheet2.Range("A" & i)
Set co = IDListOLD.Find(MyID)
theRow = co.Row
'test: change in Donor, column C
'test: change in Award number, column E
'test: change in Channel, column F
'test: change in Geography, column H
'test: change in Amount in local currency, column M
'test: change in Amount with indirect cost, column N
'test: change in Start date, column Q
If Sheet2.Range("C" & i) <> Sheet4.Range("C" & theRow) Or Sheet2.Range("E" & i) <> Sheet4.Range("E" & theRow) Or Sheet2.Range("F" & i) <> Sheet4.Range("F" & theRow) Or Sheet2.Range("H" & i) <> Sheet4.Range("H" & theRow) Or Sheet2.Range("M" & i) <> Sheet4.Range("M" & theRow) Or Sheet2.Range("N" & i) <> Sheet4.Range("N" & theRow) Or Sheet2.Range("Q" & i) <> Sheet4.Range("Q" & theRow) Then
Sheet2.Select
Range("A" & i, "AD" & i).Select
Selection.Copy
Sheet3.Select
Range("A" & curseur, "AD" & curseur).Select
ActiveSheet.Paste
curseur = curseur + 1
Sheet4.Select
Range("A" & theRow, "AD" & theRow).Select
Selection.Copy
Sheet3.Select
Range("A" & curseur, "AD" & curseur).Select
ActiveSheet.Paste
curseur = curseur + 1
End If
Set co = Nothing
Next c
Sheet3.Select
Columns("B:B").Select
Selection.EntireColumn.Hidden = True
Columns("D:D").Select
Selection.EntireColumn.Hidden = True
Columns("I:L").Select
Selection.EntireColumn.Hidden = True
Columns("P:P").Select
Selection.EntireColumn.Hidden = True
Columns("R:AB").Select
Selection.EntireColumn.Hidden = True
End Sub
Merci d'avance !
Dernière modification par un modérateur: