Lancer un aperçu d'une feuille Excel depuis vb

cs_philippe Messages postés 71 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 30 juin 2016 - 27 août 2006 à 16:02
cs_philippe Messages postés 71 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 30 juin 2016 - 27 août 2006 à 18:07
Bonjour tout le monde.
Je veux un aperçu de ma feuille mais ça marche pas.
voilà mon code
Public appExcel As Excel.Application 'Application Excel
Public wbExcel As Excel.Workbook 'Classeur Excel
Public wsExcel As Excel.Worksheet 'Feuille Excel
Sub Export_Facture_Excel()
    'ouverture d'Excel
    Set appExcel = CreateObject("Excel.Application")
    Set wbExcel = appExcel.Workbooks.Open(App.Path & "\Facture.xls")
    Set wsExcel = wbExcel.Worksheets(1)
    If Imprim = True Then
        wbExcel.PrintOut
    Else
        wsExcel.Visible = xlSheetVisible
        wbExcel.PrintPreview
    End If
    Fermer_Excel
End Sub

Quand je lance l'aperçu, rien ne s'affiche.

9 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
27 août 2006 à 16:23
Salut,

(je t'avais répondu sur le Topic où tu as laissé ton message)

je t'ai fait une correction ici :

    If Imprim = True Then
        wbExcel.PrintOut
    Else
        <strike>wsExcel.Visible = xlSheetVisible</strike>
        wsExcel.Select
        With appExcel
             .Visible = True
             .Activate  ' *** SetFocus n'existe pas pour l'appli Excel, il faut tricher
             .PrintPreview
        End With
    End If

Pour info, si ta feuille ne contient pas de données, Excel ne gère pas l'aperçu d'une feuille vierge.

Ps : il est plus 'conventionnel' et plus lisible de déclarer ses objets ainsi :
Excel :          Dim xlApp
Classeur :     Dim xlBook
Feuille :        Dim xlSheet
Mais bon, c'est un choix !

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_philippe Messages postés 71 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 30 juin 2016
27 août 2006 à 16:34
Merci pour ta réponse.
Je vais tester ça mais je dois tout refermer excel m'a encore planté, j'avais unbe erreur dans le code.
pour xlApp et la suite je suis d'accord. J'avais récupérer ça sur sur un autre site.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
27 août 2006 à 16:44
Quand tu testes ce genre d'application (qui ouvre Excel), attend toi à des plantages.
Le problème quand ça plante, Excel s'ouvre, mais ne se ferme pas (du moins le processus) et tes objets ne se vide pas (ils ont pourtant été initialisés).

Pour palier à cela, la première ligne de code à exécuter sera
On Error GoTo Saut

Puis place, juste avant de décharger tes objets (ou d'appeler la procédure le faisant) :
Saut:
MsgBox "Erreur n°" & Err.Number & ". " & Err.Description
Err.Clear

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_philippe Messages postés 71 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 30 juin 2016
27 août 2006 à 16:59
Merci pour le conseil


Je viens de tester (en pas à pas pour eviter le plantage).
J'ai un message sur .Activate
"L'objet ne gère pas cette méthode ou cette propriété"
c'est vrai que la liste ne propose pas Activate tout seul.
j'ai essayé aussi activewindow et active workbook mais ça marche pas non plus
"utilisation incorrecte de la propiété"


 
0

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

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
27 août 2006 à 17:06
Bizarre, il va de soi que j'avais testé, et il me le prenez.
A la limite, essaie en l'occultant, en fait, au début ça ne me faisait pas l'aperçu, mais je ne savais pas si c'est parce qu'aucune donnée n'était affichée, ou si c'est cette histoire d'Activation.

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_philippe Messages postés 71 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 30 juin 2016
27 août 2006 à 17:11
Excel s'ouvre bien, mais il ne vient pas à l'écran.
Comme j'ai un bouton d'impression direct et que ça marche, je crois que pour l'aperçu, je vais le mettre dans un OLE.
Je m'en suis déjà servi sur un autre projet et ça marche
0
cs_philippe Messages postés 71 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 30 juin 2016
27 août 2006 à 17:19
Je suis d'avoir des données. J'ai ouvert le classeur et j'ai bien ce que dois avoir.


En tout cas merci pour tes conseils
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
27 août 2006 à 17:44
Si ton appli a planté, tu risques d'avoir des sessions d'Excel toujours "en vie".

Fais Ctrl-Alt-Del pour voir les processus et efface tous les processus Excel avant de continuer à travailler sur ton projet.


Il est possible que ces sessions d'Excel déjà ouvertes entrent en conflit avec ton programme.

MPi
0
cs_philippe Messages postés 71 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 30 juin 2016
27 août 2006 à 18:07
Comme je te l'ai dit, pour l'impression directe, pas de problème.
Au lieu de faire l'aperçu via excel, je vais charger ma feuille dans un controle OLE.

J'en profite pour te poser une autre question qui n'a rien  à voir.
Est ce que tu peux me confirmer que le bouton Imprimer du CommonDialog.ShowPrinter ne fait que sélectionner une imprimante et n'imprime rien.
0
Rejoignez-nous