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

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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
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
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Je dois m'absenter une partie de l'apres midi
Je regarde tout de suite en rentrant
Réponse ce soir
0
lucieaup
 
Merci!!
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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
luieaup
 
Merci beaucoup, c'est génial!!!
0