Problème de macro

Résolu
jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   -  
jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    comment est défini AD ?
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
  2. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    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
  3. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
  4. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    C'est pas vrai de lire des messages çà !!!!!

    décourageant...
    Bon WE

    0
  7. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    Merci pour toutes tes réponses.
    J'ai 70 ans et je ne suis pas là pour me faire engue...
    0
  8. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. JCB40 Messages postés 3058 Date d'inscription   Statut Membre Dernière intervention   479
       
      Bonjour eriiic
      me suis trompé de sujet
      Désolé
      0
  9. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    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
  10. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour Eric

    Pour JC80

    Tu vois, gamin, j'en ai 73 bien entamé comme quoi....
    0
  11. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  12. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  13. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  14. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    Bonjour eric
    Merci pour ta réponse je vais essayer de la mettre en place.
    Crdlt
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      c'est plus pour te donner l'occasion d'apprendre à te débloquer par toi même. Reviens si difficultés.
      eric
      0
  15. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    Bonsoir

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