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

Pouvoir utiliser une variable dans la définition d'une plage de ce

8 réponses
Avatar
Georges Ecko
Bonjour, une fois de plus,

J'aimerais pouvoir utiliser dans une macrocommande une variable pour définir
le nombre de ligne à sélectionner dans une plage de cellule !

Est-ce possible ? Si oui comment ?

Je ne trouve pas de solution.

Merci d'avance de votre aide

8 réponses

Avatar
LSteph
Bonjour Georges,

A priori pas besoin de variable:

[a1:c10].select

cela sélectionne 10 lignes dans la plage A:C

..ou bien plus de précisions sur ta macro et le contexte.

A+

lSteph


"Georges Ecko" a écrit dans le
message de news:
Bonjour, une fois de plus,

J'aimerais pouvoir utiliser dans une macrocommande une variable pour
définir
le nombre de ligne à sélectionner dans une plage de cellule !

Est-ce possible ? Si oui comment ?

Je ne trouve pas de solution.

Merci d'avance de votre aide


Avatar
Georges Ecko
Bonjour LSteph,

Merci de la réponse, mais voici un peu plus d'explications :

J'aimerais que l'utilisateur puisse indiquer par un MessageBox le nombre de
ligne qu'il désire inclure dans la zone d'impression. Et depuis là opérer
automatiquement la sélection de la zone le calcul des sauts de pages et
l'ajustement à la largeur de la page.

En espérant qu'il y a une solution à cela

A+

Bonjour Georges,

A priori pas besoin de variable:

[a1:c10].select

cela sélectionne 10 lignes dans la plage A:C

...ou bien plus de précisions sur ta macro et le contexte.

A+

lSteph


"Georges Ecko" a écrit dans le
message de news:
Bonjour, une fois de plus,

J'aimerais pouvoir utiliser dans une macrocommande une variable pour
définir
le nombre de ligne à sélectionner dans une plage de cellule !

Est-ce possible ? Si oui comment ?

Je ne trouve pas de solution.

Merci d'avance de votre aide







Avatar
LSteph
Re,

Ah!alors un truc du genre:

Sub mtest()
Dim mavar
'...ici tes autres variables
On Error Resume Next

Do
mavar = Int(InputBox("Combien de lignes voulez-vous?"))
Loop While Not ((Val(mavar)) > 0 And Val(mavar) < 65537)
On Error GoTo 0
'... ici ta macro
End Sub


lSteph


"Georges Ecko" a écrit dans le
message de news:
Bonjour LSteph,

Merci de la réponse, mais voici un peu plus d'explications :

J'aimerais que l'utilisateur puisse indiquer par un MessageBox le nombre
de
ligne qu'il désire inclure dans la zone d'impression. Et depuis là opérer
automatiquement la sélection de la zone le calcul des sauts de pages et
l'ajustement à la largeur de la page.

En espérant qu'il y a une solution à cela

A+

Bonjour Georges,

A priori pas besoin de variable:

[a1:c10].select

cela sélectionne 10 lignes dans la plage A:C

...ou bien plus de précisions sur ta macro et le contexte.

A+

lSteph


"Georges Ecko" a écrit dans le
message de news:
Bonjour, une fois de plus,

J'aimerais pouvoir utiliser dans une macrocommande une variable pour
définir
le nombre de ligne à sélectionner dans une plage de cellule !

Est-ce possible ? Si oui comment ?

Je ne trouve pas de solution.

Merci d'avance de votre aide









Avatar
Georges Ecko
Re-bonjour LSteph,

La solution ne fonctionne pas correctement et je crains qu'il n'y ait une
petite incompréhension !

Voici ce que j'aimerais obtenir :

Sub DefZonP1

Dim NombreLigne As Integer
On Error Resume Next
'
'Ceci est votre proposition
Do
'Ceci est mon code
NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4
'Ceci est votre proposition
Loop While Not ((Val(NombreLigne) > 0) And (Val(NombreLigne) < 65537))
'Ceci est votre proposition
On Error GoTo 0
'Ceci est mon code, j'aimerais placer la valeur de ma variable ici
Range("A1:EQNombreLigne").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$EQ$NombreLigne"
....
End Sub


Est-ce possible ?

Une fois encore merci de votre aide



Re,

Ah!alors un truc du genre:

Sub mtest()
Dim mavar
'...ici tes autres variables
On Error Resume Next

Do
mavar = Int(InputBox("Combien de lignes voulez-vous?"))
Loop While Not ((Val(mavar)) > 0 And Val(mavar) < 65537)
On Error GoTo 0
'... ici ta macro
End Sub


lSteph


Avatar
LSteph
Re,
mets msgbox mavar à la fin et tu verra que le nombre saisi a bien été
stocké dans mavar
Que cela ne corresponde pas à la façon dont tu y intercale ton code d'accord
mais tel que !...cela me semble fonctionner! Ou précises ?

'****
Sub mtest()
Dim mavar
'...ici tes autres variables
On Error Resume Next

Do
mavar = Int(InputBox("Combien de lignes voulez-vous?"))
Loop While Not ((Val(mavar)) > 0 And Val(mavar) < 65537)
On Error GoTo 0
MsgBox mavar
End Sub
'***

