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 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 - 3 mai 2018 à 18:12
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.
A voir également:

2 réponses

f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
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?
2
Lemaestro7 Messages postés 15 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 30 janvier 2018
29 janv. 2018 à 09:20
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
0
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
Modifié le 29 janv. 2018 à 10:55
Bonjour,

Je regarde la chose
Z'etes vraiment debutant ???
Juste un detail, le code VBA doit etre dans le classeur3 ou ?????
A+
0
Lemaestro7 Messages postés 15 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 30 janvier 2018 > f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024
29 janv. 2018 à 15:31
oui je le suis en VBA.
0
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
29 janv. 2018 à 14:06
Re,

Fichier traitement pour la meme liste de noms dans les trois classeurs:
Code VBA relativement "simple"
https://mon-partage.fr/f/fr9tiyi3/
0
Lemaestro7 Messages postés 15 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 30 janvier 2018 > f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024
29 janv. 2018 à 15:31
merci.
0
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
avec un peu de modification voila une solution au problème.
0
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
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
0
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
30 janv. 2018 à 10:16
Bon jour,
Quel Probleme!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Si Chemin: voir avec votre chemin de fichier a vous
0
Lemaestro7 Messages postés 15 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 30 janvier 2018 > f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024
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
0
Lemaestro7 Messages postés 15 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 30 janvier 2018 > f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024
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
0
Lemaestro7 Messages postés 15 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 30 janvier 2018 > f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024
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.
0