OVH Cloud OVH Cloud

Comment définir un range à l'aide de code VBA ?

4 réponses
Avatar
Tintin92
Bonjour,

Stock NouveauPrix
5 41
4 42
12 43
10 39
8 38
4 37


"Stock" est en "A1"
Je souhaiterai en VBA d=E9finir un range avec du code de ce genre.

Private Sub CommandButton1_Click()
Dim rangeStockPrix As Range
Set rangeStockPrix =3D Range([A1], [B1].End)
rangeStockPrix.Select
End Sub

Mais =E0 l'execution j'ai une erreur.

Merci

Tintin92

4 réponses

Avatar
Michel Gaboly
Bonsoir,

Sub qsd()
Set rangeStockPrix = Range(Range("A1"), Range("B1").End(xlDown))
End Sub

Les crochets que tu utilises, sont un raccourci, - que personnellement je ne ne trouve pas pratique - pour Evaluate.
Le résultat n'et pas une plage mais une valeur.

D'autre part, il faut fournir un argument à End pour indiquer une direc tion.

Bonjour,

Stock NouveauPrix
5 41
4 42
12 43
10 39
8 38
4 37


"Stock" est en "A1"
Je souhaiterai en VBA définir un range avec du code de ce genre.

Private Sub CommandButton1_Click()
Dim rangeStockPrix As Range
Set rangeStockPrix = Range([A1], [B1].End)
rangeStockPrix.Select
End Sub

Mais à l'execution j'ai une erreur.

Merci

Tintin92




--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Elliac
Bonjour,

Private Sub CommandButton1_Click()
Dim rangeStockPrix As Range
Set rangeStockPrix = Range("A1").CurrentRegion
rangeStockPrix.Select
End Sub

Camille

"Tintin92" wrote:

Bonjour,

Stock NouveauPrix
5 41
4 42
12 43
10 39
8 38
4 37


"Stock" est en "A1"
Je souhaiterai en VBA définir un range avec du code de ce genre.

Private Sub CommandButton1_Click()
Dim rangeStockPrix As Range
Set rangeStockPrix = Range([A1], [B1].End)
rangeStockPrix.Select
End Sub

Mais à l'execution j'ai une erreur.

Merci

Tintin92




Avatar
Tintin92
Merci à Camille et Michel.

Tintin92
Avatar
michdenis
Bonjour Tintin92,

Quand tu travailles avec des objets "Range",
il est préférable d'être plus précis dans l'affectation
de la plage de la cellule à la variable "objet" en
référençant le nombre de la feuille à laquelle
appartient l'objet....Ceci permettra au code
de bien fonctionner indépendamment de la feuillle
active au moment de lancer la macro, et t'évitera
le cas échéant d'avoir recours à la méthode "Select"
qui elle ralentit considérablement la vitesse s'exécution.

Si ta macro est déclenchée par un bouton dans ta
feuille (pas formulaire) ce n'est pas nécessaire si
tu fais référence à une plage locale appartenant à la feuille.

'-------------------------
Private Sub CommandButton1_Click()
Dim rangeStockPrix As Range

With Worksheets("Feuil1") ' Ou utiliser le codename de la feuille
Set rangeStockPrix = .Range("A1:B" & .range("A65536").end(xlup).row)
End With

End Sub
'-------------------------


Salutations!


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

Stock NouveauPrix
5 41
4 42
12 43
10 39
8 38
4 37


"Stock" est en "A1"
Je souhaiterai en VBA définir un range avec du code de ce genre.

Private Sub CommandButton1_Click()
Dim rangeStockPrix As Range
Set rangeStockPrix = Range([A1], [B1].End)
rangeStockPrix.Select
End Sub

Mais à l'execution j'ai une erreur.

Merci

Tintin92