1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

XL 2010 Champ d'impression L1C1 selon contenu de cellules

Discussion dans 'Forum Excel' démarrée par vadelacaisse, 14 Novembre 2017.

  1. vadelacaisse

    vadelacaisse XLDnaute Nouveau

    Inscrit depuis le :
    21 Novembre 2011
    Messages :
    32
    "J'aime" reçus :
    1
    Bonjour

    Je cherche à imprimer un champ variable de la feuille "Plan" de 500 lignes, 400 colonnes à terme
    Je sais déterminer les N° de lignes et colonnes extrêmes (feuille "Données", sur fond jaune)

    J'ai tâtonné pour écrire la macro de ce fichier
    L'adresse du champ doit être au format L1C1, en récupérant les quatre N° calculés

    Le débogage m'indique une erreur 13 au deuxième ou troisième "Dim"...

    Je me perfectionne avec ce que j'ai appris ci mais là, je sèche...

    merci de votre aide !
     

    Pièces jointes:

    • Test.xlsm
      Taille du fichier:
      33.8 Ko
      Affichages:
      4
  2. kingfadhel

    kingfadhel XLDnaute Occasionnel

    Inscrit depuis le :
    13 Mai 2010
    Messages :
    350
    "J'aime" reçus :
    19
    Sexe :
    Masculin
    Habite à:
    Tunis
    Utilise:
    Excel 2016 (PC)
    Bonsoir, Tu remplace ton code par celui-ci.
    Code (Text):


    Sub Impression_Selective()
        Application.PrintCommunication = False
        With ActiveSheet.PageSetup
            .PrintTitleRows = "$1:$6"
            .PrintTitleColumns = "$A:$O"
        End With
        Application.PrintCommunication = True
        C1 = Range("LigneH").Value
        C2 = Range("LigneB").Value
        C3 = Range("ColoG").Value
        C4 = Range("ColoD").Value
    Range(Cells(C1, C4), Cells(C2, C3)).Select
    Selection.PrintOut Copies:=1, Collate:=True
    End Sub

     
     

    Pièces jointes:

    • Test.xlsm
      Taille du fichier:
      32.4 Ko
      Affichages:
      5
    vadelacaisse aime votre message.
  3. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    23263
    "J'aime" reçus :
    1735
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Bonsoir vadelacaisse, salut kingfadhel,

    Votre macro annotée à placer dans un module standard (Module1), pas dans une feuille :
    Code (Text):
    Sub Macro1()
        Sheets("Données").Activate
        'Application.ReferenceStyle = xlA1 'ça ne sert à rien
     
        Dim collG As Long
        collG = Range("R4")
        Dim collD As Long
        collD = Range("R5")
        Dim lignH As Long
        lignH = Range("P4")
        Dim lignB As Long
        lignB = Range("P5")
     
        Sheets("Plan").Activate
        'Application.ReferenceStyle = xlR1C1 'ça ne sert à rien
        'Range(1, 1).Select 'ça ne sert à rien et la syntaxe est erronée
        'Range(lignH, collG).Select 'ça ne sert à rien et la syntaxe est erronée
         
        With ActiveSheet.PageSetup
        .PrintTitleRows = "$1:$6"
        '.PrintTitleColumns = "$8:$15" 'erroné
        .PrintTitleColumns = "$H:$O" 'ça c'est bon
        .Orientation = xlLandscape
        End With
        ActiveSheet.PageSetup.PrintArea = Range(Cells(lignH, collG), Cells(lignB, collD)).Address
        ActiveWindow.SelectedSheets.PrintOut
        'Application.ReferenceStyle = xlA1 'ça ne sert à rien
    End Sub
    A+
     
    vadelacaisse et kingfadhel aiment cela.
  4. vadelacaisse

    vadelacaisse XLDnaute Nouveau

    Inscrit depuis le :
    21 Novembre 2011
    Messages :
    32
    "J'aime" reçus :
    1
    Merci à tous deux et à votre réponse rapide
    Vos deux codes fonctionnent (évidemment :))

    J'ai fait un mix des deux - et ça marche d'enfer
    Un grand merci !

    Sans prétention mais juste pour donner des idées, j'ai bâti un planning Excel qui ressemble à du Project
    qq astuces :
    les WE sont calés à partir de la position du premier dimanche, les jours fériés étant indiqués sur une ligne à part : des bandes verticales apparaissent en gris
    la barre de chaque tâche se colore où il faut en fonction de ses dates de début et fin
    tout cela avec qq formules simples et des MFC, le plus intéressant étant que l'ordre des MFC permet de masquer la barre de tache sous les bandes WE par ex ou sous d'autres couleurs (CP, formation)
    toute la mise en couleur se fait quasi automatiquement
    je récupère ensuite les infos pour le suivi, des statistiques

    cerise sur le cageot, votre macro permet d'imprimer la zone active du planning sans se poser de questions
    encore merci
     
    kingfadhel aime votre message.
  5. kingfadhel

    kingfadhel XLDnaute Occasionnel

    Inscrit depuis le :
    13 Mai 2010
    Messages :
    350
    "J'aime" reçus :
    19
    Sexe :
    Masculin
    Habite à:
    Tunis
    Utilise:
    Excel 2016 (PC)
    Bonjour, le fil, vadelcaisse
    MAJ code
    Code (Text):

    Sub Impression_Selective()
        Application.PrintCommunication = False
        With ActiveSheet.PageSetup
            .PrintTitleRows = "$1:$6"
            .PrintTitleColumns = "$A:$O"
        End With
        Application.PrintCommunication = True
        C1 = Range("LigneH").Value
        C2 = Range("LigneB").Value
        C3 = Range("ColoG").Value
        C4 = Range("ColoD").Value
    Range(Cells(C1, C4), Cells(C2, C3)).Select
    Application.Dialogs(xlDialogPrint).Show
    End Sub

     
    N'oublie pas de pointer sur "Sélection" dans la zone bas gauche du popup "impression"
     

    Pièces jointes:

    • CC11.PNG
      CC11.PNG
      Taille du fichier:
      42.9 Ko
      Affichages:
      2
  6. vadelacaisse

    vadelacaisse XLDnaute Nouveau

    Inscrit depuis le :
    21 Novembre 2011
    Messages :
    32
    "J'aime" reçus :
    1
    ça fonctionne !
    c'est dommage qu'il faille taper sur sélection puisque l'instruction "imprimer la sélection" ne peut pas être en début de macro, j'imagine, avant même d'avoir fait la sélection...

    j'ai trouvé une parade, selon que l'utilisateur à une imprimante couleur par défaut ou pas
    - un bouton "impression directe"
    - un bouton "choix de l'imprimante" puis sélection, avec ce dernier code

    merci :)
     
  7. kingfadhel

    kingfadhel XLDnaute Occasionnel

    Inscrit depuis le :
    13 Mai 2010
    Messages :
    350
    "J'aime" reçus :
    19
    Sexe :
    Masculin
    Habite à:
    Tunis
    Utilise:
    Excel 2016 (PC)
    Re,
    Une solution peut être.
    Impression de la sélection déjà faite même si tu ne pointe pas "Sélection" dans la boite de dialogue.
    Code (Text):

    Sub Impression_Selective()

        Application.PrintCommunication = False
    With ActiveSheet.PageSetup
            .PrintTitleRows = "$1:$6"
            .PrintTitleColumns = "$A:$O"
    End With
        Application.PrintCommunication = True
        C1 = Range("LigneH").Value
        C2 = Range("LigneB").Value
        C3 = Range("ColoG").Value
        C4 = Range("ColoD").Value
    Range(Cells(C1, C4), Cells(C2, C3)).Select
    ActiveWorkbook.Names.Add Name:="Zone_imp", RefersToR1C1:= _
            "=Plan!R" & C1 & "C" & C3 & ":R" & C2 & "C" & C4 & ""
    Application.Dialogs(xlDialogPrint).Show
    End Sub

     
    @+
    Me tenir au courant
     

    Pièces jointes:

    • Test.xlsm
      Taille du fichier:
      33.9 Ko
      Affichages:
      3
  8. vadelacaisse

    vadelacaisse XLDnaute Nouveau

    Inscrit depuis le :
    21 Novembre 2011
    Messages :
    32
    "J'aime" reçus :
    1
    presque ça !
    l'impression ne tenait pas compte du nom de champ que tu avais créé
    j'ai eu l'idée d'ajouter ce code, avant "Application..."

    ActiveSheet.PageSetup.PrintArea = "Zone_imp"
    et là ça fonctionne :p

    ce coup-là, ça devrait aller
    merci pour le temps passé, ta réactivité et les solutions !

    j'entrevois parfois le pourquoi, mais la syntaxe de VBA et moi...
     
  9. kingfadhel

    kingfadhel XLDnaute Occasionnel

    Inscrit depuis le :
    13 Mai 2010
    Messages :
    350
    "J'aime" reçus :
    19
    Sexe :
    Masculin
    Habite à:
    Tunis
    Utilise:
    Excel 2016 (PC)
    En tout cas, chez moi ça fonctionne.
    @+
     

Partager cette page