begin process at 2012 02 15 01:53:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Comparaison VBA


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comparaison VBA

jeudi 5 avril 2007 à 12:56:24 | Comparaison VBA

TiteZ

Bonjour,

J'ai une petite question...

Voila je dois comparaison deux colonnes de deux fichiers excel ( jusque là rien d'extraordinaire) toutefois je dois les comparer selon deux criteres

Je m'explique
pour faire simple

Dans les deux fichiers j'ai 3 colonnes
fichiers 1: Colonnes A B et C
fichiers 2: colonnes D E et F

j'aimerais que pour:
A=D et B=E on compare C à F c'est à dire qu'on grise mette en gras.... chaque cellule F differente de C

Mon probleme c'est au niveau des égalités....
Quelqu'un aurait il une idée ?
Merci!
jeudi 5 avril 2007 à 14:59:05 | Re : Comparaison VBA

fred.toto

Salut,
le nombre de lignes dans chacune de tes colonnes est connu à l'avance ou peut être n'importe quoi?
Fred.
jeudi 5 avril 2007 à 15:01:24 | Re : Comparaison VBA

TiteZ

Non inconnu... Il varie en fonction de l'exctraction que j'ai ...
Merci pour ton aide.
Sarah.
jeudi 5 avril 2007 à 15:06:52 | Re : Comparaison VBA

fred.toto

Tes 2 fichiers ont combien de pages? Le contrôle se fait sur la même page?
jeudi 5 avril 2007 à 15:11:07 | Re : Comparaison VBA

TiteZ

Je travaille sur une feuille pour chacun des 2 fichiers
Je souhaite contrôler une colonne ( controle par ligne) d'une feuille d'un fichier.... par rapport à une autre colonne d'une feuille d'un autre fichier

jeudi 5 avril 2007 à 15:18:36 | Re : Comparaison VBA

fred.toto

J'ai bien compris ce que tu veux faire mais comment on sait quelle page de chaque fichier comparer?

Si tu as le premier fichier avec 3 pages et le second avec 2.
Comment savoir si tu veux comparer la première page du premier fichier avec la seconde page du premier fichier ou la dernière page du premier fichier avec la première du second?
Ou alors est-ce-que tes 2 fichiers ont une seule page qui porte le meme nom?
jeudi 5 avril 2007 à 15:26:33 | Re : Comparaison VBA

TiteZ

Ce sont toujours les même pages
les 1ere de chaque fichiers Mes fichiers ont toujours 3 pages ( par défaut ) mais j'utilise simplement les 1ere ( les autres sont toujouts vide d'ailleurs)
Elles n'ont pas de nom spécifique
worsksheet(1) simplement
jeudi 5 avril 2007 à 16:24:12 | Re : Comparaison VBA

TiteZ

Je ne sais pas si c'est trés clair.
jeudi 5 avril 2007 à 17:16:29 | Re : Comparaison VBA

fred.toto

Rajoute ça dans un module et lance la macro:

Option Explicit

Public Sub Comparaison_Colonnes()

' Le contrôle s'effectue en 3 parties:
'    ? Contrôle sur l'égalité du nb de lignes entre les colonnes A-D et B-E
'    ? Si elles ont le même nb de lignes, on vérifie l'égalité des valeurs
'    ? si les 2 conditions antérieures sont validées, on compare les valeurs des colonnes C-F
'    et on met les cellules dans la colonne F en gras.

'    Tableau du premier fichier
    Dim iNbLigneWorkBook1(1 To 3) As Integer
'    Tableau du second fichier
    Dim iNbLigneWorkBook2(1 To 3) As Integer
'    Nb Colonne du premier fichier
    Dim iNbColonne1 As Integer
'    Nb Colonne du second fichier
    Dim iNbColonne2 As Integer
'    Indice de boucle
    Dim i As Integer
'    Flag pour les colonnes identiques
    Dim bColonneIdentique As Boolean
       
    iNbColonne1 = 1
    iNbColonne2 = 4
    bColonneIdentique = True
   
    Do
'        Récupération du nb de lignes des 3 premières colonnes du premier fichier...
        iNbLigneWorkBook1(iNbColonne1) = 0
       
        Application.Workbooks(1).Worksheets(1).Activate
       
        While Cells(iNbLigneWorkBook1(iNbColonne1) + 1, iNbColonne1).Value <> ""
            iNbLigneWorkBook1(iNbColonne1) = iNbLigneWorkBook1(iNbColonne1) + 1
        Wend
       
'        Récupération du nb de lignes des 3 colonnes du second fichier...
        iNbLigneWorkBook2(iNbColonne1) = 0
       
        Application.Workbooks(2).Worksheets(1).Activate
       
        While Cells(iNbLigneWorkBook2(iNbColonne1) + 1, iNbColonne2).Value <> ""
            iNbLigneWorkBook2(iNbColonne1) = iNbLigneWorkBook2(iNbColonne1) + 1
        Wend
       
