Sélection de colonnes par index

lombriiik

XLDnaute Nouveau
Bonjour à tous,

j'ai besoin de pouvoir sélectionner une plage de colonnes en les appelant par leur index pour pouvoir faire une boucle dans mon programme.
càd. je veux supprimer les colonnes BS à CZ ensuite, les colonnes BT à CZ, BU à CZ soit un décalage d'un à chaque occurence.

J'ai essayé columns(71,104).delete mais j'ai une erreur 1004 (erreur définie par l'objet ou l'application) sur la ligne.

Pouvez vous faire quelquechose pour moi svp :( ??
 

lombriiik

XLDnaute Nouveau
Re : Sélection de colonnes par index

Bonjour Papou-net,

merci de ta réponse mais elle ne correspond pas à ma demande (mais je reconnais que j'explique pas très bien :p)
Je ne veux pas faire un sélection multiple de colonnes mais plutôt pouvoir sélectionner plusieurs colonnes contigües par leur index de colonne pour pouvoir faire une fonction qui va boucler plusieurs fois.

Au premier passage dans la boucle : effacer colonnes 71 à 104
Au deuxième passage : effacer colonnes 72 à 104
Au troisième passage : effacer colonnes 73 à 104
...
Au bout de i passages : effacer colonnes 70 + i à 104.

Je sais qu'on peux sélectionner une colonne par son index (ex: columns(1).select) et j'aimerais pouvoir faire un columns(70+i:104).select

J'espère que c'est plus clair. Merci à tous de votre aide toujours précieuse
 

Papou-net

XLDnaute Barbatruc
Re : Sélection de colonnes par index

Re-bonjour lombriiik,

Effectivement, c'est plus clair ainsi.

Voici donc une boucle d'effacement :

Code:
Private Sub EffaceColonnes()
For n = 71 To 100
  Range(Columns(n), Columns(104)).Delete
Next
End Sub

Je l'ai testée, ça fonctionne.

Espérant avoir répondu.

Cordialement.
 

bqtr

XLDnaute Accro
Re : Sélection de colonnes par index

Bonjour lombriiik, Papou-net

Excuse moi lombriiik, mais à quoi ca sert d'effacer x fois les mêmes colonnes ? :)

Si tu effaces les colonnes de BS à CZ une première fois, tu n'auras plus rien à effacer lors du deuxième passage de BT à CZ. et ainsi de suite.

L'instruction suivante suffit.
Code:
Columns("BS:CZ").ClearContents
Ou alors j'ai rien compris :D

Edit : pour supprimer les colonnes en une seule fois (et non les effacer)
Code:
Columns("BS:CZ").Delete

A+
 
Dernière édition:

lombriiik

XLDnaute Nouveau
Re : Sélection de colonnes par index

bonjour Bqtr,

en fait, je dois effectuer un tri de tableau selon 4 colonnes différentes. Ensuite, je copie les lignes filtrés vers un onglet temporaire, je supprimes des colonnes, fais quelques calculs et copie le résultat dans un onglet définitif.
La mise en forme est la même sauf pour la colonne de tri que je dois garder. J'ai donc besoin de refaire 4 fois la même mise en forme à part une colonne qui change.
Du coup, pour alléger mon programme, j'ai écrit une fonction mais il faut que je puisse lui dire 'Attention, si c'est le Ième tri tu dois supprimer les colonnes i à i+4'

Espérant avoir répondu à tes questions

Bon après midi à tous
 

lombriiik

XLDnaute Nouveau
Re : Sélection de colonnes par index

Bon, c'est vrai que je n'ai pas été très clair mais finalement j'ai réussi à faire ce que je voulais.

Merci à tous pour votre aide et votre implication et particulièrement à Papou-net qui m'a apporté la syntaxe qui me manquait :eek:
 

Discussions similaires

Réponses
2
Affichages
210

Statistiques des forums

Discussions
312 489
Messages
2 088 851
Membres
103 974
dernier inscrit
chmikha