OVH Cloud OVH Cloud

Variable dans VBA pose problème pour imprimer

4 réponses
Avatar
pierro
Bonjour,

J'aimerais avoir votre aide sur mon probl=E8me de VBA.=20
Quand j'utilise ce code, Excel me lance une erreur sur=20
cette ligne ci-dessous:

.PageSetup.PrintArea =3D Sh.Range("A1" & ":" & Adresse)

Je r=E9cup=E9re dans cette variable, ceci $E$93 mais le fais=20
de faire A1:=A3E$93 ne fonctionne pas, est il possible de=20
transformer $E$93 en E93?.


Voici mon code

Sub Imprimer()
Dim iColumn As Integer
Dim iMaxCol As Integer
Dim Adresse As Variant
Dim Sh As Worksheet

Set Sh =3D Worksheets("Les Modules")

iColumn =3D 4
iMaxCol =3D Range("IV10").Column
Do Until iColumn > iMaxCol
If Cells(10, iColumn).Value <> "" Then
Adresse =3D Cells(93, iColumn).Address
End If
=20
iColumn =3D iColumn + 1
=20
Loop

Adresse =3D Adresse

With Sh
.PageSetup.PrintArea =3D Sh.Range("A1" & ":" & Adresse)
.PageSetup.Orientation =3D xlLandscape
.PageSetup.PrintTitleRows =3D 8
.PageSetup.Zoom =3D 80
'.PrintOut Copies:=3D1, Collate:=3DTrue
End With

End Sub

Pierro

4 réponses

Avatar
ru-th
Salut

non testé
regardes avec
Adresse = Cells(93, iColumn)..AddressLocal(0, 0)

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"pierro" a écrit dans le message de news:
052401c38dd3$7fe44cb0$
Bonjour,

J'aimerais avoir votre aide sur mon problème de VBA.
Quand j'utilise ce code, Excel me lance une erreur sur
cette ligne ci-dessous:

.PageSetup.PrintArea = Sh.Range("A1" & ":" & Adresse)

Je récupére dans cette variable, ceci $E$93 mais le fais
de faire A1:£E$93 ne fonctionne pas, est il possible de
transformer $E$93 en E93?.


Voici mon code

Sub Imprimer()
Dim iColumn As Integer
Dim iMaxCol As Integer
Dim Adresse As Variant
Dim Sh As Worksheet

Set Sh = Worksheets("Les Modules")

iColumn = 4
iMaxCol = Range("IV10").Column
Do Until iColumn > iMaxCol
If Cells(10, iColumn).Value <> "" Then
Adresse = Cells(93, iColumn).Address
End If

iColumn = iColumn + 1

Loop

Adresse = Adresse

With Sh
.PageSetup.PrintArea = Sh.Range("A1" & ":" & Adresse)
.PageSetup.Orientation = xlLandscape
.PageSetup.PrintTitleRows = 8
.PageSetup.Zoom = 80
'.PrintOut Copies:=1, Collate:=True
End With

End Sub

Pierro
Avatar
Starwing
Essaie ça:

ActiveSheet.PageSetup.PrintArea = "$A$1:$E$93"

Starwing
-----Message d'origine-----
Bonjour,

J'aimerais avoir votre aide sur mon problème de VBA.
Quand j'utilise ce code, Excel me lance une erreur sur
cette ligne ci-dessous:

..PageSetup.PrintArea = Sh.Range("A1" & ":" & Adresse)

Je récupére dans cette variable, ceci $E$93 mais le fais
de faire A1:£E$93 ne fonctionne pas, est il possible de
transformer $E$93 en E93?.


Voici mon code

Sub Imprimer()
Dim iColumn As Integer
Dim iMaxCol As Integer
Dim Adresse As Variant
Dim Sh As Worksheet

Set Sh = Worksheets("Les Modules")

iColumn = 4
iMaxCol = Range("IV10").Column
Do Until iColumn > iMaxCol
If Cells(10, iColumn).Value <> "" Then
Adresse = Cells(93, iColumn).Address
End If

iColumn = iColumn + 1

Loop

Adresse = Adresse

With Sh
..PageSetup.PrintArea = Sh.Range("A1" & ":" & Adresse)
..PageSetup.Orientation = xlLandscape
..PageSetup.PrintTitleRows = 8
..PageSetup.Zoom = 80
'.PrintOut Copies:=1, Collate:=True
End With

End Sub

Pierro
.



Avatar
Bourby
Bonsoir,

tu remplaces .Adress par
.Address(rowabsolute:úlse, columnabsolute:úlse)
Est-ce que ça répond à ta question?

Bourby


"pierro" a écrit dans le message news:
052401c38dd3$7fe44cb0$
Bonjour,

J'aimerais avoir votre aide sur mon problème de VBA.
Quand j'utilise ce code, Excel me lance une erreur sur
cette ligne ci-dessous:

.PageSetup.PrintArea = Sh.Range("A1" & ":" & Adresse)

Je récupére dans cette variable, ceci $E$93 mais le fais
de faire A1:£E$93 ne fonctionne pas, est il possible de
transformer $E$93 en E93?.


Voici mon code

Sub Imprimer()
Dim iColumn As Integer
Dim iMaxCol As Integer
Dim Adresse As Variant
Dim Sh As Worksheet

Set Sh = Worksheets("Les Modules")

iColumn = 4
iMaxCol = Range("IV10").Column
Do Until iColumn > iMaxCol
If Cells(10, iColumn).Value <> "" Then
Adresse = Cells(93, iColumn).Address
End If

iColumn = iColumn + 1

Loop

Adresse = Adresse

With Sh
.PageSetup.PrintArea = Sh.Range("A1" & ":" & Adresse)
.PageSetup.Orientation = xlLandscape
.PageSetup.PrintTitleRows = 8
.PageSetup.Zoom = 80
'.PrintOut Copies:=1, Collate:=True
End With

End Sub

Pierro
Avatar
gee-dee-
Bonsoir,
A-
le mot adresse est un mot réservé de feuille de calcul
Syntaxe
ADRESSE(no_lig;no_col;no_abs;a1;feuille_texte)
'--------------------------------
B -
le mot Address est un mot réservé de fonction VBA
Cette propriété renvoie la référence de la plage dans le langage de la
macro. Propriété de type String en lecture
seule.expression.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle,
External, RelativeTo)
'--------------------------------


une solution selon le modéle proposé :
'quelque part dans la procédure concernée
UneAdresse = "$E$93"
../..
.PageSetup.PrintArea = Sh..Range("A1:" & UneAdresse).Address


@+





.



2
3 Ligne relative, colonne absolue
4 Relative