'        Si elles sont identiques et qu'on est pas sur la troisième colonne, on sort...
        If iNbLigneWorkBook1(iNbColonne1) <> iNbLigneWorkBook2(iNbColonne1) And iNbColonne1 <> 3 Then
            bColonneIdentique = False
        End If
       
        iNbColonne1 = iNbColonne1 + 1
        iNbColonne2 = iNbColonne2 + 1

    Loop Until iNbColonne1 > 3
   
'    Si les colonnes A-D et B-E ont le même nb de lignes, on teste les valeurs
    If bColonneIdentique Then
        For iNbColonne1 = 1 To 2
            iNbColonne2 = iNbColonne1 + 3
            For i = 1 To iNbLigneWorkBook1(iNbColonne1)
                If Application.Workbooks(1).Worksheets(1).Cells(i, iNbColonne1).Value <> Application.Workbooks(2).Worksheets(1).Cells(i, iNbColonne2).Value Then
                    bColonneIdentique = False
                    Exit For
                End If
            Next
        Next
    End If
   
    iNbColonne1 = 3
    iNbColonne2 = 6
   
'    Si les colonnes A-D et B-E ont le même nb de lignes et les mêmes valeurs, on teste les colonnes C et F

    If bColonneIdentique Then
   
'       On supprime le gras dans la colonne...
        Application.Workbooks(2).Worksheets(1).Columns(iNbColonne2).Select
        Selection.Font.Bold = False
   
'       Si les valeurs dans C et F sont différentes, on met la cellule dans F en gras...
'        On compare les 2 feuilles et on prend le plus petit nb de lignes
       
        If iNbLigneWorkBook1(iNbColonne1) >= iNbLigneWorkBook2(iNbColonne1) Then
            For i = 1 To iNbLigneWorkBook2(iNbColonne1)
                If Application.Workbooks(1).Worksheets(1).Cells(i, iNbColonne1).Value <> Application.Workbooks(2).Worksheets(1).Cells(i, iNbColonne2).Value Then
                    Application.Workbooks(2).Worksheets(1).Cells(i, iNbColonne2).Select
                    Selection.Font.Bold = True
                End If
            Next
        Else
            For i = 1 To iNbLigneWorkBook1(iNbColonne1)
                If Application.Workbooks(1).Worksheets(1).Cells(i, iNbColonne1).Value <> Application.Workbooks(2).Worksheets(1).Cells(i, iNbColonne2).Value Then
                    Application.Workbooks(2).Worksheets(1).Cells(i, iNbColonne2).Select
                    Selection.Font.Bold = True
                End If
            Next
        End If
       
    End If

End Sub

jeudi 5 avril 2007 à 17:17:19 | Re : Comparaison VBA

fred.toto

P.S: La macro tient en compte les 2 premiers fichiers ouverts...

1 2

Cette discussion est classée dans : vba, fichiers, comparaison, colonnes


Répondre à ce message

Sujets en rapport avec ce message

Comparaison de 2 fichiers... [ par MaTHieU ] Salut, pourriez vous m'aider à faire la comparaison de 2 fichiers en mettant dans une listbox les bytes qui sont différents de la manière suivantes... Copie fichiers [ par Michel ] Je voudrai sauvegarder mes fichiers sur CD-RW régulièrement.Actuellement j'utilise les commandes DOS.Tout va bien mais VBA serait mieux.Voici une deux comparaison de fichier texte [ par VBteur ] Bonjour a tous !!!Pourriez vous m'aider concernant la comparaison de fichiers .txt. J'aimerais comparer le contenu de 2 fichiers. Cette comparaison au VB et les fichiers texte [ par ERENAUD ] Bonsoir,Connaissant VBA et débutant sur VB, je cherche des infos sur le traitementdes fichiers texte pour les lire et écrire à l'intérieur.En effet en comparaison de 2 fichiers [ par FRGOLD ] BonjourJe dois comparer 2 fichiers :le premier comprend une 100 d'articlesle deuxième comprend les 100 articles du 1er fichier + 50 nouveaux articles. VBA/Access2000 Implémentation de fichiers d'aide [ par Aprils ] Euh FredLynx je viens juste de lire ta 2eme réponse, je vais essayer, merci...Autrement j'ai un autre souci:Je n'arrive pas à attacher mes fichiers d' Macro excel en vba [ par fernand22fr ] Je suis toujours sur ma macro excel,et j ai du mal a pouvoir comparer mes deux fichiers excel(qui sont sur la meme fenetre excel).J'essai de me balade Comparaison des enregistrements de deux fichiers Excel [ par kalver ] Salut tout le monde,TRES URGENT !!!Je cherche le moyen de comparer les enregistrements de deux fichiers Excel sous VB. Je suis parvenu (grace à quelqu Remplir une liste déroulante en VBA [ par Clonk ] j'ai une combobox à 2 colonnes en VBA, avec une colonne, je sais faire:Req = "SELECT machin from trucs"With CmbBox .RowSourceType = "Table/Query" [VB Excell] Comparaison de colonnes [ par Jos10 ] Bonjour,Je cherche à connaitre la différence entre de colonnes comportant environ 1300 cellules. Ce ne sont que des noms.Je fais des comparaisons cell


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales