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

Signaler
Messages postés
71
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
30 juin 2016
-
Messages postés
71
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
30 juin 2016
-
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

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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"
<!--
Messages postés
71
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
30 juin 2016

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.
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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"
<!--
Messages postés
71
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
30 juin 2016

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é"


 
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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"
<!--
Messages postés
71
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
30 juin 2016

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
Messages postés
71
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
30 juin 2016

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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
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
Messages postés
71
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
30 juin 2016

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.