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 facture - Aperçu avant impression [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2011
    Messages : 15
    Par défaut Impression de facture - Aperçu avant impression
    Bonjour à tous,

    J'ai un fichier avec un modèle de facture et duplicata de la facture et une feuille de liste avec les coordonnées de chacun de mes clients ainsi que les montants de la facturation.

    J'ai un code qui permet d'imprimer mes factures selon certains critères une par une et que voudrait qui mémorise ma feuille (sorte de mémoir tampon et que je puisse faire un aperçu de la globalité des factures à la fin de ma boucle.

    Voici une partir du code simplifié :
    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
     
    Sub Impression()
        Dim l As Long
        Dim n As Long
     
        Dim wshListe As Worksheet
        Dim wshFacture As Worksheet
        Dim wshDuplicata As Worksheet
     
        Set wshListe = ActiveWorkbook.Sheets("Liste")
        Set wshDuplicata = ActiveWorkbook.Sheets("Duplicata")
        Set wshFacture = ActiveWorkbook.Sheets("Facture")
     
     
        l = wshListe.Range("A1").End(xlDown).Row    'On mémorise la liste des clients
     
        For n = 2 To l
            'On remplit les coordonnées du client que l'on récupère sur la feuille liste
            wshFacture.Range("NomClient") = wshListe.Range("B" & n).Value
            wshFacture.Range("PrenomClient") = wshListe.Range("C" & n).Value
            wshFacture.Range("Adresse1Client") = wshListe.Range("D" & n).Value
            wshFacture.Range("Adresse2Client") = wshListe.Range("E" & n).Value
            wshFacture.Range("CodePostalClient") = wshListe.Range("F" & n).Value
            wshFacture.Range("VilleClient") = wshListe.Range("G" & n).Value
            'On imprime le duplicata et la facture si le client souhaite un duplicata
            If wshListe.Range("I" & n).Value = "OUI" Then
                Worksheets(Array(wshFacture.Name, wshDuplicata.Name)).PrintOut  'la je voudrais modifier le code au lieu d'imprimer mémoriser la feuille
            Else
                Worksheets(wshFacture.Name).PrintOut
            End If
        Next n
        'Ouvrir un apercu avec l'ensemble des factures avant d'imprimer.
     
    End Sub
    Merci pour votre aide.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour avec un tableau ...
    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
    Sub Impression() 
        Dim tb() As Variant
        (...)
          'On Mémorise le duplicata et la facture si le client souhaite un duplicata
                AjoutTB tb, wshFacture.Name
     
        If wshListe.Range("I" & n).Value = "OUI" Then
               AjoutTB tb,wshDuplicata.Name
           End If
        Next n
     Worksheets(tb).PrintPreview
    End sub
     
     
    '
    ' Procédure Ajout d'une feuille au tableau
    '
    Sub AjoutTB(ByRef mtb(), st As String)
      Dim iNb As Integer
      iNb = UBound(mtb) + 1
      ReDim Preserve mtb(iNb)
      mtb(iNb) = st
    End Sub

  3. #3
    Membre averti
    Femme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2011
    Messages : 15
    Par défaut
    Merci beaucoup je m'en doutais qu'il fallais que j'utilise un tableau (j'avoue que je n'utilise jamais ce genre de chose dans mes codes et ça me serait bien utile parfois)!!!!

    Sur la procédure j'ajout de la feuille j'ai une erreur
    le code s'arrête sur cette ligne :

    Merci pour votre aide

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Re,

    Il est dommage que tu ne sache pas lire le message d'erreur pour nous le reporter ...


    au cas ou ..essai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    '
    ' Procédure Ajout d'une feuille au tableau
    '
    Sub AjoutTB(ByRef mtb(), st As String)
      Dim iNb As Integer
     On Error Resume Next
     iNb = UBound(mtb) + 1
     On Error GoTo 0
     Debug.Print iNb
      ReDim Preserve mtb(iNb)
      mtb(iNb) = st
    End Sub

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, pourquoi ne pas utiliser une imprimante virtuelle style PDFCreator ou autre , générer tes pdf, les visualiser avec Acrobat Reader et si Ok lancer alors l'impression via le Reader sur l'imprimante réelle ?

  6. #6
    Membre averti
    Femme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2011
    Messages : 15
    Par défaut
    Le code ne tient pas compte du bouclage (changement du nom de client sur la même feuille 'Facture' For... next).

    Parce que là, il m'affiche la derniere facture et le dernier duplicata de la liste...

    C'est peut être moi qui me suit mal exprimée...

    Les valeurs de ma feuille facture change (donc c'est le printpreview que je souhaite mémoriser comme le fait un logiciel d'impression lorsqu'il a beaucoup de feuille à imprimer) pour voir l'ensemble des feuilles avec le montant pour chaque client.

    Admettons, j'ai 36 clients dont 3 qui ne veulent pas de duplicata
    je dois avoir 36 + 33 = 69 pages dans l'aperçu or avec le code je n'en ai que 2

    Citation Envoyé par kiki29 Voir le message
    Salut, pourquoi ne pas utiliser une imprimante virtuelle style PDFCreator ou autre , générer tes pdf, les visualiser avec Acrobat Reader et si Ok lancer alors l'impression via le Reader sur l'imprimante réelle ?
    Cela peut être une solution...
    Mais quel code ?

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

Discussions similaires

  1. Concepteur RAVE sous DELPHI 7 : aperçu avant impression
    Par tarbala dans le forum Composants VCL
    Réponses: 4
    Dernier message: 01/06/2020, 01h37
  2. Aperçu avant impression d'un TRichEdit
    Par PoOky dans le forum Composants VCL
    Réponses: 2
    Dernier message: 01/02/2016, 00h19
  3. Réponses: 6
    Dernier message: 04/10/2005, 21h18
  4. Aperçu avant impression
    Par Zebulon777 dans le forum Access
    Réponses: 18
    Dernier message: 15/09/2005, 11h46
  5. [Débutante] Aperçu avant impression d'un composant
    Par gwendo dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 09/07/2004, 10h52

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