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

Fermé
lucieaup - 23 oct. 2013 à 08:52
 luieaup - 23 oct. 2013 à 18:44
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 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
23 oct. 2013 à 13:29
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
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 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
23 oct. 2013 à 14:34
Je dois m'absenter une partie de l'apres midi
Je regarde tout de suite en rentrant
Réponse ce soir
0
Merci!!
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
23 oct. 2013 à 17:28
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
Merci beaucoup, c'est génial!!!
0