TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007
-
5 avril 2007 à 12:56
TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007
-
6 avril 2007 à 14:21
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!
TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007 5 avril 2007 à 15:11
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
fred.toto
Messages postés73Date d'inscriptionmardi 10 avril 2001StatutMembreDernière intervention 4 mars 2009 5 avril 2007 à 15:18
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?
TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007 5 avril 2007 à 15:26
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
fred.toto
Messages postés73Date d'inscriptionmardi 10 avril 2001StatutMembreDernière intervention 4 mars 2009 5 avril 2007 à 17:16
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
' 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
' 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
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 5 avril 2007 à 20:06
Bonjour,
On ne connait pas le but final, et si mettre en gras est important ou pas. Si on suppose que seule la comparaison est nécessaire, pourquoi pas utiliser directement les formules d'Excel avec l'instruction SI... Par exemple en mettant le résultat dans la colonne G.
Cela donnerait dans la colonne G à recopier autant que nécssaire :
SI(ET(A1B1;C1=D1);SI(E1<F1;"E plus petit que F";"E plus grand que F");"A<>B ou C<>D")
TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007 6 avril 2007 à 09:43
D'abord merci Fred pour ce que tu as fait.
En faite je n’ai pas été trés claire
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
1ere fichier :
Une colonne avec des numero de dossier ; une deuxieme colone avec des codes et une troisiemme avec des taux
Un dossier à plusieurs codes :
Sur mon premier fichier ça me donne :
A B C
1 Fa 0.75
1 Ga 0,25
1 Ja 0.21
2 Fa 0.45
2 Ja 0.21
…….etc….
2eme fichier
A B C
1 Fa 0.75
1 Ja 0.21
1 Ga 0,35
2 Ja 0.21
…….etc….
Donc l’objectif finale : c’est :
1) que dans le second fichier on repere en gras ( par exemple) la 2eme ligne parce que la colone C est fausse
2) Qu’on me reporte dans une seconde feuille les lignes manquantes dans le deuxiemme fichiers ( ici l’avant derniere ligne du fichiers 1 est absente du fichiers 2 )
TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007 6 avril 2007 à 09:53
pour le 1 quand je dis la 2eme ligne est fausse je veux dire la 2eme ligne du fichiers 1 qui corresponds a la3eme ligne du fichiers 2 et c'est cette 3eme ligne du fichier2 qui devrait se mettre en Gras
TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007 6 avril 2007 à 11:27
La ligne 2 du fichier 2 :
1<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
, Ja
, 0,21
Et la ligne 4 du fichiers 2
,
,
, 2
, Ja
, 0,21
sont bonne ! elles correspondent respectivement a la ligne 3 et la ligne 5 du Fichier 1 et celle là ne doivent pas ressortir
Par contre : la ligne 3 du fichier 2 est fausse car la valeur de la colonnes C n’est pas exact
Pour le 2 c’est exactement ça je veux que les lignes qu’on a mise en gras ( dc les lignes fausse : puisqu’elle n’existe pas dans le premier fichiers soit transferer ailleurs.)