Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comparaison de deux colonnes sur deux feuilles et ajouter une information sur la feuille 2

6 réponses
Avatar
cegeffroy
Bonjour,

j'ai une feuille qui se pr=E9sente ainsi :
FEUILLE 1
A B C D
1032 tartenpion 553,12
1057 machin 123,15

FEUILLE 2
Sur une autre feuille j'ai la meme chose avec l'adresse code postal en
plus

J'aimerais pouvoir comparer la feuille 1 et 2 avec les codes qui se
trouve en colonne A de la premi=E8re feuille et noter dans une colonne
les donn=E9es contenu soit dans C ou D de la feuille 1 sur la feuille 2

Je sais pas si j'ai =E9t=E9 tr=E8s clair lol

Le r=E9sultat que j'aimerais avoir sur la feuille 2 c'est :
A B C D E
F G
tartenpion truc 1 rue gare 54000 NANCY 1032 553,12
machin bidule 1 rue mairie 75000 PARIS 1057 123,15

Peut etre que ce sera plus clair avec cet exemple

Merci d'avance pour vos lumi=E8res et votre aide.

6 réponses

Avatar
FFO
Salut à toi

Considérant la Feuil1 colonne A les codes colonne C/D les données à recopier
Feuil2 colonne A les codes colonne G les codes rapportée colonne H les
données rapportées

Je te propose ce code :

Sheets("Feuil2").Activate
For Each c In Worksheets("Feuil2").Range("A1", [A65530].End(xlUp))
If c <> "" Then
Sheets("Feuil1").Activate
For Each d In Worksheets("Feuil1").Range("A1", [A65530].End(xlUp))
If d = c Then
Sheets("Feuil2").Range("G" & c.Row) = c
If Range("C" & d.Row) <> "" Then
Sheets("Feuil2").Range("H" & c.Row) = Range("C" & d.Row)
Else
Sheets("Feuil2").Range("H" & c.Row) = Range("D" & d.Row)
End If
Exit For
End If
Next
End If
Next

Il suffit de supprimer la colonne A de la feuille 2 pour obtenir le résultat
exacte de ta demande en rajoutant ces 2 lignes :

Sheets("Feuil2").Activate
Columns("A:A").Delete

Celà devrait convenir


Bonjour,

j'ai une feuille qui se présente ainsi :
FEUILLE 1
A B C D
1032 tartenpion 553,12
1057 machin 123,15

FEUILLE 2
Sur une autre feuille j'ai la meme chose avec l'adresse code postal en
plus

J'aimerais pouvoir comparer la feuille 1 et 2 avec les codes qui se
trouve en colonne A de la première feuille et noter dans une colonne
les données contenu soit dans C ou D de la feuille 1 sur la feuille 2

Je sais pas si j'ai été très clair lol

Le résultat que j'aimerais avoir sur la feuille 2 c'est :
A B C D E
F G
tartenpion truc 1 rue gare 54000 NANCY 1032 553,12
machin bidule 1 rue mairie 75000 PARIS 1057 123,15

Peut etre que ce sera plus clair avec cet exemple

Merci d'avance pour vos lumières et votre aide.




Avatar
cegeffroy
Bonjour,

Merci pour votre réponse mais cela ne fonctionne pas !
Sur la feuille 2 je récupère les codes de la feuille 1 et seulement
les informations d'une seule colonne de la feuille 1
Sur la feuille 2 j'ai seuelement la colonne C qui est récupéré mais
pas la D...

Est ce normal ?

Je cherche de mon côté mais les macros je comprends pas tout donc...

Merci d'avance pour votre aide

On 12 sep, 13:56, FFO wrote:
Salut à toi

Considérant la Feuil1 colonne A les codes colonne C/D les données à recopier
Feuil2 colonne A les codes colonne G les codes rapportée colonne H les
données rapportées

Je te propose ce code :

Sheets("Feuil2").Activate
For Each c In Worksheets("Feuil2").Range("A1", [A65530].End(xlUp))
If c <> "" Then
Sheets("Feuil1").Activate
For Each d In Worksheets("Feuil1").Range("A1", [A65530].End(xlUp))
If d = c Then
Sheets("Feuil2").Range("G" & c.Row) = c
If Range("C" & d.Row) <> "" Then
Sheets("Feuil2").Range("H" & c.Row) = Range("C" & d.Row)
Else
Sheets("Feuil2").Range("H" & c.Row) = Range("D" & d.Row)
End If
Exit For
End If
Next
End If
Next

