VBA : Sélection de plusieurs colonnes

tuturo25

XLDnaute Nouveau
Bonjour à tous,

J'ai un fichier excel avec 95 colonnes, et je souhaiterais créer un code sous VBA qui sélectionnerait uniquement les colonnes non divisibles par 3 à partir de la colonne 4 incluse, pour ensuite les supprimer.

J'ai commencé à écrire le code, mais je m'y connais pas beaucoup donc bien sûr ça ne marche pas ... :p

Sub Select()

For k = 4 To 95
Cells(1, k).Select
If k Mod 3 = 2 Then
Columns(k).Select
ElseIf k Mod 3 = 1 Then
Columns(k).Select
End If
Next k

End Sub

Le code fonctionne mais il ne sélectionne pas l'ensemble des colonnes, apparemment il faudrait insérer la fonction " Union " mais je ne vois pas trop comment faire.
Est ce que vous auriez une idée svp ?

Je vous remercie d'avance.
 

job75

XLDnaute Barbatruc
Re : VBA : Sélection de plusieurs colonnes

Bonsoir tuturo25, bienvenue sur XLD,

Faites une boucle en commençant par la dernière colonne :

Code:
For k = 95 To 4 Step -1
Vous pouvez alors sans problème supprimer les lignes une par une, et pas de Select : c'est inutile.

A+
 

tuturo25

XLDnaute Nouveau
Re : VBA : Sélection de plusieurs colonnes

Merci de vos réponses !

J'ai essayé de faire comme vous m'avez dit, mais le problème c'est que toutes les colonnes seront supprimées si on fait de cette façon.
Le code sélectionne la colonne 4, comme 4 n'est pas divisible par 3, il va supprimer cette colonne. Du coup, la colonne 5 va devenir la colonne 4, et sera aussi supprimée, et ainsi de suite ...

Du coup je pense que je suis obligé de passer par la fonction " Union "
 

tuturo25

XLDnaute Nouveau
Re : VBA : Sélection de plusieurs colonnes

Dernière question : si jamais je veux aller de k = 4 jusqu'à k = dernière colonne non vide , il faut que je rentre for k = 4 to End(xlToRight) ? Est ce que ça sélectionnera aussi les cellules vides si il y en a entre ?
 

job75

XLDnaute Barbatruc
Re : VBA : Sélection de plusieurs colonnes

Re,

La bonne syntaxe :

Code:
For k = 4 To [D1].End(xlToRight).Column
va jusqu'au n° de colonne qui précède la 1ère cellule vide à droite de D1.

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 160
Messages
2 085 842
Membres
103 003
dernier inscrit
Maxmarie14