OVH Cloud OVH Cloud

Range

5 réponses
Avatar
Pat59
Bonjour,

J'aimerais passé passé une plage de cellules par une variable comme suit
mais ça ne marche pas. Comment faire?

Dim strRange As String
dim ligne as integer
'
Sheets("Éval.comp.").Select
' Range("B8:C8").Select
strRange = "B" & ligne & ":C" & ligne
Range(strRange).Select

Merci

Patrice

5 réponses

Avatar
papou
Re
Tu n'as pas besoin de "construire" ton adresse, tu peux directement faire :
Range("B" & ligne & ":C" & ligne)
Cordialement
Pascal

"Pat59" a écrit dans le message de
news:
Bonjour,

J'aimerais passé passé une plage de cellules par une variable comme suit
mais ça ne marche pas. Comment faire?

Dim strRange As String
dim ligne as integer
'
Sheets("Éval.comp.").Select
' Range("B8:C8").Select
strRange = "B" & ligne & ":C" & ligne
Range(strRange).Select

Merci

Patrice


Avatar
AV
Si ta variable "ligne" est initialisée (ce qui n'est pas le cas dans le code que
tu transmets), il n'y a pas de raison (visible) que ça ne fonctionne pas

PS : mieux vaut déclarer "ligne" as double car le type integer est limité à 32
767
AV
Avatar
papou
Pour compléter
Ceci étant ta syntaxe est correcte, mais si tu n'attribues pas une valeur à
la variable ligne tu vas avoir un problème ;-)
Cordialement
Pascal

"papou" a écrit dans le message de
news:
Re
Tu n'as pas besoin de "construire" ton adresse, tu peux directement faire
:

Range("B" & ligne & ":C" & ligne)
Cordialement
Pascal

"Pat59" a écrit dans le message de
news:
Bonjour,

J'aimerais passé passé une plage de cellules par une variable comme suit
mais ça ne marche pas. Comment faire?

Dim strRange As String
dim ligne as integer
'
Sheets("Éval.comp.").Select
' Range("B8:C8").Select
strRange = "B" & ligne & ":C" & ligne
Range(strRange).Select

Merci

Patrice






Avatar
Pat59
Merci à tous,

Il s'avère que losque je j'exécute la macro directement en passant le menu
d'Excel cela fonctionne.

Lorsque je fais exécuter la macro via ce code:

Select Case ComboBox1.Value
Case "Charbonneau, Sylvie"
Macro1

Sub Macro()
'
Sheets("Éval.comp.").Select
Range("B8:C8").Select

J'obtiens le message d'erreur suivant: La méthode select de la classe range
a échoué. Cela même sans utiliser de variable pour passer la plage de cellules



Si ta variable "ligne" est initialisée (ce qui n'est pas le cas dans le code que
tu transmets), il n'y a pas de raison (visible) que ça ne fonctionne pas

PS : mieux vaut déclarer "ligne" as double car le type integer est limité à 32
767
AV





Avatar
michdenis
Bonjour Pat

Modifie ta macro comme ceci :


'----------------------------
Sub Macro()
With Sheets("Éval.comp.")
.Select
.Range("B8:C8").Select
End with
'----------------------------

Si tu veux concerver la systaxe de ta macro intacte, place ta macro dans un module standard et non dans le module
feuille de ta feuille.


Salutations!


"Pat59" a écrit dans le message de
news:
Merci à tous,

Il s'avère que losque je j'exécute la macro directement en passant le menu
d'Excel cela fonctionne.

Lorsque je fais exécuter la macro via ce code:

Select Case ComboBox1.Value
Case "Charbonneau, Sylvie"
Macro1

Sub Macro()
'
Sheets("Éval.comp.").Select
Range("B8:C8").Select

J'obtiens le message d'erreur suivant: La méthode select de la classe range
a échoué. Cela même sans utiliser de variable pour passer la plage de cellules



Si ta variable "ligne" est initialisée (ce qui n'est pas le cas dans le code que
tu transmets), il n'y a pas de raison (visible) que ça ne fonctionne pas

PS : mieux vaut déclarer "ligne" as double car le type integer est limité à 32
767
AV