Il suffit de supprimer la colonne A de la feuille 2 pour obtenir le rés ultat
exacte de ta demande en rajoutant ces 2 lignes :

Sheets("Feuil2").Activate
Columns("A:A").Delete

Celà devrait convenir




Bonjour,

j'ai une feuille qui se présente ainsi :
FEUILLE 1
A B C D
1032 tartenpion 553,12
1057 machin 123,15

FEUILLE 2
Sur une autre feuille j'ai la meme chose avec l'adresse code postal en
plus

J'aimerais pouvoir comparer la feuille 1 et 2 avec les codes qui se
trouve en colonne A de la première feuille et noter dans une colonne
les données contenu soit dans C ou D de la feuille 1 sur la feuille 2

Je sais pas si j'ai été très clair lol

Le résultat que j'aimerais avoir sur la feuille 2 c'est :
A B C D E
F G
tartenpion truc 1 rue gare 54000 NANCY 1032 553,12
machin bidule 1 rue mairie 75000 PARIS 1057 123,15

Peut etre que ce sera plus clair avec cet exemple

Merci d'avance pour vos lumières et votre aide.- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
cegeffroy
En fait sur un exemple comme vous m'avez donné avec deux lignes ca
fonctionne mais cela ne fonctionne pas dans mon fichier original...
bizarre


On 13 sep, 09:22, wrote:
Bonjour,

Merci pour votre réponse mais cela ne fonctionne pas !
Sur la feuille 2 je récupère les codes de la feuille 1 et seulement
les informations d'une seule colonne de la feuille 1
Sur la feuille 2 j'ai seuelement la colonne C qui est récupéré mais
pas la D...

Est ce normal ?

Je cherche de mon côté mais les macros je comprends pas tout donc...

Merci d'avance pour votre aide

On 12 sep, 13:56, FFO wrote:



Salut à toi

Considérant la Feuil1 colonne A les codes colonne C/D les données à recopier
Feuil2 colonne A les codes colonne G les codes rapportée colonne H les
données rapportées

Je te propose ce code :

Sheets("Feuil2").Activate
For Each c In Worksheets("Feuil2").Range("A1", [A65530].End(xlUp))
If c <> "" Then
Sheets("Feuil1").Activate
For Each d In Worksheets("Feuil1").Range("A1", [A65530].End(xlUp))
If d = c Then
Sheets("Feuil2").Range("G" & c.Row) = c
If Range("C" & d.Row) <> "" Then
Sheets("Feuil2").Range("H" & c.Row) = Range("C" & d.Row)
Else
Sheets("Feuil2").Range("H" & c.Row) = Range("D" & d.Row)
End If
Exit For
End If
Next
End If
Next

Il suffit de supprimer la colonne A de la feuille 2 pour obtenir le r ésultat
exacte de ta demande en rajoutant ces 2 lignes :

Sheets("Feuil2").Activate
Columns("A:A").Delete

Celà devrait convenir



Bonjour,

j'ai une feuille qui se présente ainsi :
FEUILLE 1
A B C D
1032 tartenpion 553,12
1057 machin 123,15

FEUILLE 2
Sur une autre feuille j'ai la meme chose avec l'adresse code postal en
plus

J'aimerais pouvoir comparer la feuille 1 et 2 avec les codes qui se
trouve en colonne A de la première feuille et noter dans une colonne
les données contenu soit dans C ou D de la feuille 1 sur la feuille 2

Je sais pas si j'ai été très clair lol

Le résultat que j'aimerais avoir sur la feuille 2 c'est :
A B C D E
F G
tartenpion truc 1 rue gare 54000 NANCY 1032 553,12
machin bidule 1 rue mairie 75000 PARIS 1057 123,15

Peut etre que ce sera plus clair avec cet exemple

Merci d'avance pour vos lumières et votre aide.- Masquer le texte d es messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -




