Macro/ verification de donnees/Erreur 1004
Bonjour a tous,
Je viens solliciter votre aide car j'ai un problème sous vba que je n'arrive pas a résoudre malgré mes recherches sur internet et ce forum. ::D
Voila ce que je souhaite faire :
-J'ai 2 fichiers excel : je cherche a vérifier l’intégrité et la cohérence des donnes du premier fichier par rapport au 2 eme qui me sert de référence.
-1er fichier :fichier a traiter
-2e fichier:fichier de reference
Pour cela je souhaite parcourir chaque cellule de la colonne G du 1er (ligne i) et chercher le même contenu dans le 2e fichier (ligne j). Ensuite vérifier que le contenu de E(i) = E(j) et N(i)=N(j), si la reponse est non colorier la ligne i et j de la même couleur et incrémenter une balise pour compter le nombre d'erreur et l'afficher par la suite.
Le but étant de vérifier que durant la manipulation sur le fichier 2, aucune donne n'est été intervertit par mégarde etc...
J'ai une erreur sur la ligne
Code:
While Workbooks(Nom1).Worksheet("Master Extraction").Range("G" & i).Value <> Workbooks(Nom2).Worksheet("Master Extraction").Range("G" & j).Value
qui me renvoie une erreur 438 : propriété ou méthode non gérée par cet objet.
Voici mon code vba :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| Private Sub IdentifieProbleme_Click()
Dim Nom1 As String
Dim Nom2 As String
Dim i As Integer
Dim max1 As Integer
Dim max2 As Integer
'j'ouvre les deux classeur
Nom1 = ThisWorkbook.Name 'Fichier1.xls
Call Ouvre
Nom2 = ActiveWorkbook.Name ' fichier2.xls
Windows(Nom1).Activate
max1 = Range("E65536").End(xlUp).Row
Windows(Nom2).Activate
max2 = Range("E65536").End(xlUp).Row
For i = 2 To max1
j = 2
While Workbooks(Nom1).Worksheet("Master Extraction").Range("G" & i).Value <> Workbooks(Nom2).Worksheet("Master Extraction").Range("G" & j).Value
j = j + 1
Wend
If Workbooks(Nom1).Worksheet("Master Extraction").Range("E" & i).Value <> Workbooks(Nom2).Worksheet("Master Extraction").Range("E" & j).Value & Workbooks(Nom1).Worksheet("Master Extraction").Range("N" & i).Value <> Workbooks(Nom2).Worksheet("Master Extraction").Range("N" & j).Value Then
Workbooks(Nom1).Worksheet("Master Extraction").Range("E" & i).EntireRow.Font.Color = i
Workbooks(Nom2).Worksheet("Master Extraction").Range("E" & j).EntireRow.Font.Color = i
probleme = probleme + 1
End If
Next i
If probleme > 0 Then MsgBox "Il y a " & probleme & " erreurs", vbCritical
End Sub |
Fonction ouvre :
Code:
1 2 3 4 5 6 7 8 9 10 11
| Function Ouvre()
Dim wbMyWb As Workbook
Dim Nom_Fichier As Variant
Nom_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls")
If Nom_Fichier <> False Then
Set wbMyWb = Workbooks.Open(Nom_Fichier)
wbMyWb.Activate
End If
End Function |
Merci d'avance de m’éclairer de vos lumières:ccool: