Macro qui s'execute differement à chaque execution

Bonjour à tous,

Je suis nouveau sur le forum et débutant en VBA.

Voici mon problème : Insérer des colonnes à un emplacement différent à chaque execution de la macro selon un principe de récurrence (ce que je ne peux pas faire grâce à l'enregistreur et ce qui m'oblige à utiliser le VBA)

Ainsi, lors de la première éxecution je souhaiterais ajouter une colonne à la droite des colonnes 7,17,21 et 28. Le problème est qu'un code comme celui-là ne répond pas à ma demande...

Columns(7).Insert Shift:=xlToRight

Columns(14).Insert Shift:=xlToRight

Columns(21).Insert Shift:=xlToRight

Columns(28).Insert Shift:=xlToRight

car lors de la deuxième execution, je voudrais...

Columns(7).Insert Shift:=xlToRight

Columns(15).Insert Shift:=xlToRight

Columns(23).Insert Shift:=xlToRight

Columns(31).Insert Shift:=xlToRight

et lors de la N-ème exécution de la macro, je voudrais..

Columns(7).Insert Shift:=xlToRight

Columns(14+n-1).Insert Shift:=xlToRight

Columns(21+2n-2).Insert Shift:=xlToRight

Columns(28+3n-3).Insert Shift:=xlToRight

En fait, je souhaite insérer une colonne à la droite de colonnes qui vont changer de positions au cours des différentes exécutions de macro.

Celà est-il possible d'après vous?

En espérant avoir été clair...

Bonjour,

Oui, nommes tes colonnes (ou la première cellule de cette colonne) ensuite :

i = Range("ventes").Column
Columns(i).Insert Shift:=xlToRight

A+

merci Galopin pour ta réponse.

En tant que novice (j'ai commencé aujourd'hui et je suis un peu noyé ), pourrais je te demander la signification de ta première ligne " i = Range("ventes").Column ".

Je ne saisis pas en quoi cela va me permettre de décaler à chaque execution le numéro de colonne ou je souhaite l'insertion.

Re...

J'ai supposé que ta colonne (ou ta cellule) avait été nommée par exemple "ventes"

Donc je relève le N° de colonne de cette colonnes (cellule) nommée "ventes" dans une variable que j'appelle i

Ensuite tu insères ta colonne avec un N° de colonne qui "suivra" toujours la bonne colonne (qui va s'incrémenter) au fur et à mesure des insertions.

En gros ça sert surtout à ça de nommer les plages de cellules : Les noms "collent" à leurs données, ça évite de les perdre de vue si les colonnes ou les lignes sont mélangées...

Ok ?

A+

Elementaire mon Cher Watson,

J'ai bien compris le principe. Merci à toi.

See U.

Rechercher des sujets similaires à "macro qui execute differement chaque execution"