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. :![]()
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 lignequi me renvoie une erreur 438 : propriété ou méthode non gérée par cet objet.
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part While Workbooks(Nom1).Worksheet("Master Extraction").Range("G" & i).Value <> Workbooks(Nom2).Worksheet("Master Extraction").Range("G" & j).Value
Voici mon code vba :
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
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 vb : Sélectionner tout - Visualiser dans une fenêtre à part
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![]()
Partager