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

VBA Word Discussion :

ERREUR : le membre de la collection n'existe pas


Sujet :

VBA Word

  1. #1
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut ERREUR : le membre de la collection n'existe pas
    j'ai une macro sur excel qui génère des coies de documents word, cependant j'ai une errer dans cette partie de mon code : le membre de la collection n'existe pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With WordApp.Dialogs(wdDialogFileSaveAs)
             .Name = Titre & ".doc"
             .Show
        End With

  2. #2
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par saninx Voir le message
    j'ai une macro sur excel qui génère des coies de documents word
    si tu es sur excel pourquoi essais-tu d'ouvrir le DialogFileSaveAs de word ?

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Il faudrait nous en donner un peu plus, le message d'erreur signale que tu tente d'ouvrir un objet qui n'existe pas.
    Or l'objet Dialogs existe bien et l'objet titre aussi.
    Par contre, ce que tu peux essayer, c'est de référencer ton titre à ton document.
    Il est possible que sans référencer Titre, VBA cherche ce titre sur ton fichier Excel.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  4. #4
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    je passe par excel pour programmer sous forme de publipostage des fichiers Word. j'ai trouvé une solution à cette erreur, mais celle qui se pose maintenant 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

  5. #5
    Inactif  

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Voir la réponse au premier message d'au moins 3 pareils que j'ai trouvé.
    Voir le lien vers les Règles de forum (Multipost interdit) dans la réponse au deuxième message que j'ai trouvé.

    P.S. j'ai failli cliquer sur le petit triangle avec un point d'exclamation au bas du cadre,



    Citation Envoyé par saninx Voir le message
    je passe par excel pour programmer sous forme de publipostage des fichiers Word. j'ai trouvé une solution à cette erreur, mais celle qui se pose maintenant 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
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

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

Discussions similaires

  1. [WS 2008] erreur de GPO : Le domaine spécifié n'existe pas ou n'a pas pu être contacté
    Par gracouille dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 23/08/2009, 21h37
  2. Pas d'erreur avec UPDATE si un champ n'existe pas !
    Par poiwalt dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/01/2009, 15h32
  3. Erreur générée par un formulaire qui n'existe pas
    Par Miss Ti dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/02/2008, 09h39
  4. erreur : la table n'existe pas !!!
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/06/2005, 14h17
  5. Le membre de collection requis n'existe pas
    Par mschistozis dans le forum Access
    Réponses: 4
    Dernier message: 25/10/2004, 16h41

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