Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb syntaxe en VBA

7 réponses
Avatar
Pat
Bonjour,
J'ai besoin de déclarer 12 plages différentes dans une feuille de calcul,
je connais un n° de colonne par la variable numcol =45 par exemple
Ceci correspond à la notation "AS" en LC
Mais quand je veux déclarer une plage : set maplage as range ("AS10:AS20")
sachant que je ne possède que numcol, je suis incapable de l'écrire
Existe-t il une méthode autre ? Ou bien comment transformer numcol en "AS" ?
Le pb c'est que numcol est variable donc d'une feuille à l'autre je doit
rechercher la dernière colonne utilisée sans jamais connaitre la notation en
LC
Merci pour votre aide

7 réponses

Avatar
Daniel.C
Bonjour.
Utilise Cells :

Set maplage = Range(Cells(10, 45), Cells(20, 45))

Cordialement.
Daniel

Bonjour,
J'ai besoin de déclarer 12 plages différentes dans une feuille de calcul,
je connais un n° de colonne par la variable numcol E par exemple
Ceci correspond à la notation "AS" en LC
Mais quand je veux déclarer une plage : set maplage as range ("AS10:AS20")
sachant que je ne possède que numcol, je suis incapable de l'écrire
Existe-t il une méthode autre ? Ou bien comment transformer numcol en "AS" ?
Le pb c'est que numcol est variable donc d'une feuille à l'autre je doit
rechercher la dernière colonne utilisée sans jamais connaitre la notation en
LC
Merci pour votre aide


Avatar
Philippe.R
Bonjour,
set maplage as range (cells(10,numcol),cells(20,numcol))
devrait pouvoir convenir
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Pat" a écrit dans le message de
news:%
Bonjour,
J'ai besoin de déclarer 12 plages différentes dans une feuille de calcul,
je connais un n° de colonne par la variable numcol E par exemple
Ceci correspond à la notation "AS" en LC
Mais quand je veux déclarer une plage : set maplage as range ("AS10:AS20")
sachant que je ne possède que numcol, je suis incapable de l'écrire
Existe-t il une méthode autre ? Ou bien comment transformer numcol en "AS"
?
Le pb c'est que numcol est variable donc d'une feuille à l'autre je doit
rechercher la dernière colonne utilisée sans jamais connaitre la notation
en LC
Merci pour votre aide



Avatar
michdenis
Juste pour te donner une idée quant à la manière de définir une plage de
cellules...
Et il y a sûrement d'autres variantes selon les besoins de la situation.

'------------------------------
Sub test()

Dim Ligne As Long, Colonne As Integer
Ligne = 5
Colonne = 8

Range("A1", Cells(Ligne, Colonne)).Select

Range("A" & Ligne, Cells(Ligne, "G")).Select

Range(Cells(2, 2), Range("F" & Ligne)).Select

Range(Cells(2, "B"), Cells(5, "D")).Select

Range("A1").Resize(Ligne, Colonne).Select

Range(Range("A1")(2, 3), Range("A1")(Ligne, Colonne)).Select

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



"Pat" a écrit dans le message de news:
%
Bonjour,
J'ai besoin de déclarer 12 plages différentes dans une feuille de calcul,
je connais un n° de colonne par la variable numcol E par exemple
Ceci correspond à la notation "AS" en LC
Mais quand je veux déclarer une plage : set maplage as range ("AS10:AS20")
sachant que je ne possède que numcol, je suis incapable de l'écrire
Existe-t il une méthode autre ? Ou bien comment transformer numcol en "AS" ?
Le pb c'est que numcol est variable donc d'une feuille à l'autre je doit
rechercher la dernière colonne utilisée sans jamais connaitre la notation en
LC
Merci pour votre aide
Avatar
Michel Angelosanto
si ta colonne est toujours la dernière:
colonne = Range(Cells(1, 32000)).End(xlToLeft).column
Set maplage = Range(Cells(10, colonne), Cells(20, colonne))

"Pat" a écrit dans le message de
news:%
Bonjour,
J'ai besoin de déclarer 12 plages différentes dans une feuille de calcul,
je connais un n° de colonne par la variable numcol E par exemple
Ceci correspond à la notation "AS" en LC
Mais quand je veux déclarer une plage : set maplage as range ("AS10:AS20")
sachant que je ne possède que numcol, je suis incapable de l'écrire
Existe-t il une méthode autre ? Ou bien comment transformer numcol en "AS"
?
Le pb c'est que numcol est variable donc d'une feuille à l'autre je doit
rechercher la dernière colonne utilisée sans jamais connaitre la notation
en LC
Merci pour votre aide




--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/
Avatar
Pat
Je vous remercie pour toutes ces infos.
La solution que j'ai retenu est celle-ci :
Set maplage = Range(Cells(10, colfin), Cells(20, colfin))
malgré un autre pb que j'ai résolu car en effet je sélectionne cette plage
dans un onglet l'onglet "Données1"
Au début du premier Sub, on trouve :

Set dd = Sheets("Données1")

ensuite j'utiliser :
Set maplage = dd.Range(Cells(10, colfin), Cells(20, colfin))
Mais là ça ne marche plus, il y a le message "erreur générée par
l'application" dès l'entrée dans le Sub (sur son titre) malgré que les
déclarations soient en "Public...."

Pour résoudre le pb j'ai écris :

Worksheets("Données1").Activate
Set maplage = Range(Cells(10, colfin), Cells(20, colfin))

mais plus dd.Range(.......
Avatar
Daniel.C
Bonjour.
Tu peux écrire :
Set maplage = Range(dd.Cells(10, colfin), dd.Cells(20, colfin))
ou :
With Worksheets("Données1")
Set maplage = Range(.Cells(10, colfin), .Cells(20, colfin))
End With
Daniel

Set maplage = dd.Range(Cells(10, colfin), Cells(20, colfin))


Avatar
Pat
Bonsoir,
Merci je vais tester Set maplage = Range(dd.Cells(10, colfin), dd.Cells(20,
colfin))
elle me plait bien celle là :o))


"Daniel.C" a écrit dans le message de news:

Bonjour.
Tu peux écrire :
Set maplage = Range(dd.Cells(10, colfin), dd.Cells(20, colfin))
ou :
With Worksheets("Données1")
Set maplage = Range(.Cells(10, colfin), .Cells(20, colfin))
End With
Daniel

Set maplage = dd.Range(Cells(10, colfin), Cells(20, colfin))