Macro qui compare deux cellule de deux fichiers different. [Fermé]

Signaler
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018
-
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
-
salut à tous.
voila je suis débutant en VBA, je voudrais écrire une macro qui va me permettre de les cellules d'un fichier 1 avec les cellules d'un fichier 2 et reporter le résultat dans un autre fichier excel en écrivant s'il y a différence "faux" par exemple et si elle sont identique "vrai". merci pour votre aide.

2 réponses

Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
Bonjour,

Vous pouvez mettre a dispo un exemple des deux fichiers a comparer et celui qui reçoit l'info?
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018

Bonjour. le principe est le suivant. j'ai un fichier qui me vient d'un enseignant et j'ai un fichier que je récupère de ma bd que je compare avec celui de l'enseignant. si il y a des notes qui manque, ça m’écrit "pas de note" dans le troisième classeur.
https://www.cjoint.com/c/HADirNexaGO classeur 1
https://www.cjoint.com/c/HADisKMz62O classeur 2
https://www.cjoint.com/c/HADitBGVNGO classeur 3
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
Bonjour,

Je regarde la chose
Z'etes vraiment debutant ???
Juste un detail, le code VBA doit etre dans le classeur3 ou ?????
A+
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018
>
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021

oui je le suis en VBA.
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
Re,

Fichier traitement pour la meme liste de noms dans les trois classeurs:
Code VBA relativement "simple"
https://mon-partage.fr/f/fr9tiyi3/
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018
>
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021

merci.
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018

avec un peu de modification voila une solution au problème.
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018
>
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021

Merci beaucoup pour votre aide. sans vous je ne serai pas arriver.

c'est presque la meme chose que vous que j'ai faites, à part que j'ai aussi mis une boucle qui compte les cellules des la ligne 1.
Messages postés
15
Date d'inscription
vendredi 26 janvier 2018
Statut
Membre
Dernière intervention
30 janvier 2018

voila mon le code avec les modifications que



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

'ouverture classeur 1 pour recupe tableau notes
Workbooks.Open (Chemin & "Classeur1.xlsx")

With Worksheets("feuil1")
'dernier cellule non vide colonne A
DernLigne = .Range("A" & Rows.Count).End(xlUp).Row
'dernier cellule non vide ligne 1
DernColonne = .Cells(1, Cells.Columns.Count).End(xlToLeft).Column
End With

'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


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



'-------------------------------------------
'| traitement des tableaux notes |
'-------------------------------------------

'boucle pour ecriture de l'entete
For NL = 1 To DernLigne
TN_Res(NL, 1) = TN_1(NL, 1)
Next NL

For NC = 1 To DernColonne
TN_Res(1, NC) = TN_1(1, NC)
Next NC

'boucle sur ligne colonne A
For NL = 2 To DernLigne
'boucle sur les colonnes
For NC = 2 To DernColonne
If TN_1(NL, NC) <> TN_2(NL, NC) Then 'contenus cellules differents
TN_Res(NL, NC) = "Pas de notes" '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
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
Re,

Ok, c'est tres bien.

Bonne route
Bonjour,
Je suis dans le même cas que vous de comparaison de 2 fichiers sauf que moi mes fichiers ont l'extension .csv qlq 1 aurait il une idée de comment faire la comparaison avec du vba?
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
Bonjour abir,
une proposition: faire l'import des deux fichiers csv l'un apres l'autre dans une feuille excel, mettre en memoire les infos des deux fichiers dans deux tableaux et faire le traitement comme ci dessus soit comme Lemaestro7 qui utilise une plage TN_Res pour ecrire le resultat ou comme moi qui ecrit directement dans les cellules resultat.
Tout depend de ce que vous voulez.

Vous connaissez le VBA?