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 :

Problème de boite de dialogue


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Par défaut Problème de boite de dialogue
    je passe par excel pour programmer sous forme de publipostage des fichiers Word. le probleme est qu'avec ma macro quand j'ai de la chance ma boite de dialogue s'affiche et j'enregistre correctement mes fichiers word et quand j'ai pas de chance la macro ce plante et tourne sans jamais ouvrir la boite de dialogue. je ne comprend absolument rien à ce phénomène. voici la macro en question :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    Private Sub CommandButton1_Click()
     
        Dim WordApp As Object, WordDoc As Object
        Const wdDialogFileSaveAs = 84
        Dim Fichier As String, Titre As String
        Dim i As Byte, Lign As Byte, NbLign As Byte, Cel As Byte, NvLign As Byte
        Dim nbpage As Byte, cptpage As Byte
     
        Application.DisplayAlerts = False
        Lign = 21
        While (ActiveSheet.Cells(Lign, 1) <> "")
            Lign = Lign + 1
        Wend
     
        Titre = "Transmission Réclam KX " & TextBox1 & " du " & Format(TextBox2, "dd mm yyyy")
     
        repertoir = Environ("HOMEPATH") & "\"
        If Lign = 21 Then
               'Adhérent Unique
               Fichier = "C:\macros\Production\corporate\Décès Collectif\Transmission Réclam KX\model\transrclkxuniq.doc"
     
               If Dir(Fichier) <> "" Then
                   Set WordApp = CreateObject("word.application")
                   Set WordDoc = WordApp.Documents.Open(Fichier)
     
                   For i = 1 To 14
                       If i = 6 Then
                           dform = Cells(6, i)
                           madate = Format(dform, "dd mmmm yyyy")
                           WordDoc.Bookmarks("Signet" & i).Range.Text = madate
                       ElseIf i = 8 Then
                           dform = Cells(6, i)
                           nombr = Format(dform, "#,0")
                           WordDoc.Bookmarks("Signet" & i).Range.Text = nombr
                       Else
                           WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(6, i)
                       End If
                   Next i
     
               Else
                   MsgBox "Fichier introuvable"
                   End
               End If
     
        ElseIf Lign > 21 Then
     
                'Adhérents Multiples
                Fichier = "C:\macros\Production\corporate\Décès Collectif\Transmission Réclam KX\model\transrclkxmulti.doc"
     
                If Dir(Fichier) <> "" Then
                    Set WordApp = CreateObject("word.application")    'ouvre une session Word
                    Set WordDoc = WordApp.Documents.Open(Fichier)
     
                    For i = 1 To 12
                        If i = 6 Then
                           dform = Cells(17, i)
                           madate = Format(dform, "dd mmmm yyyy")
                           WordDoc.Bookmarks("Signet" & i).Range.Text = madate
                       ElseIf i = 8 Then
                           dform = Cells(17, i)
                           nombr = Format(dform, "#,0")
                           WordDoc.Bookmarks("Signet" & i).Range.Text = nombr
                        Else
                           WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(17, i)
                       End If
                    Next i
     
                    'Gestion du tableau
                    NbLign = Lign - 21
                    NvLign = 21
                    y = 1
                    For Cel = 2 To (NbLign + 1)
                        WordDoc.Tables(1).Rows.Add
                        WordDoc.Tables(1).Columns(1).Cells(Cel).Range.Text = y
                        WordDoc.Tables(1).Columns(2).Cells(Cel).Range.Text = Range("A" & NvLign)
                        NvLign = NvLign + 1
                        y = y + 1
                    Next Cel
                    WordDoc.Tables(1).Rows(1).shading.backgroundpatterncolor = RGB(160, 160, 160)
                    WordDoc.Tables(1).Columns(1).shading.backgroundpatterncolor = RGB(160, 160, 160)
                    WordDoc.Tables(1).Rows(1).HeadingFormat = True
     
                    'Vide la liste des adhérents
                    Range("A21:A" & (Lign - 1)).ClearContents
     
                Else
                    MsgBox "Fichier introuvable"
                    End
                End If
        End If
     
        'Affiche la boite dialogue de sauvegarde avec la pre-saisie de la réf 
        With WordApp.Dialogs(wdDialogFileSaveAs)
             .Name = repertoir & Titre & ".doc"
             .Show
        End With
     
        WordApp.Visible = True    'affiche le document Word
        Unload Me
     
    End Sub

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    ça plante à quelle ligne, et avec quel message d'erreur ?

    ça ne viendrait pas de tes End après chaque "fichier introuvable" ?

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Par défaut
    sa ne renvoi pas d'erreur c'est la le problème, sa tourne et bloque complètement excel, m'obligeant à passe par ctrl+alt+sup pour arrêter le processus.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Il faut que tu vérifies chaque étape de ton code

    Lancer la macro en mode pas à pas, et tapoter F8 pour visualiser le fonctionnement de ta macro ligne par ligne

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Par défaut
    j'ai essayé ce que tu m'as conseillé et tout s'exécute correctement jusqu'à . je me demande si sa ne vient pas de ma machine vu que sa passe souvent et casse d'autres fois .

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    "Bipostage Interdit" avec : http://www.developpez.net/forums/d15...oite-dialogue/

    Il y a un gros problème par là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Application.DisplayAlerts = False
        Lign = 21
        While (ActiveSheet.Cells(Lign, 1) <> "")
            Lign = Lign + 1
        Wend
    Ii ne traite jamais les cas en bas de 21.

Discussions similaires

  1. C++/CLI : Problème avec boite de dialogue
    Par jlg_47 dans le forum C++/CLI
    Réponses: 1
    Dernier message: 03/01/2014, 10h18
  2. Problème avec boite de dialogue enregistrer sous
    Par biddal dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/08/2011, 10h58
  3. problème fermeture boite de dialogue
    Par totoscill dans le forum MFC
    Réponses: 15
    Dernier message: 30/09/2009, 10h55
  4. Problème avec boite de dialogue pour fermer JFrame
    Par adn013 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 04/09/2007, 15h37
  5. Problème MAJ boite de dialogue
    Par Nemesis007 dans le forum MFC
    Réponses: 2
    Dernier message: 07/04/2007, 00h24

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