Renseigner une cellule à partir d'une autre

Le
quidam
Bonjour,
Je m'énerve sur un truc tout simple pour un plus doué.
dans une feuille 2 : j'ai 834 communes en col 3 et leur code insee en col 2
dans une feuille 1 j'ai seulement la commune(2557 enregistrements) en col 4,
et je veux compléter la col 5 avec son code insee

j'ai fait ça (avce l'aide de l'aide excel car je suis complètement novice)
mais ça ne marche pas du tout.

For k = 1 To 834
Set this = Worksheets("Sheet2").Cells(k, 3)

For j = 1 To 2557
Set last = Worksheets("Sheet1").Cells(j, 4)
If this = last Then Cells(j, 5).Value = Cells(k, 2)

Next
Next

Est ce que quelqu'un pourrait me dire où se situe l'erreuret me rectifier
ça.

Merci

GuY

NB : j'ai cherché dans des précédentes demandes de dépannage, mais le peu
que j'ai trouvé m'a plus embrouillé que dépanné :(
Vos réponses
Trier par : date / pertinence
Xavier POWAGA
Le #3670141
essaye peut être comme ça

For k = 1 To 834
Set this = Worksheets("Sheet2").Cells(k, 3)
For j = 1 To 2557
Set last = Worksheets("Sheet1").Cells(j, 4)
If this.value = last.value Then Cells(j, 5).Value =
Worksheets("Sheet2").Cells(k, 2)
Next
Next

Xavier
"quidam" 4437d6a8$0$20273$
Bonjour,
Je m'énerve sur un truc tout simple pour un plus doué....
dans une feuille 2 : j'ai 834 communes en col 3 et leur code insee en col
2
dans une feuille 1 j'ai seulement la commune(2557 enregistrements) en col
4, et je veux compléter la col 5 avec son code insee

j'ai fait ça (avce l'aide de l'aide excel car je suis complètement novice)
mais ça ne marche pas du tout....

For k = 1 To 834
Set this = Worksheets("Sheet2").Cells(k, 3)

For j = 1 To 2557
Set last = Worksheets("Sheet1").Cells(j, 4)
If this = last Then Cells(j, 5).Value = Cells(k, 2)

Next
Next

Est ce que quelqu'un pourrait me dire où se situe l'erreur...et me
rectifier ça.

Merci

GuY

NB : j'ai cherché dans des précédentes demandes de dépannage, mais le peu
que j'ai trouvé m'a plus embrouillé que dépanné :(





quidam
Le #3670021
Ca ne marche toujours pas
j'ai comme erreur : l'indice n'appartient pas à la sélection- erreur
d'execution 9
et pourtant ma feuille 2 est comme ça:

Abbécourt 02001 ABBECOURT
Achery 02002 ACHERY
Acy 02003 ACY
Agnicourt-et-Séchelles 02004 AGNICOURT-ET-SECHELLES
Aguilcourt 02005 AGUILCOURT
Aisonville-et-Bernoville 02006 AISONVILLE-ET-BERNOVILLE


et ma feuille 1 comme ça:

ABOVILLE D' AUGUSTIN MARIE 1776/04/12 LA FERE
ABOVILLE D' AUGUSTIN GABRIEL 1774/03/20 LA FERE
ABRAHAM EUGENE 1868/09/15 AUBENTON
ABRAHAM ALPHONSE 1857/03/06 FERE-EN-TARDENOIS
ACHILLE LEOPOLD 1844/12/13 VENDEUIL
ACQUART CLAUDE FLORENTIN 1787/02/18 MONTESCOURT-LIZEROLLES
ADAM CHARLES LEON 1899/04/16 NOUVION-LE-COMTE
ADAM JOSEPH RENE 1826/07/20 VESLES-ET-CAUMONT


Il doit y avoir une erreur ENORME.....
mais je ne la vois pas !

Guy

"Xavier POWAGA" 44381d9e$0$990$
essaye peut être comme ça

For k = 1 To 834
Set this = Worksheets("Sheet2").Cells(k, 3)
For j = 1 To 2557
Set last = Worksheets("Sheet1").Cells(j, 4)
If this.value = last.value Then Cells(j, 5).Value =
Worksheets("Sheet2").Cells(k, 2)
Next
Next

Xavier
"quidam" 4437d6a8$0$20273$
Bonjour,
Je m'énerve sur un truc tout simple pour un plus doué....
dans une feuille 2 : j'ai 834 communes en col 3 et leur code insee en col
2
dans une feuille 1 j'ai seulement la commune(2557 enregistrements) en col
4, et je veux compléter la col 5 avec son code insee

j'ai fait ça (avce l'aide de l'aide excel car je suis complètement
novice) mais ça ne marche pas du tout....

For k = 1 To 834
Set this = Worksheets("Sheet2").Cells(k, 3)

For j = 1 To 2557
Set last = Worksheets("Sheet1").Cells(j, 4)
If this = last Then Cells(j, 5).Value = Cells(k, 2)

Next
Next

Est ce que quelqu'un pourrait me dire où se situe l'erreur...et me
rectifier ça.

Merci

GuY

NB : j'ai cherché dans des précédentes demandes de dépannage, mais le peu
que j'ai trouvé m'a plus embrouillé que dépanné :(









quidam
Le #3670011
"Xavier POWAGA" 44381d9e$0$990$
essaye peut être comme ça

For k = 1 To 834
Set this = Worksheets("Sheet2").Cells(k, 3)
For j = 1 To 2557
Set last = Worksheets("Sheet1").Cells(j, 4)
If this.value = last.value Then Cells(j, 5).Value =
Worksheets("Sheet2").Cells(k, 2)
Next
Next

Xavier
"quidam" 4437d6a8$0$20273$
Bonjour,
Je m'énerve sur un truc tout simple pour un plus doué....
dans une feuille 2 : j'ai 834 communes en col 3 et leur code insee en col
2
dans une feuille 1 j'ai seulement la commune(2557 enregistrements) en col
4, et je veux compléter la col 5 avec son code insee

j'ai fait ça (avce l'aide de l'aide excel car je suis complètement
novice) mais ça ne marche pas du tout....

For k = 1 To 834
Set this = Worksheets("Sheet2").Cells(k, 3)

For j = 1 To 2557
Set last = Worksheets("Sheet1").Cells(j, 4)
If this = last Then Cells(j, 5).Value = Cells(k, 2)

Next
Next

Est ce que quelqu'un pourrait me dire où se situe l'erreur...et me
rectifier ça.

Merci

GuY

NB : j'ai cherché dans des précédentes demandes de dépannage, mais le peu
que j'ai trouvé m'a plus embrouillé que dépanné :(






Ca ne marche toujours pas

j'ai comme erreur : l'indice n'appartient pas à la sélection- erreur
d'execution 9
et pourtant ma feuille 2 est comme ça:

Abbécourt 02001 ABBECOURT
Achery 02002 ACHERY
Acy 02003 ACY
Agnicourt-et-Séchelles 02004 AGNICOURT-ET-SECHELLES
Aguilcourt 02005 AGUILCOURT
Aisonville-et-Bernoville 02006 AISONVILLE-ET-BERNOVILLE


et ma feuille 1 comme ça:

ABOVILLE D' AUGUSTIN MARIE 1776/04/12 LA FERE
ABOVILLE D' AUGUSTIN GABRIEL 1774/03/20 LA FERE
ABRAHAM EUGENE 1868/09/15 AUBENTON
ABRAHAM ALPHONSE 1857/03/06 FERE-EN-TARDENOIS
ACHILLE LEOPOLD 1844/12/13 VENDEUIL
ACQUART CLAUDE FLORENTIN 1787/02/18 MONTESCOURT-LIZEROLLES
ADAM CHARLES LEON 1899/04/16 NOUVION-LE-COMTE
ADAM JOSEPH RENE 1826/07/20 VESLES-ET-CAUMONT


Il doit y avoir une erreur ENORME.....
mais je ne la vois pas !

Guy


FxM
Le #3669741
Bonjour,

Sans VBA et en supposant tes plages comme étant :
dans une feuille 2 :
les 834 communes de C2 à C835

les 834 codes insee de B2 à B835

dans une feuille 1
le premier enregistrement en D4, les suivants recopiés vers le bas


Pour le premier code insee en E4 :
=INDEX(Feuil2!B$2:B$835;EQUIV(D4;Feuil2!C$2:C$835;0))
Pour la suite recopier E4 de E5 jusqu'où il faut.

Un exemple :
http://cjoint.com/?ejl2YtfAKN

@+
FxM




Bonjour,
Je m'énerve sur un truc tout simple pour un plus doué....
dans une feuille 2 : j'ai 834 communes en col 3 et leur code insee en col 2
dans une feuille 1 j'ai seulement la commune(2557 enregistrements) en col 4,
et je veux compléter la col 5 avec son code insee

j'ai fait ça (avce l'aide de l'aide excel car je suis complètement novice)
mais ça ne marche pas du tout....

For k = 1 To 834
Set this = Worksheets("Sheet2").Cells(k, 3)

For j = 1 To 2557
Set last = Worksheets("Sheet1").Cells(j, 4)
If this = last Then Cells(j, 5).Value = Cells(k, 2)

Next
Next

Est ce que quelqu'un pourrait me dire où se situe l'erreur...et me rectifier
ça.

Merci

GuY

NB : j'ai cherché dans des précédentes demandes de dépannage, mais le peu
que j'ai trouvé m'a plus embrouillé que dépanné :(





quidam
Le #3668601
"FxM"
Bonjour,

Sans VBA et en supposant tes plages comme étant :
dans une feuille 2 :
les 834 communes de C2 à C835

les 834 codes insee de B2 à B835

dans une feuille 1
le premier enregistrement en D4, les suivants recopiés vers le bas


Pour le premier code insee en E4 :
=INDEX(Feuil2!B$2:B$835;EQUIV(D4;Feuil2!C$2:C$835;0))
Pour la suite recopier E4 de E5 jusqu'où il faut.

Un exemple :
http://cjoint.com/?ejl2YtfAKN

@+
FxM

Merci


Mais dés que je mets mes données réelles...........ça plante

je le mets ici aussi : http://cjoint.com/?ejx7EkwQMd

GUY


Xavier POWAGA
Le #3668501
J'ai vérifié, ça marche dans ton tableau. le seul pb c'est que les noms de
villes qui sont dans ta feuil2 comportent plein d'espaces à la suite et sont
donc vus différents des noms de villes de la feuil 1

Xavier


"quidam" 44398455$0$30087$

"FxM"
Bonjour,

Sans VBA et en supposant tes plages comme étant :
dans une feuille 2 :
les 834 communes de C2 à C835

les 834 codes insee de B2 à B835

dans une feuille 1
le premier enregistrement en D4, les suivants recopiés vers le bas


Pour le premier code insee en E4 :
=INDEX(Feuil2!B$2:B$835;EQUIV(D4;Feuil2!C$2:C$835;0))
Pour la suite recopier E4 de E5 jusqu'où il faut.

Un exemple :
http://cjoint.com/?ejl2YtfAKN

@+
FxM

Merci


Mais dés que je mets mes données réelles...........ça plante

je le mets ici aussi : http://cjoint.com/?ejx7EkwQMd

GUY





quidam
Le #3667591
"Xavier POWAGA" 4439fabb$0$27975$
J'ai vérifié, ça marche dans ton tableau. le seul pb c'est que les noms de
villes qui sont dans ta feuil2 comportent plein d'espaces à la suite et
sont donc vus différents des noms de villes de la feuil 1

Xavier


Merci


J'ai fait le grand nettoyage des espaces (avec Word car avec Excel je n'ai
pas su faire)....bref il n'y en a plus et c'est propre.
Ca marche....mais juste sur la première occurence !
Je me prend par la main et je saisis les données !
Merci de ton aide

Guy

FxM
Le #3667221
Bonsoir,

Comme te l'a écrit Xavier, c'est du aux espaces en trop dans les codes
insee ou les communes.

Un code (parmi d'autres) pour les enlever :
Alt-F11 -> Insertion -> module puis recopier ce qui suit :
Sub epure()
Application.EnableEvents = False
With Sheets("feuil1")
.Activate
For Each cel In .Range("D4:D2560")
cel.Select
cel.Value = LTrim(RTrim(cel))
Next cel
End With

With Sheets("feuil2")
.Activate
For Each cel In .Range("B2:C835")
cel.Select
cel.Value = LTrim(RTrim(cel.Value))
Next cel
End With

Application.EnableEvents = True
End Sub
Ensuite retourner dans Excel, outil | macro | macro -> epure

@+
FxM


"FxM"
Bonjour,

Sans VBA et en supposant tes plages comme étant :
dans une feuille 2 :
les 834 communes de C2 à C835

les 834 codes insee de B2 à B835

dans une feuille 1
le premier enregistrement en D4, les suivants recopiés vers le bas


Pour le premier code insee en E4 :
=INDEX(Feuil2!B$2:B$835;EQUIV(D4;Feuil2!C$2:C$835;0))
Pour la suite recopier E4 de E5 jusqu'où il faut.

Un exemple :
http://cjoint.com/?ejl2YtfAKN

@+
FxM

Merci


Mais dés que je mets mes données réelles...........ça plante

je le mets ici aussi : http://cjoint.com/?ejx7EkwQMd

GUY






quidam
Le #3667131
Bonsoir,

Chapeau et mille mercis à vous deux....
Ca fonctionne impec !
Je pensais avoir oté les espaces en trop avec Word, mais ça ne devait pas
être le cas..
et là, en à peine 30sec le pb a été résolu :o)

Guy

"FxM"
Bonsoir,

Comme te l'a écrit Xavier, c'est du aux espaces en trop dans les codes
insee ou les communes.

Un code (parmi d'autres) pour les enlever :
Alt-F11 -> Insertion -> module puis recopier ce qui suit :
Sub epure()
Application.EnableEvents = False
With Sheets("feuil1")
.Activate
For Each cel In .Range("D4:D2560")
cel.Select
cel.Value = LTrim(RTrim(cel))
Next cel
End With

With Sheets("feuil2")
.Activate
For Each cel In .Range("B2:C835")
cel.Select
cel.Value = LTrim(RTrim(cel.Value))
Next cel
End With

Application.EnableEvents = True
End Sub
Ensuite retourner dans Excel, outil | macro | macro -> epure

@+
FxM


Publicité
Poster une réponse
Anonyme