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 :

Imprimer des cellules sélectionnées [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Artisan
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Artisan
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Par défaut Imprimer des cellules sélectionnées
    salut à tous,
    Depuis un formulaire j'imprime une facture ou un devis depuis cette commande vba :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CmdImprimer_Click()
     
    Sheets("Devis_Facture").Select
    If Range("AA4").Value = "NON" Then
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Range("AA4").Value = "OUI"
        ElseIf Sheets("Devis_Facture").PrintOut = True And Range("AA4").Value = "OUI" Then
            If MsgBox("Vous avez déjà lancé une impression. Désirez-vous en lancer une nouvelle ?", vbOKCancel, "Nouvelle impression !") = vbOK Then
            ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True, IgnorePrintAreas:=False
            Else
            Exit Sub
        End If
    End If
    End Sub
    Je voudrais faire évoluer cette commande comme suit :
    En fonction de si c'est une facture ou un devis la zone à imprimer sera différente.
    Pour commencer
    Facture correspond à la valeur 1 et Devis à la valeur 2 cette valeur est affiché dans la cellule V8 de la feuil Devis_Facture j'avais. Je précise que ces valeurs n'apparaisse pas pour le moment sur le code ci-dessus
    Donc pour facture je souhaiterai imprimer de la cellule A1 à T102 et pour Devis de A1 à T118.
    Je n'ai pas beaucoup de connaissance en vba, merci de votre attention.

  2. #2
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut imprimer des cellules
    Bonjour,

    Faute de précision, j'ai considéré que le devis et la facture se situe sur la feuille "devis_facture"

    voir ce que cela donne, je n'ai pas fait d'essai.

    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
     
    Private Sub CmdImprimer_Click()
    Dim aire As Range
    Sheets("Devis_Facture").Activate
    If Sheets("Devis_Facture").[V8] = 1 Then
           Set aire = Range("a1:t102").Address   'facture
    Else
           Set aire = Range("a1:t118").Address  ' devis
    End If
     
    If Range("A4").Value = "NON" Then
        ActiveWindow.SelectedSheets.Printarea = aire
        Range("A4").Value = "OUI"
        ElseIf Sheets("Devis_Facture").PrintOut = True And Range("AA4").Value = "OUI" Then
            If MsgBox("Vous avez déjà lancé une impression. Désirez-vous en lancer une nouvelle ?", vbOKCancel, "Nouvelle impression !") = vbOK Then
                ActiveWindow.SelectedSheets.Printarea = aire
            Else
                Exit Sub
        End If
    End If
    End Sub
    Cordialement,

  3. #3
    Membre averti
    Homme Profil pro
    Artisan
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Artisan
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Par défaut
    Merci de t'être penché sur mon problème.
    Je me suis empressé de tester ta proposition. j'ai bien compris ton raisonnement et effectivement tout ce passe sur la feuille Devis_Facture.

    Un premier problème se pose :
    au click : message d'érreur -> Erreur de compilation, incompatibilité de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub CmdImprimer_Click()
    Set aire = Range("A1:T102").Address
    Je ne maîtrise pas la fonction exacte de .Address , mais par contre j'ai tenté de le remplacer par .Selected

    L'erreur a évolué dans ce sens :
    -> Erreur de compliation, Membre de méthode ou de données introuvable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub CmdImprimer_Click()
    ActiveWindow.SelectedSheets.PrintArea = aire
    Là maintenant je sèche

  4. #4
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut imprimer des cellules
    bonjour,

    je n'ai pas fait attention mais "address" ne sert à rien. Il s'agit de définir un objet et range seul décrit l'objet (plage à imprimer).

    si tu as un ficher sans données confidentielles que je puisse tester ce serait plus simple pour moi qui ne suis pas un spécialiste.

    Cordialement

  5. #5
    Membre averti
    Homme Profil pro
    Artisan
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Artisan
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Par défaut
    Bonjour nibledispo,

    Je te fais suivre ça en fin de journée, car il faut effectivement que je supprime toutes les données personnelles de ma base de données clients.

    Merci à bientôt.

    J'allais oublier, bonne et heureuse année 2014 à tous !
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip dev.zip (1 009,3 Ko, 208 affichages)

  6. #6
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut imprimer des cellules
    bonjour,

    je viens de faire un essai avec ce code et il m'a sortie la facture ou le devis, difficile de savoir.

    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
     
    Private Sub CmdImprimer_Click()
    Dim aire As Range
    Sheets("Devis_Facture").Activate
    If Sheets("Devis_Facture").[V8] = 1 Then
           Set aire = Range("a1:t102")   'facture
    Else
           Set aire = Range("a1:t118")  ' devis
    End If
     
    If Range("A4").Value = "NON" Then
        ActiveWindow.PrintArea = aire
        Range("A4").Value = "OUI"
        ElseIf Sheets("Devis_Facture").PrintOut = True And Range("AA4").Value = "OUI" Then
            If MsgBox("Vous avez déjà lancé une impression. Désirez-vous en lancer une nouvelle ?", vbOKCancel, "Nouvelle impression !") = vbOK Then
                ActiveWindow.PrintArea = aire
            Else
                Exit Sub
        End If
    End If
    End Sub
    Cordialement,

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

Discussions similaires

  1. [XL-2003] Imprimer des cellules jusqu' a la derniere ligne remplie
    Par djoumusic dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/02/2018, 07h16
  2. [Debutant] Recupération des coordonnées des cellules sélectionnées dans un DataGrid
    Par yal001 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 27/08/2009, 10h54
  3. Réponses: 3
    Dernier message: 18/04/2008, 17h20
  4. Adresse des cellules sélectionnées dans le résultat d'un filtre
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/04/2008, 11h59
  5. [VBA-E2003] Colorier des cellule sélectionnée
    Par 973thom dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 26/04/2006, 10h19

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