Sélectionner une colonne entière d'une feuille

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J'ai, dans une feuille, un tableau, comprenant plusieurs colonnes, nommé "Désir".
Je voudrais sélectionner toute la colonne immédiatement à gauche de ce tableau.
Si j'écris : [Désir].Columns(1).Offset(, -1) .Select
je sélectionne la plage de cellules immédiatement à gauche du tableau.
Comment faire pour sélectionner la colonne ENTIÈRE immédiatement à gauche du tableau, en prenant comme point de repère le nom de ce tableau ?

Merci pour toute aide.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Sélectionner une colonne entière d'une feuille

Bonjour le fil, bonjour le forum,

Peut-être comme ça :
Code:
Range("Désir").Cells(1, 1).Offset(0, -1).EntireColumn.Select
mais gare au plantage si ta plage nommée commence en colonne A...
 

Magic_Doctor

XLDnaute Barbatruc
Re : Sélectionner une colonne entière d'une feuille

¡Amigos, buenos días y gracias!

En attendant, j'avais écrit cette petite routine :

VB:
Sub SelectCol()

Dim plage
Dim colplage As Byte 'le Nº de la colonne sera toujours < 255

colplage = [Désir].Columns(1).Offset(, -1).Column

Columns(colplage).Select

'plage = Columns(colplage)

End Sub

Ce qui correspond à vos réponses.
Le problème, c'est que je voudrais qu'une variable (en l'occurrence "plage") devienne Columns(colplage). Pourquoi ?
En partant sur le même raisonnement, j'aurais plusieurs variables ("plage1", "plage2", "plage3"...), chaque "plage" correspondant à une colonne de la feuille, pour finir avec, par exemple :

VB:
Union(plage1, plage2, plage3).EntireColumn.Hidden = True

J'ai essayé avec : plage = Columns(colplage)
Mais ça n'a pas marché.
 

pierrejean

XLDnaute Barbatruc
Re : Sélectionner une colonne entière d'une feuille

Re

En esperant que mon sens de l'orintation soit revenu

Code:
Sub SelectCol()

Dim plage
Dim  colplage 'le Nº de la colonne sera toujours < 255
colplage = [Désir].Column-1

Columns(colplage).Select  'plage = Columns(colplage)
End Sub
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Sélectionner une colonne entière d'une feuille

salut

Si... tu veux récupérer des numéros de plage (d'une colonne) peut-être ainsi
Code:
Sub SelectCol()
  Dim n As Byte, plage, a(2)
  For n = 0 To 2
    plage = Array("plage1", "plage2", "plage3")(n)
    If Range(plage).Column > 1 Then a(n) = Range(plage).Column - 1
  Next
  'pour contrôle
  For n = 0 To 2: col = col & "  " & a(n): Next
  MsgBox col
End Sub
 

Magic_Doctor

XLDnaute Barbatruc
Re : Sélectionner une colonne entière d'une feuille

En effet, maintenant c'est clair !
Apparemment en première lecture ton post ne s'était pas décodé.

Ta dernière syntaxe est encore plus brève, mais comment se débrouiller pour obtenir :

VB:
Sub SelectCol()
blablabla

plage = Columns(colplage)
plage.select

End Sub
 

Magic_Doctor

XLDnaute Barbatruc
Re : Sélectionner une colonne entière d'une feuille

Je te répondais pierrejean.
Je ne sais pourf quelle raison obscure ton post ne s'était pas décodé et le résultat était des plus abscons.
Voilà pourquoi je te disais que "je n'ai pas bien compris".
Le problème au départ était de localiser une colonne distante d'une plage nommée. Après je pensais que ce serait simple. Mais rien n'est jamais simple avec Excel (¡COÑO!).
Cette colonne localisée, je voulais l'attribuer à une variable et répéter le même raisonnement avec plusieurs colonnes (donc plusieurs variables).
Pour résumer :
J'ai un tableau nommé "Désir" (qui comprend 2 colonnes) et je veux occulter (ou désocculter) la colonne qui se trouve immédiatement à sa gauche (-1), la colonne qui se trouve immédiatement à sa droite (+2) et un colonne distante de 5 colonnes du tableau (+6). Les -1, +2 et +6 découlent de ta syntaxe.

J'ai écrit cette routine :

VB:
Sub SelectCol1()

Dim plage1 As String, plage2 As String, plage3 As String
Dim colplage As Byte 'le Nº de la colonne sera toujours < 255

colplage = [Désir].Column - 1
plage1 = Columns(colplage).Address
colplage = [Désir].Column + 2
plage2 = Columns(colplage).Address
colplage = [Désir].Column + 6
plage3 = Columns(colplage).Address

Union(Range(plage1), Range(plage2), Range(plage3)).EntireColumn.Hidden = False

End Sub

Ça marche.

Ci-joint un fichier.

Merci à tous !
 

Pièces jointes

  • Voir_Cacher.xlsm
    58.7 KB · Affichages: 50

Discussions similaires

Statistiques des forums

Discussions
312 875
Messages
2 093 148
Membres
105 641
dernier inscrit
Naoel