Passer d'une macro à une VBA

Bonjour à tous, dans le fichier ci-joint, j'ai créé la macro7. Je voudrais l'automatiser en VBA.

12vba-depot.xlsm (19.96 Ko)

Le but du jeu je veux lorsque je coche une ou plusieurs des cases entre D7 et D118 que, les cellules se B et D133 se copie en dessous dès que je coche une case.

Si je coche une ou plusieurs des cases entre G107 et G117, les cellules B133 et G133 se recopient dans la colonne B pour B133 et dans la colonne G pour G133. A chaque case cochée, les cellules sont copiées les unes en dessous des autres.

Si je coche une ou plusieurs des cases entre J107 et G122, les cellules B133 et J133 se recopient dans la colonne B pour B133 et dans la colonne J pour J133. A chaque case cochée, les cellules sont copiées les unes en dessous des autres.

Enfin, si je décoche mes cases, les cellules copiées sont supprimées.

Merci de votre aide!

Bonjour,

Entre vos explications et la macro je ne comprends rien...

Cependant si vous souhaitez récupérer les cellules "cochées" dans les cellules bleues en dessus, pas besoin de macro vous avez la Fonction Excel : FILTRE :

=FILTRE(B4:B15;D4:D15)

Hello,

@saboh12617, comme vous je n'ai rien compris, mais il n'y a pas la fonction FILTRE sur 2016.

Edit : vu que les case à cocher n'existe pas non plus sur 2016, je pense que la solution FILTRE devrait fonctionner, le profil de Pyrenette n'est certainement pas à jour

@Pyrenette : l'enregistreur de macro est a utiliser au tout début mais tout de suite il faut l'abandonner pour nettoyer car il fait des truc pas beau du tout.

Edit : Pensez à mettre à jour votre profil avec la bonne version d'Excel afin que l'on puisse vous proposez les solutions qui conviennent

Bonsoir à tous,

sur Excel 2019, la dernière ligne de données est la 19 (et pas 133), et en-dessous je vois des listes déroulantes. Et pas de cases à cocher, ce qui fait que j'ai aussi du mal à comprendre ce qu'il faut faire ;

excel copie cellules vba par pyrenette

@Doux Rêveur je soupçonne Pyrenette d'avoir une version plus récente que ce sui est indiqué dans son profil car il y a bien des cases à cocher pour ma version 365.

Ok, à la place des FAUX j'imagine ?

Et vous avez aussi des listes déroulantes en bleu ?

Oui, mais je n'ai pas plus compris

2026 02 12 23 18 13

Le but est probablement de lister les lignes cochées (VRAI) en-dessous, comme le supposait saboh12617, donc en supprimant les listes déroulantes.

Bonjour à tous,

Oui effectivement quand j'ai vu les cases à cocher j'en ai déduit que la version était plus récente, d'où ma proposition. J'ai juste oublié de le mentionner...

Bonjour à tous, grand merci de vos réponses car effectivement j'ai très mal fait ma demande. Aussi je me permet de la réitérer!

J'ai changé mon profil, puisque effectivement j'ai Excel 365 FR.

J'ai changé l'énoncé de ma demande que j'ai mis directement dans le fichier Excel ci-joint. Pour illustrer ma demande, j'ai créé une Macro, mais que vous pouvez effacer si besoin.

Avec mes excuses pour le post d'hier qui ne ressemblait à rien!. J'espère trouver des réponses à ma problématiques VBA!

Merci!

4vba-depot.xlsm (19.96 Ko)

reBonjour, il me semble que vous avez rejoint le fichier initial (mauvais fichier, celui-ci est sans instructions).

4vba-depot-v1.xlsm (21.58 Ko)

Je crois avoir compris, disons que la première partie est faisable facilement (ajout de lignes "emplacement depot"). Par contre concernant la suppression si vous décochez il y a un vrai problème :

Le tableur ne "se rappelle pas" quelle ligne créée "en bas" correspond à la case cochée "en haut". Ainsi, supposons que vous ayez coché D4, D5 et D6. On a donc 3 lignes "en bas" en B22,B23,B24. Maintenant, vous décochez D5. Doit-on supprimer B22,B23 ou B24 ? on ne le sait pas. Car cela dépend de votre ordre de saisie/"cochage". Si vous faites D4>D5>D6, alors B22>B23>B24 sont dans l'ordre, mais si vous faites D4>D6>D5, alors il n'y a plus de correspondance. Vous voyez le schmilblick...

Une solution serait de copier l'identifiant de dépot ("112 - GB S/T BEYRIA" -> id=112) par exemple en A22 ou C22 (la ligne correspondante), ainsi quand vous décochez une element "en haut", on va chercher son identifiant dans la liste en bas, et on retire les cellules correspondantes. Car sinon c'est sujet à erreurs.

Hello,

la solution FILTRE de saboh (version 12617 ) me semble correspondre à ce que vous demandez et surtout sans macro superfétatoire (et enregistrée)

=FILTRE(B4:B19;D4:D19;"")
5vba-depot-v1.xlsm (20.03 Ko)

@nain, si j'ai bien compris il faut dupliquer la cellule bleue (avec sa liste) pour chaque element coché au-dessus, sans "aucun lien apparent" avec les cellules B4:B15.

Pour moi le workflow est le suivant : elle sélectionne un element dans la liste bleue (disons une destination). Puis elle coche au-dessus (D4:D15) les items qui y vont. A chaque coche la cellule bleue est dédupliquée en dessous pour "sauvegarder". Puis elle change d'entrepot, et continue... Cependant il manque le lien entre les elements cochés et les éléments sauvegardés, ce que je faisais remarquer.

Après bon, j'ai pu mal interpréter.

@saboh, c'est toujours le problème d'interprétation et de la clarté de la demande de la personne qui a la tête dans le guidon et pour qui tout est "évident"

Rechercher des sujets similaires à "passer macro vba"