Copier plusieurs cellules d'une autre feuille selon une référenc

Résolu/Fermé
peanuts2438 - 10 janv. 2014 à 10:31
 peanuts2438 - 10 janv. 2014 à 13:58
Bonjour,

Je vous explique mon problème :
J'ai une feuille avec tous plein d'infos sur nos clients (dont nom, code postal, ville, ciblage, quantité commande...). Ces clients sont classés par une référence (nombre à 6 chiffres). Afin d'extraire seulement certaines infos sur une autre feuille j'aimerais rentrer cette référence dans ma première cellule, et que ça me copie les cellules Nom, ville, code postal par la suite. Est ce que c'est possible ?

Merci d'avance pour votre aide
Cécile
A voir également:

9 réponses

dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
10 janv. 2014 à 10:39
Bonjour,
oui c'est possible
Quand tu dis " j'aimerais rentrer cette référence dans ma première cellule", cette cellule est sur la première ou sur la deuxième feuille ?
Sur la première feuille, precise les lettres des colonnes que tu souhaites récuperer et la colonne dans laquelle est stcokée ta réfèrence 6 chiffres.
0
Pardon alors sur la Feuille 1 j'ai :
A2 : référence compte client
B2 : autre référence
C2 : Nom
D2 : autre nom
E2 : Adresse
F2 : Code Postal
G2 : Ville
H2 : téléphone
I2 : ciblage

Et donc sur la feuille 2, j'aimerais taper la référence en A1 qui se trouve en A2 sur l'autre feuille et que ça me copie automatique les cellules C2, F2, G2 et I2 de la feuille 1 en B1, C1, D1 et E1 sur la feuille 2

J'espere avoir été assez claires !
0
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
10 janv. 2014 à 11:13
oui parfaitement,
voici ce que je te propose :
dans ta feuil 2, tu inscris ta reference 6 chiffres dans la colone A. tu doubleclic dessus et la macro demarre.
Si ton nom d'onglet de ta feuille 1 est different de "Feuil1", tu dois mettre le bon nom dans la macro (remplacer feuil1 par xxxxxx).
tu colles la macro dans la Feuille 2.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ligne = Val(Mid(ActiveCell.Address, 4, 4))
If Mid(ActiveCell.Address, 2, 1) = "A" Then
For i = 1 To Sheets("feuil1").Range("A65500").End(xlUp).Row
If ActiveCell = Sheets("feuil1").Cells(i, 1) Then
Sheets("feuil1").Cells(i, 3).Copy
Cells(ligne, 2).Select
ActiveSheet.Paste
Sheets("feuil1").Cells(i, 6).Copy
Cells(ligne, 3).Select
ActiveSheet.Paste
Sheets("feuil1").Cells(i, 7).Copy
Cells(ligne, 4).Select
ActiveSheet.Paste
Sheets("feuil1").Cells(i, 9).Copy
Cells(ligne, 5).Select
ActiveSheet.Paste
Exit Sub
End If
Next i
End If
End Sub
0
wahou merci beaucoup par contre c'est un peu du chinois pour moi tout ça !!!

Si j'ai bien compris il faut que je copie tout ce que tu m'as mis, en remplacant feuille 1 par son vrai nom, par contre je colle où tout ça ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
Modifié par dlt-pan le 10/01/2014 à 11:37
sinon donne moi le nom de ton premier onglet et je le fais.
pour coller la macro, tu ouvres ton fichier, tu tapes alt+F11 pour ouvrir l'editeur vba puis tu double clic sur feuil2 et tu colles la macro dans la fenetre a droite
il faut ensuite enregister ton fichier avec l'extension .XLSM (contient des macros)
0
J'ai essayé mais rien ne se passe, voila le nom de mon onglet ETAT BE AU 191213

Lorsque le Visual Basic Editor s'ouvre je double clique sur ma Feuil2, je colle toute la formule, et je ferme l'editeur ou il faut faire quelque chose en plus ?
0
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
Modifié par dlt-pan le 10/01/2014 à 11:57
voici la macro modifiée :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ligne = Val(Mid(ActiveCell.Address, 4, 4))
If Mid(ActiveCell.Address, 2, 1) = "A" Then
For i = 1 To Sheets("ETAT BE AU 191213 ").Range("A65500").End(xlUp).Row
If ActiveCell = Sheets("ETAT BE AU 191213 ").Cells(i, 1) Then
Sheets("ETAT BE AU 191213 ").Cells(i, 3).Copy
Cells(ligne, 2).Select
ActiveSheet.Paste
Sheets("ETAT BE AU 191213 ").Cells(i, 6).Copy
Cells(ligne, 3).Select
ActiveSheet.Paste
Sheets("ETAT BE AU 191213 ").Cells(i, 7).Copy
Cells(ligne, 4).Select
ActiveSheet.Paste
Sheets("ETAT BE AU 191213 ").Cells(i, 9).Copy
Cells(ligne, 5).Select
ActiveSheet.Paste
Exit Sub
End If
Next i
End If
End Sub


il faut peut avant que tu active l'onglet developpeur. pour ce faire :
dans le menu fichier/options/personnaliser le ruban, tu coches la case a coté de developpeur


lorsque que l'editeur s'ouvre tu verras une arboresence à gauche et c'est ici que tu double clic sur feuil2. tu colles la macro dans la fentre a droite et tu fermes avec la croix rouge

c'est pret a fonctionner.

Pour enregistrer le fichier avec la macro, tu fais enregistrer sous et dans type tu choisi classeur prenant en charge les macro .xlsm
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 238
Modifié par eriiic le 10/01/2014 à 12:08
Bonjour à tous,

Houlaa, pas besoin de macro à mon avis. En Feuil2!B1 :
=RECHERCHEV($A1;Feuil1!$A$1:$I$20;3;FAUX)
à tirer vers la droite.
Sur les autres formules remplacer le 3 par le n° de la colonne souhaitée.
(3 = colonne C, Nom)

eric

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
0
Merci beaucoup pour vos réponses j'ai réussi.
0