FORUM Tom's Hardware » Le monde de Windows » Développement » Macro VBA Excel : Comparaison des deux 1ères colonnes de 2 fichiers Ex
 

Macro VBA Excel : Comparaison des deux 1ères colonnes de 2 fichiers Ex

Il y a 304 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Macro VBA Excel : Comparaison des deux 1ères colonnes de 2 fichiers Ex
 
Plus d'informations

Macro VBA Excel : Comparaison des deux 1ères colonnes de 2 fichiers Excel
 
 
Bonsoir,
 
J'ai une question concernant VBA, merci pour les réponses concernant les formules, j'ai acheté un livre pour m'y remettre et ça va mieux. Le plus dur a été de s'y remettre.
Sinon, je me suis remis à faire du VB et ça bogue un peu.
Donc voici ce que je cherche :
 
 
Bonjour, j'ai 1 objectif que j'atteins étape par étape, donc, je teste au fur à mesure ce que je fais et sais faire.
Donc, mon objectif final, ce n'est pas grave si je l'obtient pas car je le cherche.
Mais, j'ai 1 objectif intermédiare que je n'ai pas atteint et je bloque, je souhaite passer cette étape.
L'objectif final : Comparer l'égalité des colonnes B du fichier 1 avec la colonne B du fichier 2
Sachant que la colonne du fichier 2 est classé de 1 à x (ex : de 1 à 1000, colonne A)
Le 1er fichier est un ancien fichier classé qui est le même fichier trier selon une autre colonne, la colonne A, les 1 à x (c'est à dire 1 à 1000 dans le désordre, le fichier est sauvegardé et comparé au fichier mis à jour quand j'ai le temps)
Sauf que sur la colonne B, des modifications sont faites.
Donc, par rapport au 1er fichier, la 1ère colonne A ne change pas, de 1 à 1000, mais est dans le désordre, la colonne B, elle, change, elle n'est plus la même.
Donc, je dois vérifier si le contenu de la colonne B correspond dans les fichies au même numéro de la colonne A qui reste invariant, mais, classé dans le désordre.
Le 1er fichier de référence, la colonne A reste la même, s'il y a eu 5 fichiers diffarents, la colonne A est inchagée, triée dans le désordre, mais, des modifications ont pu avoir lieu dans la Colonne B durant toute l'année, le but est de faire en sorte que le 1er fichier, la colonne A reste inchangée, mais, la colonne B est mise à jour.
Voilà ce que je cherche à faire.
La seule chose, c'est que dans ce fichier, des lignes peuvent être rajoutées, la colonne A se rajoute, elle ne varie pas, mais change dans l'ordre, la ligne B attribuée, elle, est liée à la ligne A, mais continue a évoluée, donc, je ne peux pas dire que la ligne A reste fixe, elle change.
 
Exemple :
J'ai 100 lignes, colonne A :  De la ligne 1 à 100, la colonne B correspond à une colonne A fixe
Une fois les lignes C, D ou autres triées, j'ai A qui n'est plus trié, B correspond, mais au fil du temps, elle change de valeur.
A la fin de l'année, je veux que A soit toujours trié pareil, mais B a changé, je veux juste mettre à jour B avec A correspondant, tjrs de 1 à 100.
J'ai testé une routine pas à pas, mais quand tout marche et que je teste le tout, ça ne marche plus.
Mon boulot me prenant assez de temps et étant donné que je dois faire un bilan en fin d'année sur mes comptes postaux, j'ai du mal à tout trier, donc, si quelqu'un a une meilleure routine ou une idée, je suis intéressé.
 
Pour faire plus vite, j'ai décidé de coller une colonne dans une autre et de tout faire dans un seul fichier, mais si je peux faire ça à partir de 2 fchiers différents, ça peut m'aider.
 
Donc, si je peux trouver une astuce pour aller plus vite ou si je me suis tromper dans mon idée, merci de me l'indiquer :
 
J'ai pris le fichier 1, j'ai copié la 1ère colonne dans la colonne A et la colonne B dans la colonne D du nouveau fichier.
J'ai pris le 2ème fichier, j'ai copié la colonne A dans la colonne B du nouveau fichier et la colonne B dans la colonne C du nouveau fichier.
Ensuite, j'ai comparé la colonne A avec la Colonne B, quand j'ai égalité entre la colonne A et B, j'écrase la colonne C par la colonne D car la colonne D est plus récente que la colonne C.
Voilà. Si j'arrive à faire celà, j'ai gagné du temps, mais, si je peux ne pas avoir à faire ces copier coler et comparer ces deux fichiers, ce sera mieux, si quelqu'un a une solution, merci.
 
Sujet : Comparer les colonnes dans l'ordre du fichier 1 avec la colonne du fichier 2, dans le désordre; Si la colonne B du fichier 2 est différente que la colonne B du fichier 1 en fonction du numéro de la colonne A, alors, écraser la colonne B du fichier 1.
 
Voici ce que j'ai fait,  
 
Sub Comparaison()  
'  
' transfert Macro  
' Macro enregistrée le 09/01/2007 par laurenterc  
'  
  Dim ObjetClasseur As Workbook  
  Dim Lig     As Long  
  Dim Lign    As Long  
  Dim Col     As String  
  Dim Colonn  As String  
  Dim NbrLig  As Long  
  Dim NumLig  As Long  
  Dim NombLig  As Long  
  Dim NbsupLig  As Long  
  Dim Val     As Long  
   
  ' Set ObjetClasseur = GetObject("D:\Donnees\DossierEric\Bilan_Annuel.xls" )  
  ' Set ObjetClasseur = GetObject("D:\An2007\Eric\Total.xls" )  
 '  A ne pas considérer, seulement si je vais chercher les fichiers dans 2 dossiers différents
 
  Sheets("Feuil1" ).Activate ' feuille de destination  
  Col = "A" ' Colonne à tester  
  Colonn = "B" ' Colonne de référence  
  NumLig = 0  
  NbsupLig = 0  
  With Sheets("Feuil2" ) ' feuille source  
    NbrLig = .Cells(65536, Col).End(xlUp).Row  
    NombLig = .Cells(65536, Col).End(xlUp).Row  
  For Lig = 1 To NbrLig  
  If .Cells(Lig, Col).Value <> "" Then  
    Val = .Cells(Lig, Col).Range("A1" )  
      For Lign = 1 To NombLig  
        If .Cells(Lign, Colonn).Value <> "" Then  
          .Cells(Lign, Colonn).Range("B1" ).Select  
            If Val = .Cells(Lign, Colonn).Value Then  
            .Cells(Lign, Colonn).Range("C1" ).Copy  
            .Cells(Lig, Col).Range("D1" ).Paste  
            End If  
            NombLig = NombLig + 1  
            Cells(NombLig, 1).Select  
          End If  
      Next  
  End If  
  NumLig = NumLig + 1  
  Cells(NumLig, 1).Select  
  Next  
  End With  
   
'  
    ActiveWorkbook.Save  
    Application.WindowState = xlMinimized  
    Application.WindowState = xlNormal  
    Application.WindowState = xlMinimized  
    Range("A1" ).Select  
    Cells.Find(What:="lan", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _  
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _  
        .Activate  
    Range("F64" ).Select  
    ActiveWorkbook.Save  
    ActiveWorkbook.Save  
    ActiveWorkbook.Save  
    ActiveWorkbook.Save  
    ActiveWorkbook.Save  
End Sub
 
 


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Le monde de Windows » Développement » Macro VBA Excel : Comparaison des deux 1ères colonnes de 2 fichiers Ex
 

Annonces Google
Publicité