IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Impression de certaines cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 94
    Par défaut Impression de certaines cellules
    Bonjour j'ai une page à imprimer, et je veux le faire par l'intermédiaire d'un bouton imprimer. En fait je rempli la colonne 3 par des numéro. Il peut y avoir un certain nombre de numéro. Et je veux imprimer à la fin de ce dernier numéro.

    Pour se faire j'ai ecrit ce code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub Imprimer_BeforeDoubleClick()
    'Imprimer l'Annexe
     
    Dim i As Integer, cel As Range
    If ActiveSheet.Name = "Annexe" Then
        Application.EnableEvents = False
        i = 9
        Do
          i = i + 1
          If Cells(i, 3) = "" Then
                ActiveSheet.PrintOut From:=9, To:=1 + i, Copies:=1, Collate:=True
          End If
        Loop Until Cells(i, 3) = ""
        Application.EnableEvents = True
        Cancel = True
    End If
    MsgBox "ok"
     
    End Sub
    Mais cependant mon impression ne s'arrete jamais!! Et j'ai d'innombrable feuille qui s'imprime

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Supprime déjà "Cancel = True" et "cel As Range" et teste ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim i As Integer, derlig as long
    If ActiveSheet.Name = "Annexe" Then
        Application.EnableEvents = False
        DerLig = Range("C65536").end(xlup).row
        i = 9
        ActiveSheet.PrintOut From:=9, To:=DerLig , Copies:=1, Collate:=True
        Application.EnableEvents = True
    End If

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 94
    Par défaut No
    ça ne marche pas ça m'imprime des pages blanches
    j'ai l'impression que ça imprime à partir de la derniere ligne..


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Imprimer_BeforeDoubleClick()
    'Imprimer l'Annexe
     
    Dim i As Integer, derlig As Long
    If ActiveSheet.Name = "Annexe" Then
        Application.EnableEvents = False
        derlig = Range("C65536").End(xlUp).Row
        i = 9
        ActiveSheet.PrintOut From:=9, To:=derlig, Copies:=1, Collate:=True
        Application.EnableEvents = True
    End If
    MsgBox "ok"
     
    End Sub

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    As-tu défini une zone d'impression ? Tu fais ça avec PageSetup -> F1
    Désolé mais je viens de voir ton message et là je m'en vais.
    Bonne soirée

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 94
    Par défaut volet
    j'ai figer un volet afin de repeter les lignes du haut de la ligne 1 à 8..

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 94
    Par défaut ?
    Ca veut dire quoi printsetup ->F1?? meme si je ne fige pas les volets ca ne marche pas..

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Autant pour moi regarde à pageSetup et printArea dans l'aide en ligne
    Permet de définir la zone d'impression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveSheet.PageSetup.PrintArea = "$A$1:$A$7"
    J'ai une excuse, en même temps que je réponds j'essaie d'attraper un pigeon qui vient manger les croquettes de ma minette

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 94
    Par défaut PB
    Ah zut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub Imprimer_BeforeDoubleClick()
    'Imprimer l 'Annexe
     
    Dim i As Integer, derlig As Long
    If ActiveSheet.Name = "Annexe" Then
        Application.EnableEvents = False
        derlig = Range("C500").End(xlUp).Row
        i = 9
        ActiveSheet.PageSetup.PrintArea = "$A$1:$A$8"
        ActiveSheet.PrintOut From:=9, To:=derlig, Copies:=1, Collate:=True
        Application.EnableEvents = True
    End If
    MsgBox "ok"
     
    End Sub

    Qd j'eesai ça j'ai un véritable pb, ça m'imprime en haut à gauche juste les lettres "IB"!!!

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Après définition de la zone d'impression, je crois bien que cette instruction suffit. Tu vérifies

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 94
    Par défaut ?
    Non car je veux imprimer jusqu'à la cellule C.. qui est pleine.. Dans la colonne D j'ai des forule qui permettent de traduire la colonne C en code barre. Du coup si j'imprime ça imprime tout, des feuilles à l'infini

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Alors définis ta zone d'impression pour la plage qui t'intéresse !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.PageSetup.PrintArea = "$A$9:$C$" & derlig
    ActiveSheet.Printout
    Teste ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    Derlig = Split(ActiveSheet.UsedRange.Address, "$")(4)
    ActiveSheet.PageSetup.PrintArea = "$A$9:$C$" & Derlig
    ActiveWindow.SelectedSheets.PrintPreview
    End sub
    et dis ce que tu vois !

  12. #12
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 94
    Par défaut erreur 400
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Imprimer_BeforeDoubleClick()
     
    ActiveSheet.PageSetup.PrintArea = "$A$9:$C$" & derlig
    ActiveSheet.PrintOut
    derlig = Split(ActiveSheet.UsedRange.Address, "$")(4)
    ActiveSheet.PageSetup.PrintArea = "$A$9:$C$" & derlig
    ActiveWindow.SelectedSheets.PrintPreview
     
    End Sub
    Je vois erreur 400!

  13. #13
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 94
    Par défaut Code
    ca marche!!!!!!!!!!!!!!!!!!!!!!!!!!!

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    ???

    Le code que je te dis d'utiliser est ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Imprimer_BeforeDoubleClick()
        derlig = Range("C65536").End(xlUp).Row
        ActiveSheet.PageSetup.PrintArea = "$A$9:$C$" & derlig
        ActiveSheet.PrintOut
    End sub
    l'autre code était simplement pour que tu aies un aperçu de la feuille à imprimer.
    Pour l'erreur 400, quelle version d'Excel as-tu ? (Pour la version 97, Split n'existait pas. Utilise ton code)

  15. #15
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 94
    Par défaut merci
    merci infiniment

  16. #16
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 94
    Par défaut Numéro de page
    En fait à présent je voudrais ajouter des numéros de pages.
    Pour cela j'ai ecris ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Sub Imprimer_BeforeDoubleClick()
    'Pour imprimer les feuilles de l'annexe
     
        derlig = Range("C65536").End(xlUp).Row
     
        If 8 < derlig < 38 Then
        Sheets("Canevas").Cells(4, 14) = "1/2"
        Sheets("Annexe").Cells(9, 6) = "2/2"
    End If
        If 37 < derlig < 67 Then
        Sheets("Canevas").Cells(4, 14) = "1/3"
        Sheets("Annexe").Cells(9, 6) = "2/3"
        Sheets("Annexe").Cells(38, 6) = "3/3"
    End If
     
        If 66 < derlig < 96 Then
        Sheets("Canevas").Cells(4, 14) = "1/4"
        Sheets("Annexe").Cells(9, 6) = "2/4"
        Sheets("Annexe").Cells(38, 6) = "3/4"
        Sheets("Annexe").Cells(67, 6) = "4/4"
    End If
     
        If 95 < derlig < 125 Then
        Sheets("Canevas").Cells(4, 14) = "1/5"
        Sheets("Annexe").Cells(9, 6) = "2/5"
        Sheets("Annexe").Cells(38, 6) = "3/5"
        Sheets("Annexe").Cells(67, 6) = "4/5"
        Sheets("Annexe").Cells(96, 6) = "5/5"
    End If
     
        ActiveSheet.PageSetup.PrintArea = "$A$9:$G$" & derlig
        ActiveWindow.SelectedSheets.PrintPreview
        ActiveSheet.PrintOut
     
    End Sub
    Cependant la meme si la derniere ligne est entre 9 et 38 alors ça m'ecrit 1/5; 2/5; 3/5... et ce sous forme de date!!

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je ne comprends pas ce que tu veux faire par ce code. Enfin, si, mais je ne vois pas comment il ferait ce que tu veux.
    Déjà, la ligne derlig = Range("C65536").End(xlUp).Row donne le N° de la dernière ligne de la seule feuille active.
    Or tu as d'autres feuilles, apparemment, dont la dernière ligne peut ne pas être la même.
    Comment veux-tu imprimer toutes les feuilles avec une seule ligne pour établir la zone d'impression ?
    Bref, explique-nous tout.
    Que veux-tu faire ? Numéroter les pages, ça, on a compris. Mais que veux-tu imprimer ?
    Regarde ici, tu as deux exemples tout faits de ce que tu "sembles" vouloir faire. Si tu as un pb de compréhension du code, tu demandes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impression de certaines cellules et non la totalité
    Par Il_TiRaNNo dans le forum Excel
    Réponses: 6
    Dernier message: 25/11/2010, 23h15
  2. [VBA-E] Impression de certaines feuilles d'un classeur
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/03/2006, 17h19
  3. [JTABLE]Colorier certaine cellule
    Par cameleon2002 dans le forum Composants
    Réponses: 3
    Dernier message: 31/12/2005, 10h15
  4. [JTable] Changer le style de certaines cellulles
    Par bourinator dans le forum Composants
    Réponses: 4
    Dernier message: 08/10/2005, 14h40
  5. [JTable] Empêcher sélection de certaines cellules
    Par Oliveuh dans le forum Composants
    Réponses: 6
    Dernier message: 28/07/2004, 12h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo