OVH Cloud OVH Cloud

comparer deux feuilles

15 réponses
Avatar
ed
Bonsoir,
Me revoilà avec d'autres questions...
J'ai deux feuilles
Feuille 1: 15000 lignes
Feuille 2: 500 lignes
Je souhaiterais savoir si la feuille 1 contient des lignes contenues dans la
feuille 2 (ou réciproquement).
La structure du fichier étant la même pour les deux, je souhaiterais
comparer uniquement une dizaines de colonnes sur les 34 existantes... par
exemple (col 2 à 18 ; col 29, col 34).
En revanche, les enregistrements ne sont pas triés.
J'ai navigué pas mal sur le net mais je n'ai pas trouvé...
Accepteriez vous de m'aider?...
Merci
ed

5 réponses

1 2
Avatar
Jacky
Re...
Si j'ai bien compris.......
Ceci peinturlure les cellules dans les colonnes de B à F de la feuil2 si la
valeur de la cellule est présente dans la même colonne de la feuil1 de B1 à
F15.000
'-------------
Sub jj2()
Feuil2.[b2:f500].Interior.ColorIndex = xlNone
Application.ScreenUpdating = False
Feuil1.Activate
For i = 1 To 500
For Each c In Feuil2.Range("b" & i & ":f" & i)
If Application.CountIf(Range(Cells(1, c.Column), Cells(15000, c.Column)),
c) > 0 Then c.Interior.ColorIndex = 3
Next
Next
Feuil2.Activate
End Sub
'------------
Salutations
JJ


"ed" a écrit dans le message de news:


Hello Jacky
Je pensais comparer une range, disons (B:F).
Puis, je reprendrais la macro pour comparer une autre plage (T:R) si mon
analyse n'est pas concluante car à force d'essayer les macros (tentatives
avortées...), je m'aperçois que ma plage est trop grande (col 2 à 18) et
souvent les comparaisons me colorient des cellules dont je ne peux tirer
aucune conclusion (le fichier initial est de 15,000 enregistrements).

Je ne sais pas si je réponds correctement à ta question. pardonne moi...
Pour faire court, je dirais... ligne... :-))
Merci.
ed


Bonsoir,
Le contrôle doit-il s'effectué sur chaque cellule ou par ligne identique
??
JJ

"ed" a écrit dans le message de
news:
Bonsoir,
Me revoilà avec d'autres questions...
J'ai deux feuilles
Feuille 1: 15000 lignes
Feuille 2: 500 lignes
Je souhaiterais savoir si la feuille 1 contient des lignes contenues
dans
la

feuille 2 (ou réciproquement).
La structure du fichier étant la même pour les deux, je souhaiterais
comparer uniquement une dizaines de colonnes sur les 34 existantes...
par
exemple (col 2 à 18 ; col 29, col 34).
En revanche, les enregistrements ne sont pas triés.
J'ai navigué pas mal sur le net mais je n'ai pas trouvé...
Accepteriez vous de m'aider?...
Merci
ed










Avatar
ed
Hello Jacquouille. Merci infiniment pour cette macro... sauf que c'est comme
tous les chefs d'oeuvre... faut pas les mettre entre les mains de n'importe
qui... En l'occurence, moi..

Ca copie bien la plage 1 à droite. Mais pour le reste, je n'ai pas compris.
Okay, cela me donne la valeur 1 en msg box... puis la valeur 1 en msg box...
puis ça recommence tjs sur la première ligne.... et ainsi de suite...

En tous les cas, merci la compagnie car eu égard aux souffrances que
j'endure en essayant de comprendre mon probleme, je peux facilement mesurer
tout votre talent quand vous pondez une macro de ce type...

Cela doit être d'Ailleurs frustrant d'avoir affaire à des billes comme moi
qui sont incapables d'utiliser, [ne serait-ce qu'utiliser] le talent servi
sur un plateau...

Ceci étant dit, votre démarche m'a permis de penser à une autre technique
peut être... Effectivement, concaténer une plage et la comparer tout
simplement. Enfin quand je dis tout simplement, c'est un abus de langage...

Bien cordialement et GRAND MERCI !
ed



RE
Voici un truc qui copie la première plage (A-Z) à droite de la
seconde(AA-AZ), puis qui efface de la 3° (la copie) les trucs qui ne sont
pas dans la seconde.
Regarde si cela te convient.
-----------------------------------
Le présent chef d'oeuvre est le résultat d'une collaboration étroite avec un
gang de macroteurs sévissant en ces lieux. Ils se reconnaîtront. -))
----------------------------------
Sub Comparer_deux_plages()
derLA = [A65536].End(xlUp).Row
derLB = [AA65536].End(xlUp).Row
Range("A1:Z" & derLA).Select
Selection.Copy
Range("BA1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("BA1").Select
MsgBox derLA
MsgBox derLB
For Each c In Range("AA1:AA" & derLB)
For Each d In Range("BA1:BA" & derLA)
If c = d Then Range("BA" & d.Row & ":BZ" & d.Row).Delete
Next
Next
End Sub

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"ed" a écrit dans le message de news:


Hello Jacky
Je pensais comparer une range, disons (B:F).
Puis, je reprendrais la macro pour comparer une autre plage (T:R) si mon
analyse n'est pas concluante car à force d'essayer les macros (tentatives
avortées...), je m'aperçois que ma plage est trop grande (col 2 à 18) et
souvent les comparaisons me colorient des cellules dont je ne peux tirer
aucune conclusion (le fichier initial est de 15,000 enregistrements).

Je ne sais pas si je réponds correctement à ta question. pardonne moi...
Pour faire court, je dirais... ligne... :-))
Merci.
ed


Bonsoir,
Le contrôle doit-il s'effectué sur chaque cellule ou par ligne identique
??
JJ

"ed" a écrit dans le message de
news:
Bonsoir,
Me revoilà avec d'autres questions...
J'ai deux feuilles
Feuille 1: 15000 lignes
Feuille 2: 500 lignes
Je souhaiterais savoir si la feuille 1 contient des lignes contenues
dans
la

feuille 2 (ou réciproquement).
La structure du fichier étant la même pour les deux, je souhaiterais
comparer uniquement une dizaines de colonnes sur les 34 existantes...
par
exemple (col 2 à 18 ; col 29, col 34).
En revanche, les enregistrements ne sont pas triés.
J'ai navigué pas mal sur le net mais je n'ai pas trouvé...
Accepteriez vous de m'aider?...
Merci
ed















Avatar
ed
Hello Jacky !
SUPER ! ÇA MARCHE !
Bon, l'analyse n'est pas très aisée car cela me compare cellule par cellule,
ce qui ne me sort pas des lignes bien rouges dont je peux dire: cette ligne
est un doublon... Mais, là ce sera à moi de bien choisir mon range pour
comparer ce qui est comparable

UN ENNOOOOOORME MERCI ... car la partie n,était pas facile :-))
ed


Re...
Si j'ai bien compris.......
Ceci peinturlure les cellules dans les colonnes de B à F de la feuil2 si la
valeur de la cellule est présente dans la même colonne de la feuil1 de B1 à
F15.000
'-------------
Sub jj2()
Feuil2.[b2:f500].Interior.ColorIndex = xlNone
Application.ScreenUpdating = False
Feuil1.Activate
For i = 1 To 500
For Each c In Feuil2.Range("b" & i & ":f" & i)
If Application.CountIf(Range(Cells(1, c.Column), Cells(15000, c.Column)),
c) > 0 Then c.Interior.ColorIndex = 3
Next
Next
Feuil2.Activate
End Sub
'------------
Salutations
JJ


"ed" a écrit dans le message de news:


Hello Jacky
Je pensais comparer une range, disons (B:F).
Puis, je reprendrais la macro pour comparer une autre plage (T:R) si mon
analyse n'est pas concluante car à force d'essayer les macros (tentatives
avortées...), je m'aperçois que ma plage est trop grande (col 2 à 18) et
souvent les comparaisons me colorient des cellules dont je ne peux tirer
aucune conclusion (le fichier initial est de 15,000 enregistrements).

Je ne sais pas si je réponds correctement à ta question. pardonne moi...
Pour faire court, je dirais... ligne... :-))
Merci.
ed


Bonsoir,
Le contrôle doit-il s'effectué sur chaque cellule ou par ligne identique
??
JJ

"ed" a écrit dans le message de
news:
Bonsoir,
Me revoilà avec d'autres questions...
J'ai deux feuilles
Feuille 1: 15000 lignes
Feuille 2: 500 lignes
Je souhaiterais savoir si la feuille 1 contient des lignes contenues
dans
la

feuille 2 (ou réciproquement).
La structure du fichier étant la même pour les deux, je souhaiterais
comparer uniquement une dizaines de colonnes sur les 34 existantes...
par
exemple (col 2 à 18 ; col 29, col 34).
En revanche, les enregistrements ne sont pas triés.
J'ai navigué pas mal sur le net mais je n'ai pas trouvé...
Accepteriez vous de m'aider?...
Merci
ed















Avatar
Jacky
Re...
ce qui ne me sort pas des lignes bien rouges.
Ceci peinturlure la ligne de A à F en rouge, et la cellule qui en est la

cause dans une autre couleur.
'-----
Sub jj2()
Feuil2.[a1:f500].Interior.ColorIndex = xlNone
Application.ScreenUpdating = False
Feuil1.Activate
For i = 1 To 500
For Each c In Feuil2.Range("b" & i & ":f" & i)
If Application.CountIf(Range(Cells(1, c.Column), Cells(15000, c.Column)),
c) > 0 Then
Feuil2.Range("a" & c.Row & ":f" & c.Row).Interior.ColorIndex = 3
c.Interior.ColorIndex = 4
End If
Next
Next
Feuil2.Activate
End Sub
'----------

JJ
"ed" a écrit dans le message de
news:
Hello Jacky !
SUPER ! ÇA MARCHE !
Bon, l'analyse n'est pas très aisée car cela me compare cellule par
cellule,

ce qui ne me sort pas des lignes bien rouges dont je peux dire: cette
ligne

est un doublon... Mais, là ce sera à moi de bien choisir mon range pour
comparer ce qui est comparable

UN ENNOOOOOORME MERCI ... car la partie n,était pas facile :-))
ed


Re...
Si j'ai bien compris.......
Ceci peinturlure les cellules dans les colonnes de B à F de la feuil2 si
la


valeur de la cellule est présente dans la même colonne de la feuil1 de
B1 à


F15.000
'-------------
Sub jj2()
Feuil2.[b2:f500].Interior.ColorIndex = xlNone
Application.ScreenUpdating = False
Feuil1.Activate
For i = 1 To 500
For Each c In Feuil2.Range("b" & i & ":f" & i)
If Application.CountIf(Range(Cells(1, c.Column), Cells(15000,
c.Column)),


c) > 0 Then c.Interior.ColorIndex = 3
Next
Next
Feuil2.Activate
End Sub
'------------
Salutations
JJ


"ed" a écrit dans le message de news:


Hello Jacky
Je pensais comparer une range, disons (B:F).
Puis, je reprendrais la macro pour comparer une autre plage (T:R) si
mon



analyse n'est pas concluante car à force d'essayer les macros
(tentatives



avortées...), je m'aperçois que ma plage est trop grande (col 2 à 18)
et



souvent les comparaisons me colorient des cellules dont je ne peux
tirer



aucune conclusion (le fichier initial est de 15,000 enregistrements).

Je ne sais pas si je réponds correctement à ta question. pardonne
moi...



Pour faire court, je dirais... ligne... :-))
Merci.
ed


Bonsoir,
Le contrôle doit-il s'effectué sur chaque cellule ou par ligne
identique




??
JJ

"ed" a écrit dans le message de
news:
Bonsoir,
Me revoilà avec d'autres questions...
J'ai deux feuilles
Feuille 1: 15000 lignes
Feuille 2: 500 lignes
Je souhaiterais savoir si la feuille 1 contient des lignes
contenues





dans
la

feuille 2 (ou réciproquement).
La structure du fichier étant la même pour les deux, je
souhaiterais





comparer uniquement une dizaines de colonnes sur les 34
existantes...





