copier/coller cellules vers autre feuille selon condition

  • Initiateur de la discussion Initiateur de la discussion Nicolas33gin33!
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

Nicolas33gin33!

Guest
Bonjour,

Je cherche à faire une macro pour le fichier joint.
N'y arrivant pas, je m'adresse à vous :
je souhaiterai faire un copier/coller (onglet vecteurs) des cellules A, B et C si la case "cocher" est marquée d'un X (c'est plus une liste déroulante qu'une case à cocher d'ailleurs ^^') vers l'onglet BDC - cellule C, D et G.
Sauf que comme toutes les cases ne seront pas cochées, je ne veux pas qu'il y ait une ligne avec un trou (sinon j'aurai fait un banal SI).

Exemple : je commande 1 bougie et 2 grattoirs, je veux que sur le BDC apparaisse les 2 vecteurs et c'est tout

D'avance, merci
 
Bonjour Nicolas 🙂

Quand tu commence une base de données, la moindre des choses c'est de completer le tableau. Pas de code de référence, pas de prix; comment veux-tu faire pour remplir le bon de commande??? 🙄

J'ai rajouté la colonne PRIX dans la feuille Vecteurs et mis les codes. J'ai corrigé aussi les codes pour l'éffacement des cellules et pour l'impression de la feuille. Regarde si ça te convient.
 

Pièces jointes

Dernière édition:
Je communique la solution au cas ou :

Bref, en F2 de ta feuille Vecteurs, insère la formule:
Code: Tout sélectionner
=SI(E2="X";LIGNE()-1;"")
et recopie vers le bas. Ceci fera apparaître la position de chaque "X" dans ton tableau.
En feuille BDC, cellule C18, écris:
Code: Tout sélectionner
=SIERREUR(INDEX(Vecteurs!A$2:A$60;PETITE.VALEUR(Vecteurs!$F$2:$F$60;LIGNES($1:1)));"")
recopie en bas également. Si tu n'avais pas de cellules fusionnées en D, E et F, tu pourrais recopier à droite aussi. Dans le cas présent, colle la même formule en D18 et modifie la référence à la plage A$2:A$60 en B$2:B$60.
Je te laisse le soin d'adapter en colonne G
 
Re
As-tu testé la macro? Parce-qu'il n'y a pas besoin de formules, la macro le fait. Efface les X et fait une nouvelle commande. Mais avant efface les lignes du bon de commande.

Edit: dans la feuille Vecteur modifie la ligne par celle-ci
If Not Intersect(Target, Range("a1:k20, n2:q20")) Is Nothing Then Exit Sub
 
Je communique la solution au cas ou :

Bref, en F2 de ta feuille Vecteurs, insère la formule:
=SI(E2="X";LIGNE()-1;"")
et recopie vers le bas. Ceci fera apparaître la position de chaque "X" dans ton tableau.
En feuille BDC, cellule C18, écris:
=SIERREUR(INDEX(Vecteurs!A$2:A$60;PETITE.VALEUR(Vecteurs!$F$2:$F$60;LIGNES($1:1)));"")
recopie en bas également. Si tu n'avais pas de cellules fusionnées en D, E et F, tu pourrais recopier à droite aussi. Dans le cas présent, colle la même formule en D18 et modifie la référence à la plage A$2:A$60 en B$2:B$60.
Je te laisse le soin d'adapter en colonne G
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

S
Réponses
8
Affichages
2 K
StanislasC
S
G
Réponses
39
Affichages
3 K
Guirams
G
Retour