Selection plages cellules

Bonjour,

pourriez-vous me donner la syntaxe exacte pour sélectionner une plage de cellluless avec des variables.

J'ai les variables :
X pour la ligne
Y pur la première colonne
Z pour la dernière colonne

Qu'elle est la syntaxe pour faire

Range(yx:zx).select.

D'avance merci

Bonne journée

Bien amicalement

Bonjour Novice38,

Range(Cells(X, Y), Cells(X, Z)).Select

Nota : quand on utilise Cells() pour désigner une cellule :

  • X est obligatoirement un nombre (n° de ligne)
  • Y (ou Z) peut être soit un nombre (n° de colonne) soit un en-tête de colonne (lettres ex: "AB")

Exemple :

Sub test()
Dim X, Y, Z
   X = 3          ' 3ème ligne
   Y = "c"        ' depuis la colonne C
   Z = 8          ' jusqu'à la colonne 8 (c'est à dire la colonne H)
   Range(Cells(X, Y), Cells(X, Z)).Select
End Sub

Bonjour mafraise,

super, merci beaucoup.

Bonne journée

Bien amicalement

D'accord avec mafraise.

Un point supplémentaire pour info. Si tu ne précises pas le nom de la feuille devant Range(Cells(X, Y), Cells(X, Z)).Select alors c'est sur la feuille active que les références précisées sont sélectionnées.

Si tu veux sélectionner des cellules sur une autre feuille que celle active (ou même sur la feuille active) pense à mettre le nom de la feuille voulue devant

Sheets("nom_de_la_feuille_voulue").Range(Cells(X, Y), Cells(X, Z)).Select

(et même le classeur pour être plus complet car tu peux avoir ouvert plusieurs classeurs).

ThisWorkbook.Sheets("nom_de_la_feuille_voulue").Range(Cells(X, Y), Cells(X, Z)).Select

Encore une fois il s'agit uniquement d'informations supplémentaires et surtout d'habitudes à avoir pour l'ensemble de tes devs. Pas de critiquer hein.

Bonjour,

un complément ?
vous avez également Resize, on part d'une cellule (en général) et on demande d'agrandir la plage en fonction de ce que l'on veut, donc si ligne = 3, première colonne =3, dernière colonne = 8 alors on a à partir de la cellule C3 :

Sub LRD()
    Dim x, y, z
    x = 3: y = 3: z = 8
    ActiveSheet.Cells(x, y).Resize(, z - y + 1).Select
End Sub

Le resize attend deux paramètres : le nombre de ligne qu'il faut agrandir la "plage" (ici la cellule), le deuxième le nombre de colonne. donc dans le code le premier paramètre est absent car on ne touche pas à la taille de la cellule de départ, on reste sur une ligne, par contre le nombre de colonne d'agrandissement correspond à la colonne 8 - la colonne 3 + 1.

Si la cellule de départ ou plutôt la plage comprend plusieurs cellules alors l'agrandissement se fait sur ces cellules, par exemple :

Sub LRD()
    Dim x, y, z
    x = 3: y = 3: z = 8
    ActiveSheet.Range("C" & x & ":C" & x + 2).Resize(, z - y + 1).Select
End Sub

La plage de départ c3:c5 se transforme en C3:H5

@ bientôt

LouReeD

Bonjour LouReed , Alex020181,

merci pour ces compléments, je vais pouvoir enrichir ma base de données.
Un grand merci pour votre réactivité.
Bonne journée.
Bien amicalement

Re,

Attention à l'emploi de SELECT.

SELECT ne s'applique qu'à la feuille active.

Si vous désirez sélectionner une plage sur une autre feuille (cible) que la feuille active :

  • soit vous sélectionnez d'abord la feuille cible puis ensuite vous sélectionnez la plage désirée.
  • sinon vous pouvez utiliser GOTO qui fait les deux en même temps (sélection de la feuille cible puis sélection de la plage)
' on désire sélectionner une plage sur autre feuille que la feuille active

Sub test1()    ' ne fonctionne pas
   x = 2: y = 2: Z = "F"
   Sheets("Feuil1").Select    ' Feuil1 est la feuille active
   Sheets("Feuil2").Range(Cells(x, y), Cells(x, Z)).Select     ' => Erreur
End Sub

Sub test2()    ' fonctionne
   x = 2: y = 2: Z = "F"
   Sheets("Feuil1").Select    ' Feuil1 est la feuille active
   Sheets("Feuil2").Select                ' Feuil2 est devenue la feuille active
   Range(Cells(x, y), Cells(x, Z)).Select 'OK
End Sub

Sub test3()    ' fonctionne
   x = 2: y = 2: Z = "F"
   Sheets("Feuil1").Select    ' Feuil1 est la feuille active
   Application.Goto Range(Sheets("Feuil2").Cells(x, y), Sheets("Feuil2").Cells(x, Z))  'OK
End Sub

Re Bonjour,

merci pour ces précisions, je maitrise un peu les sélections de fichier et feuille;
Je butais sur la syntaxe exacte de sélection de plage de cellules avec les variables.
Encore merci
Bonne fin de journée
Bien amicalement

Merci pour votre retour !

@ bientôt

LouReeD

Rechercher des sujets similaires à "selection plages"