Macro qui compare deux cellule de deux fichiers different.

Lemaestro7 Messages postés 16 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Vous pouvez mettre a dispo un exemple des deux fichiers a comparer et celui qui reçoit l'info?
    2
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Je regarde la chose
      Z'etes vraiment debutant ???
      Juste un detail, le code VBA doit etre dans le classeur3 ou ?????
      A+
      0
      1. Lemaestro7 Messages postés 16 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        oui je le suis en VBA.
        0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Fichier traitement pour la meme liste de noms dans les trois classeurs:
      Code VBA relativement "simple"
      https://mon-partage.fr/f/fr9tiyi3/
      0
      1. Lemaestro7 Messages postés 16 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        merci.
        0
  2. Lemaestro7 Messages postés 16 Statut Membre
     
    avec un peu de modification voila une solution au problème.
    0
    1. Lemaestro7 Messages postés 16 Statut Membre
       
      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
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bon jour,
      Quel Probleme!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      Si Chemin: voir avec votre chemin de fichier a vous
      0
    3. Lemaestro7 Messages postés 16 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      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
    4. Lemaestro7 Messages postés 16 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      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
    5. Lemaestro7 Messages postés 16 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      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