Macro Excel Impression

cpsfg Messages postés 6 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 29 juin 2006 - 12 juin 2006 à 15:57
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 13 juin 2006 à 14:15
Bonjour à tous,
Dire que j'ai un petit souci est une lapalissade...J'explique :
Je suis en VBA sur Excel. J'ai cré des formulaires avec des boutons auxquels j'ai affecté des macros.
Sur l'un des formulaires, j'ai des informations à renseigner. Ensuite, je veux qu'en cliquant sur un bouton nommé "Imprimer", la macro recopie les données saisies dans une feuille (nommée BC). Jusqu'ici ca marche. Après je souhaite imprimer la feuille, et là, ca ne marche plus. Pour être tout à fait précis, lorque j'éxecute le code dans le script, la macro fonctionne bien. Mais lorsque je l'éxecute à partir du bouton du formulaire, le message suivant s'affiche "Erreur d'éxecution 1004 La méthode PrintOut de la classe WorkSheet a echoué"
Ci dessous les macros correspondantes :

'Confirmation Impression
Sub Confirmation_Impression()
    Dim Retour As Integer

    Retour = MsgBox("Lancer l'impression ?", vbOKCancel + vbInformation + vbDefaultButton1, "Confirmation")
    If Retour = vbCancel Then
        ActiveDialog.Activate
    Else
    Impression
    End If
End Sub

'Imprimer
Sub Impression()
    WorkSheets("BC").Activate
    ActiveSheet.PrintOut 1, 1, 1, True            'L'erreur ce situe à ce niveau là d'après le debogeur'
End Sub

Je vous remercie d'avance pour tous les bons tuyaux que vous saurez m'apporter....

8 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2006 à 16:05
Salut,

 Et si tu ne met que ActiveSheet.PrintOut .
Ca ne fonctionne pas ?

Si tu veux absolument faire un aperçu , utilise ActiveSheet.PrintPreview

@++
<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /?><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>  Mortalino 

Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
cpsfg Messages postés 6 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 29 juin 2006
12 juin 2006 à 18:10
Salut,
Merci pour le conseil mais malheureusement toujours le même format d'erreur (ca marche dans le script mais pas lors de l'éxecution de la macro normal)

Je l'ai écrit comme ça

'Imprimer
Sub Impression()
    WorkSheets("BC").Activate
    ActiveSheet.PrintOut
End Sub

et aussi comme ça
'Imprimer
Sub Impression()
    WorkSheets("BC").Activate
    ActiveSheet.PrintPreview
    ActiveSheet.PrintOut
End Sub

C'est à n'y rien comprendre, j'ai regardé l'aide Visual Basic, il écrive pourtant le code de cette manière ActiveSheet.PrintOut.

Merci à ceux qui auront la réponse en tout cas.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2006 à 18:24
Alors essaie ça :

Sub Impression()
    Sheets("BC").PrintPreview
    Sheets("BC").PrintOut
End Sub

@++

  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2006 à 18:48
Et je suis en train de penser :

au lieu de WorkSheets("BC").Activate
essaie d'utiliser WorkSheets("BC").Select
ou Sheets("BC").Select

@++

  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cpsfg Messages postés 6 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 29 juin 2006
13 juin 2006 à 09:41
Bonjour,
Je viens d'essayer les solutions que tu proposes, mais encore une fois, rien n'y fait. Je n'y comprend rien. Les commandes marchent toujours dans le script, mais toujours pas dans la feuille Excel.
Merci encore à ceux qui pourront m'aider.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
13 juin 2006 à 11:43
Salut,

Tu peux aussi essayer avec l'index de la feuille, sait on jamais :

Sheets(1).PrintOut.

Mais un moment tu dis que tu as affecté la macro au bouton "imprimer".
Enlève l'affectation et double click sur ce bouton (en mode création) puis dans le code, met cette instruction :

Call Confirmation_Impression

Autant tout essayer...
Bon courage 













@++

  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
cpsfg Messages postés 6 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 29 juin 2006
13 juin 2006 à 13:28
Merci Mortalino pour ton aide
Finalement j'ai transformé ce que je voulais faire. J'ai mis un simple bouton sur la feuille Excel concernée, et là, ca marche.
Encore merci, tes conseils me seront certainement utile pour un prochain développement.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
13 juin 2006 à 14:15
De rien et désolé de ne pas t'avoir plus aidé.

Bon courage pour la suite !

@++

  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
Rejoignez-nous