Macro qui compare deux cellule de deux fichiers different.
Fermé
Lemaestro7
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018
-
26 janv. 2018 à 17:05
f894009 Messages postés 17229 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 21 janvier 2025 - 3 mai 2018 à 18:12
f894009 Messages postés 17229 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 21 janvier 2025 - 3 mai 2018 à 18:12
A voir également:
- Macro qui compare deux cellule de deux fichiers different.
- Deux ecran pc - Guide
- Concatener deux cellules excel - Guide
- Faire deux colonnes sur word - Guide
- Fusionner deux fichiers excel - Guide
- Deux comptes whatsapp - Guide
2 réponses
f894009
Messages postés
17229
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2025
1 712
27 janv. 2018 à 07:28
27 janv. 2018 à 07:28
Bonjour,
Vous pouvez mettre a dispo un exemple des deux fichiers a comparer et celui qui reçoit l'info?
Vous pouvez mettre a dispo un exemple des deux fichiers a comparer et celui qui reçoit l'info?
Lemaestro7
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018
30 janv. 2018 à 09:03
30 janv. 2018 à 09:03
avec un peu de modification voila une solution au problème.
Lemaestro7
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018
30 janv. 2018 à 09:04
30 janv. 2018 à 09:04
Sub Bouton1_Cliquer()
Dim TN_1
Dim TN_2
Dim TN_Res As Range
Dim DernLigne As Long
On Error GoTo Fin 'traitement erreur(s)
'fige raffraichissement ecran
Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path & "\"
'mise en memoire tableau notes
With Worksheets("feuil1")
'dernier cellule non vide colonne A
DernLigne = .Range("A" & Rows.Count).End(xlUp).Row
'mise en memoire Plage de cellule
Set TN_Res = .Range("A1:A" & DernLigne)
End With
'ouverture classeur 1 pour recupe tableau notes
Workbooks.Open (Chemin & "Classeur1.xlsx")
'mise en memoire tableau note
TN_1 = Worksheets("feuil1").UsedRange
'fermeture classeur 1
Workbooks("Classeur1.xlsx").Close True
'ouverture classeur 2 pour recupe tableau notes
Workbooks.Open (Chemin & "Classeur2.xlsx")
'mise en memoire tableau note
TN_2 = Worksheets("feuil1").UsedRange
'fermeture classeur 2
Workbooks("Classeur2.xlsx").Close True
'-------------------------------------------
'| traitement des tableaux notes |
'-------------------------------------------
'boucle pour ecriture de l'entete
For NL = 1 To 4
TN_Res(NL, 1) = TN_1(NL, 1)
Next NL
For NC = 1 To 4
TN_Res(1, NC) = TN_1(1, NC)
Next NC
'boucle sur ligne colonne A
For NL = 2 To 4
'boucle sur les colonnes
For NC = 2 To 4
If TN_1(NL, NC) <> TN_2(NL, NC) Then 'contenus cellules differents
TN_Res(NL, NC) = "Pas de note" 'ecriture cellule classeur Resultat
Else 'contenus cellules identiques
TN_Res(NL, NC) = "Ok" 'ecriture cellule classeur Resultat
End If
Next NC
Next NL
ThisWorkbook.Save
Fin:
'raffraichissement ecran ok
Application.ScreenUpdating = True
End Sub
Dim TN_1
Dim TN_2
Dim TN_Res As Range
Dim DernLigne As Long
On Error GoTo Fin 'traitement erreur(s)
'fige raffraichissement ecran
Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path & "\"
'mise en memoire tableau notes
With Worksheets("feuil1")
'dernier cellule non vide colonne A
DernLigne = .Range("A" & Rows.Count).End(xlUp).Row
'mise en memoire Plage de cellule
Set TN_Res = .Range("A1:A" & DernLigne)
End With
'ouverture classeur 1 pour recupe tableau notes
Workbooks.Open (Chemin & "Classeur1.xlsx")
'mise en memoire tableau note
TN_1 = Worksheets("feuil1").UsedRange
'fermeture classeur 1
Workbooks("Classeur1.xlsx").Close True
'ouverture classeur 2 pour recupe tableau notes
Workbooks.Open (Chemin & "Classeur2.xlsx")
'mise en memoire tableau note
TN_2 = Worksheets("feuil1").UsedRange
'fermeture classeur 2
Workbooks("Classeur2.xlsx").Close True
'-------------------------------------------
'| traitement des tableaux notes |
'-------------------------------------------
'boucle pour ecriture de l'entete
For NL = 1 To 4
TN_Res(NL, 1) = TN_1(NL, 1)
Next NL
For NC = 1 To 4
TN_Res(1, NC) = TN_1(1, NC)
Next NC
'boucle sur ligne colonne A
For NL = 2 To 4
'boucle sur les colonnes
For NC = 2 To 4
If TN_1(NL, NC) <> TN_2(NL, NC) Then 'contenus cellules differents
TN_Res(NL, NC) = "Pas de note" 'ecriture cellule classeur Resultat
Else 'contenus cellules identiques
TN_Res(NL, NC) = "Ok" 'ecriture cellule classeur Resultat
End If
Next NC
Next NL
ThisWorkbook.Save
Fin:
'raffraichissement ecran ok
Application.ScreenUpdating = True
End Sub
f894009
Messages postés
17229
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2025
1 712
30 janv. 2018 à 10:16
30 janv. 2018 à 10:16
Bon jour,
Quel Probleme!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Si Chemin: voir avec votre chemin de fichier a vous
Quel Probleme!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Si Chemin: voir avec votre chemin de fichier a vous
Lemaestro7
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018
>
f894009
Messages postés
17229
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2025
30 janv. 2018 à 10:35
30 janv. 2018 à 10:35
au niveau de la boucle For qui recupere la derniere ligne. quand je laisse
For NC = 1 to DernLigne
la boucle ne foncionne pas. c'est comme si la valeur contenu dans cette variable n'est pas un entier
For NC = 1 to DernLigne
la boucle ne foncionne pas. c'est comme si la valeur contenu dans cette variable n'est pas un entier
Lemaestro7
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018
>
f894009
Messages postés
17229
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2025
30 janv. 2018 à 10:50
30 janv. 2018 à 10:50
quand je remplace DernLigne par une valeur ca fonctionne bien. quand j 'essaye d'afficher ce qu'il ya dans la variable DernLigne ca affiche une valeur. mais puisque ca ne fontionne pas dans la boucle, je pense que cette valeur est soit un caractere soit il ya un espace devant. et c'est pour cela que la boucle ne fonctionne pas.
j'ai deja gerer le chemin et tout le reste
j'ai deja gerer le chemin et tout le reste
Lemaestro7
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018
>
f894009
Messages postés
17229
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2025
30 janv. 2018 à 10:52
30 janv. 2018 à 10:52
DernLigne = .Range("A" & Rows.Count).End(xlUp).Row
j'aimerai savoir quel est le type de la donnée qui se trouve dans DernLigne. merci d'avance.
j'aimerai savoir quel est le type de la donnée qui se trouve dans DernLigne. merci d'avance.
29 janv. 2018 à 09:20
https://www.cjoint.com/c/HADirNexaGO classeur 1
https://www.cjoint.com/c/HADisKMz62O classeur 2
https://www.cjoint.com/c/HADitBGVNGO classeur 3
Modifié le 29 janv. 2018 à 10:55
Je regarde la chose
Z'etes vraiment debutant ???
Juste un detail, le code VBA doit etre dans le classeur3 ou ?????
A+
29 janv. 2018 à 15:31
29 janv. 2018 à 14:06
Fichier traitement pour la meme liste de noms dans les trois classeurs:
Code VBA relativement "simple"
https://mon-partage.fr/f/fr9tiyi3/
29 janv. 2018 à 15:31