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 :

Programme affichage doc excel dans VBA [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Programme affichage doc excel dans VBA
    Bonjour,

    J'ai un problème avec mon programme vba.
    Quand j'appui sur "Valider" dans mon userform, une boîte de dialogue s'ouvre et me demande si je veux ouvrir ou non une FA.

    Moi, je veux qu'un document excel (nommé FA) se trouvant dans un onglet appelé "FA" s'affiche quand j'appuis sur "Oui". De plus, il faut que les informations rentrées dans mon userform s'enregistre dans l'onglet "Synthese" et ensuite que mon document (nommé FA) s'ouvre.

    Si je choisi "Non", l'userform se ferme et toutes mes info sont enregistrées dans mon onglet "Synthese".

    J'ai réalisé ce programme mais, quand je fais "Oui", mon doc s'ouvre mais mon userform reste ouvert et tout se bloque, je ne peut cliquer sur rien... (photo en pièce jointe). Et aucunes info n'est enregistrées dans "Synthese"...

    Si qqn peut m'aider se serai genial car la je galére...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Valider_Click()
     Msg = MsgBox("Voulez vous ouvrir une FA?", vbYesNo)
     If Msg = vbYes Then
     Worksheets("FA").PrintPreview
     Unload UserForm1
     Else
     Unload UserForm1
     End If
    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Par défaut
    Bonjour,

    Le problème provient du fait que vous ne demandez pas simplement d'afficher la feuille FA. Vous demandez plutôt un aperçu avant impression.
    VBA considère que la commande 'Worksheets("FA").PrintPreview' n'est pas finie tant que l'utilisateur n'a pas fermé manuellement la fenêtre d'aperçu.
    Mais comme votre UserForm n'est pas encore cachée, l'utilisateur ne peut pas avoir accès à la feuille Excel pour fermer cet aperçu...

    Plusieurs solutions sont envisageables, selon ce que vous voulez faire:
    1. Le plus simple reste de cacher la UserForm courante avant de passer à l'aperçu.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      Private Sub Valider_Click()
          If MsgBox("Voulez vous ouvrir une FA?", vbYesNo) = vbYes Then
              UserForm1.Hide
              Worksheets("FA").PrintPreview
          End If
          Unload UserForm1
      End Sub
    2. Vous pourriez également vous passer de l'aperçu et simplement afficher la feuille voulue.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      Private Sub Valider_Click()
          If MsgBox("Voulez vous ouvrir une FA?", vbYesNo) = vbYes Then
              Worksheets("FA").Activate
          End If
          Unload UserForm1
      End Sub
    3. Enfin vous pourriez réaliser l'aperçu uniquement à la fin du code.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      Private Sub Valider_Click()
          If MsgBox("Voulez vous ouvrir une FA?", vbYesNo) = vbYes Then
              AffichFA = True
          Else
              AffichFA = False
          End If
          Unload UserForm1
          If AffichFA Then Worksheets("FA").PrintPreview
      End Sub


    Cdt

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Bonjour Ben L

    Merci pour votre aide!
    La 3ieme méthode me conviens parfaitement!

    Encore merci

    Bonne journée

    Cdt

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

Discussions similaires

  1. [XL-2003] Utiliser fonction excel dans VBA
    Par bebel9313 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/07/2009, 05h55
  2. [Toutes versions] Equivalent de la fonction LINEST et INDEX d'Excel dans VBA
    Par ankoubzh dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/05/2009, 09h04
  3. utilisation des fonction excel dans VBA
    Par ghosty04 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2009, 11h24
  4. formule Excel dans VBA
    Par ninette24 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/07/2008, 14h31
  5. Intégration d'une fonction Excel dans VBA
    Par RéviAT dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/03/2008, 09h10

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