Copier une plage en fonction de la valeur d'une cellule

lucieaup -  
 luieaup -
Bonjour à tous,

J'ai un fichier excel simple avec deux feuilles, une de saisie pour chaque nouveau client et une qui fait base de donnée. J'aimerai qu'à chaque fois qu'un produit est saisi via la liste déroulante en F8 sur la première feuille, cela me remplisse le tableau des composants avec les composants de ce produit (qui sont détaillés dans la feuille 2). J'ai essayé plusieurs code plus ou moins élaborés mais ca ne fonctionne pas. J'ai commencé avec des si et je voulais le remplacer par un code gééral mais ca ne marche pas :

 If Sheets("Fiche Fabrication").Range("F8").Value = Sheets("asséchants").Range("H2").Value Then
Range("H3").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Fiche Fabrication").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If

DU coup j'ai aussi essayé ca mais ca ne marche toujours pas :

Sub test()
Dim c As Range
Dim a As Integer
Dim b As Integer

With Sheets("Sheet1")
a = 10
End With

For Each c In Range(Cells(1, 2), Cells(1, a))
If c.Value = Sheets("Fiche Fabrication").Range("F8") Then
b = Cells(65000, c.Column).End(xlUp).Row 'recherche dernière ligne
Sheets("Fiche Fabrication").Range("D17:D" & b).Value = Range(Cells(1, c.Column), Cells(b, c.Column)).Value
Exit For
End If
Next c

End Sub

Sub ZZZ()

On Error GoTo fin
Range("A1").Select
Nombre = Sheets("Fiche Fabrication").Range("F8")

Columns(1).Find(Nombre).Select ' si tu cherches en colonne 1

Premier = ActiveCell.Row 'donne la ligne du nombre cherché
ActiveCell.Offset(1, 0).Select
While ActiveCell = ""
ActiveCell.Offset(1, 0).Select
Wend
Dernier = ActiveCell.Offset(-1, 0).Row 'donne la Dernière ligne de "3"

Range("B" & Premier, "B" & Dernier).Select 'si +sieurs clonnes, change le 2° "B"
Selection.Copy

Exit Sub

End Sub


Est ce que quelqu'un pourrait m'aider?

Merci beaucoup

2 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Pourquoi utiliser une macro alors qu'une RECHERCHEV ou H sur la feuille pourrait peut être suffire ?

    Post un exemple allégé et anonymé de ton fichier avec les 2 feuilles sur cjoint.com et indiques ici le lien fourni
    on y verra plus clair

    Cdlmnt
    0
  2. lucieaup
     
    Bonjour,

    Merci pour votre message. J'ai bien essayé avec une recherche V mais comme il faut copier la liste entière ca ne marche pas.

    Voici le fichier an pièce jointe, la liste déroulante est dans la feuille fiche de fabrication en F8, je voudrais que chaque fois qu'un produit est choisi, il me recopie à partir de la case D17 les différents composants du produit (colonne B dans la feuille assechants) et dans la colonne B de la feuille Fiche de Fabrication le pourcentage de chaque composant à apporter (colonne C de la feuille assechants).

    http://cjoint.com/?CJxodoHfDcA

    Voila j'espère que c'est clair...
    0
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Je dois m'absenter une partie de l'apres midi
      Je regarde tout de suite en rentrant
      Réponse ce soir
      0
    2. lucieaup
       
      Merci!!
      0
    3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Voilà

      En présentant différement les composants on recupère les données avec INDEX EQUIV sans besoin de macro
      https://www.cjoint.com/?0JxrAQXNz24

      En espérant que c'est bien ce que tu voulais

      Cdlmnt
      0
    4. luieaup
       
      Merci beaucoup, c'est génial!!!
      0