par
exemple (col 2 à 18 ; col 29, col 34).
En revanche, les enregistrements ne sont pas triés.
J'ai navigué pas mal sur le net mais je n'ai pas trouvé...
Accepteriez vous de m'aider?...
Merci
ed

















Avatar
ed
JACKY ! TOUT SIMPLEMENT, PRODIGIEUX !!!

C'est génial car maintenant, je suis capable d'identifier les lignes qui
n'Existent pas dans mon fichier initial - elle sont toutes blanches et on
les remarque ! lol-
et de savoir quelle cellule est à l.origine du doublonnage.

VRAIMENT MERCI !
ed


Re...
ce qui ne me sort pas des lignes bien rouges.
Ceci peinturlure la ligne de A à F en rouge, et la cellule qui en est la

cause dans une autre couleur.
'-----
Sub jj2()
Feuil2.[a1:f500].Interior.ColorIndex = xlNone
Application.ScreenUpdating = False
Feuil1.Activate
For i = 1 To 500
For Each c In Feuil2.Range("b" & i & ":f" & i)
If Application.CountIf(Range(Cells(1, c.Column), Cells(15000, c.Column)),
c) > 0 Then
Feuil2.Range("a" & c.Row & ":f" & c.Row).Interior.ColorIndex = 3
c.Interior.ColorIndex = 4
End If
Next
Next
Feuil2.Activate
End Sub
'----------

JJ
"ed" a écrit dans le message de
news:
Hello Jacky !
SUPER ! ÇA MARCHE !
Bon, l'analyse n'est pas très aisée car cela me compare cellule par
cellule,

ce qui ne me sort pas des lignes bien rouges dont je peux dire: cette
ligne

est un doublon... Mais, là ce sera à moi de bien choisir mon range pour
comparer ce qui est comparable

UN ENNOOOOOORME MERCI ... car la partie n,était pas facile :-))
ed


Re...
Si j'ai bien compris.......
Ceci peinturlure les cellules dans les colonnes de B à F de la feuil2 si
la


valeur de la cellule est présente dans la même colonne de la feuil1 de
B1 à


F15.000
'-------------
Sub jj2()
Feuil2.[b2:f500].Interior.ColorIndex = xlNone
Application.ScreenUpdating = False
Feuil1.Activate
For i = 1 To 500
For Each c In Feuil2.Range("b" & i & ":f" & i)
If Application.CountIf(Range(Cells(1, c.Column), Cells(15000,
c.Column)),


c) > 0 Then c.Interior.ColorIndex = 3
Next
Next
Feuil2.Activate
End Sub
'------------
Salutations
JJ


"ed" a écrit dans le message de news:


Hello Jacky
Je pensais comparer une range, disons (B:F).
Puis, je reprendrais la macro pour comparer une autre plage (T:R) si
mon



analyse n'est pas concluante car à force d'essayer les macros
(tentatives



avortées...), je m'aperçois que ma plage est trop grande (col 2 à 18)
et



souvent les comparaisons me colorient des cellules dont je ne peux
tirer



aucune conclusion (le fichier initial est de 15,000 enregistrements).

Je ne sais pas si je réponds correctement à ta question. pardonne
moi...



Pour faire court, je dirais... ligne... :-))
Merci.
ed


Bonsoir,
Le contrôle doit-il s'effectué sur chaque cellule ou par ligne
identique




??
JJ

"ed" a écrit dans le message de
news:
Bonsoir,
Me revoilà avec d'autres questions...
J'ai deux feuilles
Feuille 1: 15000 lignes
Feuille 2: 500 lignes
Je souhaiterais savoir si la feuille 1 contient des lignes
contenues





dans
la

feuille 2 (ou réciproquement).
La structure du fichier étant la même pour les deux, je
souhaiterais





comparer uniquement une dizaines de colonnes sur les 34
existantes...





par
exemple (col 2 à 18 ; col 29, col 34).
En revanche, les enregistrements ne sont pas triés.
J'ai navigué pas mal sur le net mais je n'ai pas trouvé...
Accepteriez vous de m'aider?...
Merci
ed






















1 2