Alors selon ce que je comprend de ce que tu proposes
si c'est un nombre d'élèves integer suffira pour nbl et on simplifie:

'****
Sub DefZonP1()
Dim Nbl As Integer

On Error Resume Next

Do
Nbl = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4
Loop While Not ((Val(Nbl)) > 0)
On Error GoTo 0
ActiveSheet.PageSetup.PrintArea = "$A$1:$EQ$" & CStr(Nbl)
End Sub
'***

'Cordialement

'lSteph


"Georges Ecko" a écrit dans le
message de news:
Re-bonjour LSteph,

La solution ne fonctionne pas correctement et je crains qu'il n'y ait une
petite incompréhension !

Voici ce que j'aimerais obtenir :

Sub DefZonP1

Dim NombreLigne As Integer
On Error Resume Next
'
'Ceci est votre proposition
Do
'Ceci est mon code
NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2
+ 4
'Ceci est votre proposition
Loop While Not ((Val(NombreLigne) > 0) And (Val(NombreLigne) < 65537))
'Ceci est votre proposition
On Error GoTo 0
'Ceci est mon code, j'aimerais placer la valeur de ma variable ici
Range("A1:EQNombreLigne").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$EQ$NombreLigne"
....
End Sub


Est-ce possible ?

Une fois encore merci de votre aide



Re,

Ah!alors un truc du genre:

Sub mtest()
Dim mavar
'...ici tes autres variables
On Error Resume Next

Do
mavar = Int(InputBox("Combien de lignes voulez-vous?"))
Loop While Not ((Val(mavar)) > 0 And Val(mavar) < 65537)
On Error GoTo 0
'... ici ta macro
End Sub


lSteph





Avatar
Ange Ounis
'Ceci est mon code, j'aimerais placer la valeur de ma variable ici
Range("A1:EQNombreLigne").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$EQ$NombreLigne"


A la simple lecture de ton code, la syntaxe devrait plutôt être :

Range("A1:EQ" & NombreLigne).Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$EQ$" & NombreLigne

Par ailleurs, sauf contrainte qui m'échappe, la ligne

Range("A1:EQ" & NombreLigne).Select

n'est pas utile pour définir la zone d'impression. Ou alors il faudrait écrire :

Range("A1:EQ" & NombreLigne).Select
ActiveSheet.PageSetup.PrintArea = Selection.Address

C'étaient mes deux centimes en passant :)

----------
Ange Ounis
----------

Re-bonjour LSteph,

La solution ne fonctionne pas correctement et je crains qu'il n'y ait une
petite incompréhension !

Voici ce que j'aimerais obtenir :

Sub DefZonP1

Dim NombreLigne As Integer
On Error Resume Next
'
'Ceci est votre proposition
Do
'Ceci est mon code
NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4
'Ceci est votre proposition
Loop While Not ((Val(NombreLigne) > 0) And (Val(NombreLigne) < 65537))
'Ceci est votre proposition
On Error GoTo 0
'Ceci est mon code, j'aimerais placer la valeur de ma variable ici
Range("A1:EQNombreLigne").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$EQ$NombreLigne"
.....
End Sub


Est-ce possible ?

Une fois encore merci de votre aide




Re,

Ah!alors un truc du genre:

Sub mtest()
Dim mavar
'...ici tes autres variables
On Error Resume Next

Do
mavar = Int(InputBox("Combien de lignes voulez-vous?"))
Loop While Not ((Val(mavar)) > 0 And Val(mavar) < 65537)
On Error GoTo 0
'... ici ta macro
End Sub


lSteph






Avatar
Ange Ounis
Encore une remarque :

Dim NombreLigne As Integer


va poser problème si la variable peut avoir une valeur supérieure à 32767
(limite du type Integer). Il vaut mieux déclarer les variables qui concernent
des lignes en Long pour éviter des erreurs qqfois difficiles à déboguer.

----------
Ange Ounis
----------

Re-bonjour LSteph,

La solution ne fonctionne pas correctement et je crains qu'il n'y ait une
petite incompréhension !

Voici ce que j'aimerais obtenir :

Sub DefZonP1

Dim NombreLigne As Integer
On Error Resume Next
'
'Ceci est votre proposition
Do
'Ceci est mon code
NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4
'Ceci est votre proposition
Loop While Not ((Val(NombreLigne) > 0) And (Val(NombreLigne) < 65537))
'Ceci est votre proposition
On Error GoTo 0
'Ceci est mon code, j'aimerais placer la valeur de ma variable ici
Range("A1:EQNombreLigne").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$EQ$NombreLigne"
.....
End Sub


Est-ce possible ?

Une fois encore merci de votre aide




Re,

Ah!alors un truc du genre:

Sub mtest()
Dim mavar
'...ici tes autres variables
On Error Resume Next

Do
mavar = Int(InputBox("Combien de lignes voulez-vous?"))
Loop While Not ((Val(mavar)) > 0 And Val(mavar) < 65537)
On Error GoTo 0
'... ici ta macro
End Sub


lSteph






Avatar
Georges Ecko
Bonjour LSteph, bonjour Ange Ounis,

Merci beaucoup à vous deux

Cela répond parfaitement à mon besoin

Bien cordialement