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

Résolu
peanuts2438 -  
 peanuts2438 -
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

9 réponses

  1. dlt-pan Messages postés 529 Statut Membre 67
     
    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
  2. peanuts2438
     
    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
  3. dlt-pan Messages postés 529 Statut Membre 67
     
    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
  4. peanuts2438
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dlt-pan Messages postés 529 Statut Membre 67
     
    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
  7. peanuts2438
     
    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
  8. dlt-pan Messages postés 529 Statut Membre 67
     
    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
  9. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  10. peanuts2438
     
    Merci beaucoup pour vos réponses j'ai réussi.
    0