Problème de macro

Résolu/Fermé
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 - 22 févr. 2019 à 22:30
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 - 25 févr. 2019 à 18:44
Bonjour,
J'ai un problème avec cette macro que je n'arrive pas a mettre en place
Je souhaite imprimer un onglet de A1 à AD variable
Est-ce que vous pouvez me dire ce qui ne va pas?

Sub Impression1()
Range("A1:AD").CurrentRegion.Select
ActiveSheet.PageSetup.PrintArea = Range("A1").CurrentRegion.Address
ActiveWindow.SelectedSheets.PrintPreview
End Sub

Je vous remercie




Configuration: Windows / Firefox 65.0
A voir également:

14 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 févr. 2019 à 09:09
Bonjour

comment est défini AD ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 23 févr. 2019 à 10:15
il faut que tu définisse la hauteur de ton tableau
par ex:
Range("A1:AD45")

Pour déterminer la hauteur en se basant paer exemple sue la colonneA

Derlig=Colummns("A").find(what:="*",searchdirection:=xlprevious).row

et tu auras
range("A1:AD" & derlig)
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
23 févr. 2019 à 10:00
Bonjour michel
Merci pour ta réponse
Qu'entends-tu par défini AD ?
Ma plage commence en A1 jusque la colonne AD ,mais je ne peux pas mettre de cellule ,puisque la
longueur de la plage est variable.
Crdlt
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
23 févr. 2019 à 11:33
j'ai un bug sur la 3è ligne
Sub Impression1()
Range("A1:AD72").CurrentRegion.Select
Derlig = Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
ActiveSheet.PageSetup.PrintArea = Range("A1:AD&derligne").CurrentRegion.Address
ActiveWindow.SelectedSheets.PrintPreview
End Sub
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 23 févr. 2019 à 11:42
relis ce que je t'ai écris !!!!!!!

range("A1:AD" & derlig) et non Range("A1:AD&derligne")

et pourquoi
Range("A1:AD72").CurrentRegion.Select

si tu connais la dernier ligne ALORS pourquoi programmer derlig ?....
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
23 févr. 2019 à 12:03
Toujours un bug ligne3

Sub Impression1()
Range("A1:AD72").CurrentRegion.Select
DerLig = Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
ActiveSheet.PageSetup.PrintArea = Range("A1:AD" & DerLig)
ActiveWindow.SelectedSheets.PrintPreview
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 23 févr. 2019 à 16:15
C'est pas vrai de lire des messages çà !!!!!

décourageant...
Bon WE

0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
23 févr. 2019 à 16:28
Merci pour toutes tes réponses.
J'ai 70 ans et je ne suis pas là pour me faire engue...
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
23 févr. 2019 à 16:36
Bonjour à tous,

au plus simple :
Sub Impression1()
    ActiveSheet.PageSetup.PrintArea = Intersect(Range("A1").CurrentRegion, Range("A:AD")).Address
    ActiveWindow.SelectedSheets.PrintPreview
End Sub

eric

0
JCB40 Messages postés 2878 Date d'inscription lundi 2 juillet 2018 Statut Membre Dernière intervention 20 avril 2024 461
Modifié le 23 févr. 2019 à 16:49
Bonjour eriiic
me suis trompé de sujet
Désolé
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
23 févr. 2019 à 16:54
Bonjour eric
Merci pour ta réponse.
Mes boutons sont sur une feuille autre que les feuilles à imprimer
exemple bouton1 feuille "ouvrir" feuille a imprimer "poste"
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
24 févr. 2019 à 09:08
Bonjour Eric

Pour JC80

Tu vois, gamin, j'en ai 73 bien entamé comme quoi....
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
24 févr. 2019 à 09:20
Bonjour, salut Michel,

tiens, j'ai dû oublier de valider la modif hier... La voici :
Sub Impression1()
    With Sheets("poste")
        .PageSetup.PrintArea = Intersect(.Range("A1").CurrentRegion, .Range("A:AD")).Address
        .PrintPreview
    End With
End Sub

eric

0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
24 févr. 2019 à 11:17
Bonjour eric

Cela ne fonctionne toujours pas je te mets un exemple
sur l'aperçu avant impression il n'y a qu'une cellule qui apparait A1
https://mon-partage.fr/f/RoHA0x81/
Si tu peux faire quelque chose cela m'arrangerait bien
Merci pour ton aide
Crdlt
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
24 févr. 2019 à 11:46
Bien évidemment que ça ne fonctionne pas. Je me suis basé sur ce que tu avais écrit : Range("A1").CurrentRegion
Hors A1 est isolée, et tes saisies dispersées aussi...
Sub Impression1()
    With Sheets("poste")
        .PageSetup.PrintArea = .Range("A1:AD1").Resize(Sheets("poste").Cells.Find("*", , , , xlByRows, xlPrevious).Row).Address
        .PrintPreview
    End With
End Sub

Toujours déposer un modèle exact si on ne sait pas adapter.
eric
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
Modifié le 24 févr. 2019 à 18:55
Bonsoir eric

Ok pour la formule que tu m'as donné je l'ai modifié comme suit en gras et cela ne fonctionne pas J'aimerais avoir le moins de page possible. Pourquoi?
Sub Impression1()
With Sheets("poste")
.PageSetup.PrintArea = .Range("A1:AD1").Resize(Sheets("poste").Cells.Find("*", , , , xlByRows, xlPrevious).Row).Address
.PrintPreview
End With
Orientation=xlLandscape
Zoom=80
End Sub

Crdlt
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
24 févr. 2019 à 23:21
Bonjour,

met-toi en enregistrement de macro, fait tes 2 actions et arrête l'enregistrement.
Tu auras l'essentiel des méthodes, propriétés et paramètres que tu as besoin, et même beaucoup plus. Trop...
Recherche les 2 propriétés qui t'intéressent. Plus qu'à les insérer correctement dans le With. Fait F1 dessus pour comprendre son fonctionnement, regarde comment la macro l'a utilisé et ce que je t'ai mis comme code.
eric
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
25 févr. 2019 à 14:02
Bonjour eric
Merci pour ta réponse je vais essayer de la mettre en place.
Crdlt
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
25 févr. 2019 à 16:07
Bonjour,

c'est plus pour te donner l'occasion d'apprendre à te débloquer par toi même. Reviens si difficultés.
eric
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
25 févr. 2019 à 18:44
Bonsoir

Merci pour tes conseils je suis parvenu à faire à peu près ce que je voulais.
Bonne continuation.
Cordialement
0