Avatar
cegeffroy
Je ne comprends pas pourquoi cela ne fonctionne pas....
J'ai quand un même un doute pour la mise en forme des colonnes. Je me
demande si les deux sont bien en format nombre.
J'ai tenté de modifier cela mais une colonne celle qui apparait
présente des nombre comme cela :
0,00 ou 442,18 ou 105,00
mais l'autre celle qui ne s'intègre avec la macro présente des chiffre
comme cela
0 ou 33 ou 146,07


On 13 sep, 10:05, wrote:
En fait sur un exemple comme vous m'avez donné avec deux lignes ca
fonctionne mais cela ne fonctionne pas dans mon fichier original...
bizarre

On 13 sep, 09:22, wrote:



Bonjour,

Merci pour votre réponse mais cela ne fonctionne pas !
Sur la feuille 2 je récupère les codes de la feuille 1 et seulement
les informations d'une seule colonne de la feuille 1
Sur la feuille 2 j'ai seuelement la colonne C qui est récupéré ma is
pas la D...

Est ce normal ?

Je cherche de mon côté mais les macros je comprends pas tout donc...

Merci d'avance pour votre aide

On 12 sep, 13:56, FFO wrote:

Salut à toi

Considérant la Feuil1 colonne A les codes colonne C/D les données à recopier
Feuil2 colonne A les codes colonne G les codes rapportée colonne H les
données rapportées

Je te propose ce code :

Sheets("Feuil2").Activate
For Each c In Worksheets("Feuil2").Range("A1", [A65530].End(xlUp))
If c <> "" Then
Sheets("Feuil1").Activate
For Each d In Worksheets("Feuil1").Range("A1", [A65530].End(xlUp))
If d = c Then
Sheets("Feuil2").Range("G" & c.Row) = c
If Range("C" & d.Row) <> "" Then
Sheets("Feuil2").Range("H" & c.Row) = Range("C" & d.Row)
Else
Sheets("Feuil2").Range("H" & c.Row) = Range("D" & d.Row)
End If
Exit For
End If
Next
End If
Next

Il suffit de supprimer la colonne A de la feuille 2 pour obtenir le r ésultat
exacte de ta demande en rajoutant ces 2 lignes :

Sheets("Feuil2").Activate
Columns("A:A").Delete

Celà devrait convenir




Bonjour,

j'ai une feuille qui se présente ainsi :
FEUILLE 1
A B C D
1032 tartenpion 553,12
1057 machin 123,15

FEUILLE 2
Sur une autre feuille j'ai la meme chose avec l'adresse code postal en
plus

J'aimerais pouvoir comparer la feuille 1 et 2 avec les codes qui se
trouve en colonne A de la première feuille et noter dans une colo nne
les données contenu soit dans C ou D de la feuille 1 sur la feuil le 2

Je sais pas si j'ai été très clair lol

Le résultat que j'aimerais avoir sur la feuille 2 c'est :
A B C D E
F G
tartenpion truc 1 rue gare 54000 NANCY 1032 553 ,12
machin bidule 1 rue mairie 75000 PARIS 1057 123 ,15

Peut etre que ce sera plus clair avec cet exemple

Merci d'avance pour vos lumières et votre aide.- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -





Avatar
cegeffroy
Bon je rectifie ce que j'ai dis.

dans ta solution je peux avoir soit l'une ou l'autre des infos
reportés sur la feuille 2 mais pas les deux !

Sheets("Feuil2").Activate
For Each c In Worksheets("Feuil2").Range("A1", [A65530].End(xlUp))
If c <> "" Then
Sheets("Feuil1").Activate
For Each d In Worksheets("Feuil1").Range("A1", [A65530].End(xlUp))
If d = c Then
Sheets("Feuil2").Range("G" & c.Row) = c
If Range("C" & d.Row) <> "" Then


Sheets("Feuil2").Range("H" & c.Row) = Range("C" & d.Row) ---> si je
mets ca je n'aurai que la colonne c reportée dans la colonne H
Else
Sheets("Feuil2").Range("H" & c.Row) = Range("D" & d.Row) ---> cette
instruction ne donne rien c'est comme si elle n'existait pas !!!!


End If
Exit For
End If
Next
End If
Next
Avatar
cegeffroy
Bon j'ai réglé le problème

j'ai mis deux fois la meme solution que vous m'avez proposé et ainsi
j'ai bien les resultats reportés dans deux colonnes

Merci pour votre aide