Problème de macro [Résolu]

Signaler
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
-
jc80
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
-
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

14 réponses

Messages postés
16042
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 janvier 2020
2 854
Bonjour

comment est défini AD ?
michel_m
Messages postés
16042
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 janvier 2020
2 854
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)
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 101
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
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 101
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
michel_m
Messages postés
16042
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 janvier 2020
2 854
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 ?....
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 101
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
Messages postés
16042
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 janvier 2020
2 854
C'est pas vrai de lire des messages çà !!!!!

décourageant...
Bon WE

Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 101
Merci pour toutes tes réponses.
J'ai 70 ans et je ne suis pas là pour me faire engue...
Messages postés
23224
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 janvier 2020
5 874
Bonjour à tous,

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

eric

JCB40
Messages postés
1608
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
23 janvier 2020
221
Bonjour eriiic
me suis trompé de sujet
Désolé
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 101
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"
Messages postés
16042
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 janvier 2020
2 854
Bonjour Eric

Pour JC80

Tu vois, gamin, j'en ai 73 bien entamé comme quoi....
Messages postés
23224
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 janvier 2020
5 874
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

Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 101
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
eriiic
Messages postés
23224
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 janvier 2020
5 874
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
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 101
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
eriiic
Messages postés
23224
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 janvier 2020
5 874
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
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 101
Bonjour eric
Merci pour ta réponse je vais essayer de la mettre en place.
Crdlt
eriiic
Messages postés
23224
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 janvier 2020
5 874
Bonjour,

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

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