Décalage de code et insertion de colonnes

Bonsoir à tous !

J'espère que quelqu'un pourra me guider !

Je dois insérer des colonnes dans une feuille et un grand nombre de cellules de cette feuille sont utilisées comme variables dans mon code VBA.

Si j'ai bien compris le fonctionnement, si j'insére mes colonnes à gauche dans ma feuille mon code ne fonctionnera plus puisque les cellules dont je tire la valeur pour créer me variables se seront décalés mais mon code n'aura lui pa changé.

Quelqu'un saurai comment je peu sauver cette histoire ?

Merciii à vous !!!

Bonjour,

Il faut créer un tableau structuré pour en utiliser les propriétés dans le code et notamment les champs nommés.

De cette manière, on fait référence à la colonne par son nom quelque soit sa position :

sub test()
with sheets("NomFeuille").listobjects("NomTableau")
    t = .listcolumns("NomCol1").databodyrange.value '>>> tableau avec les valeurs de la colonne
    n = .listcolumns("NomCol1").index '>>> position de la colonne
end with
end sub

Cdlt,

Bonjour Stratos, 3GB

Avant même de connaitre les tableaux structurés, j'ai été confronté à ce problème, et je m'étais fait des fonctions qui calculaient l'index d'une colonne en passant le nom de la colonne : cela fonctionnait tant que j'avais une ligne de titre.

Pour apprendre à utiliser les tableaux structurés (merci 3GB): tutoriel tableaux structurés

Bonjour à vous deux, et merci pour vos réponses et votre aide.

Je comprend que j'aurai dû y penser avant de me lancer ou choisir la solution des tableaux structurés.

Malheureusement les donnes sur que j'ai sur cette page ne peuvent pas être mise sous forme de tableau :/

Du coup je suis plutôt intéressé par cette fonction dont tu parles, placé en début de ton code elle permet d'appliquer un décalage de colonne à toutes les cellules citées après ?

Bonjour Stratos

Pour savoir où est ton problème. Publie un classeur avec une feuille source, un code gérant les données, et une feuille ayant subi l'insertion de colonne.

Le décalage concerne bien des données en colonne ayant un impact sur le code.

Il suffit de faire un Range.Find sur l'entete de la feuille , le résultat si le range retourné est dans la variable rg, la colonne est rg.Column

Rechercher des sujets similaires à "decalage code insertion colonnes"