Plage de cellules selon une colonne variable

Bonjour,

Trouvant systématiquement de l'aide avec vous, je me permets de vous poser une nouvelle fois un problème. Je voudrai sélectionner une plage de cellule sans passer par :

range("A1":"A5")

En effet ici les variables sont à la fois les colonnes et les lignes.

Imaginons que mon compteur, dans mon code VBA, en soit à 6 alors la plage de cellule sera F1:F5. SI je dois à chaque appel de la macro associer une lettre à ce chiffre et concaténer, ça me semble un peu lourd.

Merci d'avance.

Edit : je précise que le compteur est le numéro de la colonne.

Bonjour,

Malheureusement, je ne suis pas sûr que tu puisse faire autrement que la concaténation de tes variables lignes et colonnes.

Pour une seule cellule, je sais que l'on peut faire un Cells(i,j) par exemple avec les deux variables mais pas avec une plage entière vu que les coordonnées de ta plage correspondent à 4 variables.

Et puis même si la concaténation est un peu "lourde" à faire comme tu le dis, dis-toi que tu n'est sensé faire ton code qu'une fois si tout va bien ^^

Enfin à voir, peut-être que quelqu'un s'y connaissant mieux aura une solution à te proposer.

Hey Zirak quel plaisir de te revoir ( ou relire ? ^^) ! Le côté lourdeur serait surtout pour l'ordinateur. Si je pouvais économiser 26 itération pour trouver a chaque fois la lettre associée à mon compteur... Peut être qu'une fonction similaire existe déjà ?

Edit : j'ai fait un tableau de caractère renvoyer selon la position, le caractère associé. Exemple : alphabet(3) donne D. Par contre je n'arrive pas à l'utiliser dans mon range.

Range(alphabet(j)&"16:"alphabet(j)&"19").Select

Le débogueur indique un manque de parenthèse...

Pourriez vous m'aider svp ?

Bonjour à tous,

Par exemple

cL étant la 1ère cellule vide de la ligne 5 (N° colonne en partant de la droite)

Sub test()
Dim cL%
    cL = Cells(5, Columns.Count).End(xlToLeft).Column + 1
    Range(Cells(1, cL), Cells(5, cL)).Select
End Sub

sinon, il faut plus de renseignements !

si c'est dans une boucle, envoie le fichier

Amicalement

Claude

Merci Claude,

EN effet on pense rarement a imbriquer les fonctions une dans les autres. Ça marche impec. Bonen continuation à vous tous.

Cordialement.

Une autre solution,

en admettant que ta variable compteur s'appelle "compt" :

Col = Application.WorksheetFunction.Substitute(Left(Cells(1, compt).Address, 2), "$", "")
Range("" & Col & "1:" & Col & "5").Select

Un poil plus compliquée ta solution Zirak, merci à toi.

Rechercher des sujets similaires à "plage colonne variable"