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 variable non définie macro Excel réalisation courrier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2013
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 114
    Par défaut Problème variable non définie macro Excel réalisation courrier
    Bonjour le forum,

    Je cherche de l'aide pour faire fonctionner une macro qui permet, à partir d'une base Excel, d'éditer des courriers Word, en complétant des signets.

    J'ai récupéré une macro que j'avais déjà utilisée par le passé. Mais, j'ai des problèmes de variables non définies et le code ne s'exécute pas.

    Voici ce code :

    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
    Option Explicit
     
    Public Const CheminFichiersWord As String = "G:\ABC\DEF\GHI\JKL\MNO\"
    Public Const LigneDeTitre As Long = 3
    Public Ligne As Long
    Public I As Long
    Public Reponse As Long
    Public ColDateEtablissement As Long
    Public ColType As Long
    Public ColLocalisation As Long
    Public ColAdresse As Long
    Public ColCodePostal As Long
    Public ColVille As Long
    Public ColNom As Long
    Public ColPrenom As Long
    Public ColIdentificationSansCle As Long
    Public ColCleIdentifiantAss As Long
    Public ColCleIdentifiantPs As Long
    Public ColTypeOpposition As Long
    Public ColEtape As Long
    Public ColReferenceTraitement As Long
    Public ColTraitementPar As Long
    Public ColTraitementNom As Long
     
    Public ColImpression As Long
     
    Public ShDonnees As Worksheet
    Public Continuer As Boolean
    Public wApp As Object
    Public oDoc As Object
    Public Completude As String
    Public MessagePresenceColonnes As String
     
     
    Sub LancerLEdition()
     
                Reponse = MsgBox("Vous allez imprimer le courrier. Voulez-vous continuer ?", vbOKCancel + vbQuestion)
                If Reponse = vbOK Then
     
                    Set wApp = CreateObject("Word.Application")
                    wApp.Visible = True
     
            With Sheets("Base")
     
            Range("U2").Select
            If ActiveCell = "JR" Then
     
                             Set oDoc = wApp.Documents.Add(CheminFichiersWord & "Justif.doc")
                             EditionDocument "Justif"
                             End If
     
            Range("U2").Select
            If ActiveCell = "NO" Then
     
                             Set oDoc = wApp.Documents.Add(CheminFichiersWord & "Refus.doc")
                             EditionDocument "Refus"
                             End If
     
            Range("U2").Select
            If ActiveCell = "OK" Then
     
                             'Set oDoc = wApp.Documents.Open(CheminFichiersWord & "Accord.doc")
                             Set oDoc = wApp.Documents.Add(CheminFichiersWord & "Accord.doc")
                             EditionDocument "Accord"
                             End If
            End With
     
                    oDoc.PrintOut
                    oDoc.Close SaveChanges:=True
     
                     wApp.Quit ' Fermeture de Word
     
                     Set oDoc = Nothing
                     Set wApp = Nothing
     
     
                End If
     
    End Sub
     
     
    Sub EditionDocument(NomDuDocument As String)
     
            'Affectation des données Excel aux signets
            oDoc.Bookmarks("Prénom").Range.Text = Sheets("Base").Range("F" & Ligne)
            oDoc.Bookmarks("Nom").Range.Text = Sheets("Base").Range("E" & Ligne)
            oDoc.Bookmarks("Adresse").Range.Text = Sheets("Base").Range("G" & Ligne)
            oDoc.Bookmarks("Complément").Range.Text = ShDonnees.Range("H" & Ligne)
            oDoc.Bookmarks("CP").Range.Text = ShDonnees.Range("I" & Ligne)
            oDoc.Bookmarks("Ville").Range.Text = ShDonnees.Range("J" & Ligne)
            oDoc.Bookmarks("Traité_par").Range.Text = ShDonnees.Range("AB" & Ligne)
            oDoc.Bookmarks("Type_oppo").Range.Text = ShDonnees.Range("R" & Ligne)
            oDoc.Bookmarks("Prénom").Range.Text = ShDonnees.Range("L" & Ligne)
            oDoc.Bookmarks("Nom").Range.Text = ShDonnees.Range("K" & Ligne)
            oDoc.Bookmarks("Date_étab").Range.Text = ShDonnees.Range("A" & Ligne)
            oDoc.Bookmarks("Interv").Range.Text = ShDonnees.Range("V" & Ligne)
            oDoc.Bookmarks("Ref").Range.Text = ShDonnees.Range("B" & Ligne)
            oDoc.Bookmarks("Complément2").Range.Text = ShDonnees.Range("I" & Ligne)
     
    End Sub
    En fonction de la valeur de la cellule U2, un courrier différent est édité et les signets sont complétés.

    Pour l'instant, je bloque sur l'instruction :

    oDoc.PrintOut

    J'ai une erreur 91 : "variable objet ou variable de bloc With non définie".

    Je n'avais pas cette erreur tout à l'heure et (je ne sais plus à quoi j'ai touché !), elle est apparue.

    En revanche, j'avais un problème dans la macro Sub EditionDocument(NomDuDocument As String), apparemment oDoc n'était pas non plus défini.

    Quelqu'un qui passerait par là aurait-il une idée ?

    Merci d'avance.

    Cordialement.

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2013
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 114
    Par défaut
    Rebonjour,

    Je pense avoir trouvé une réponse à ma première question :

    en mettant
    au lieu de Ca fonctionne.

    En revanche, j'ai toujours le même problème avec la macro suivante.


    Au niveau de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oDoc.Bookmarks("Prénom").Range.Text = Sheets("Base").Range("F" & Ligne)

    j'ai une erreur 1104 (Erreur définie par l'application ou par l'objet). Je comprends qu'il manque encore quelque chose à définir quelque part, mais où ?

    Merci d'avance pour votre aide.

    Cordialement.

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    en lisant succintement tes messages, j'ai constaté que sur ton Post 1, il manque un point devant "Range" derrière un With.

    tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ....
    With Sheets("Base")
     
            Range("U2").Select
    ...
    il faut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Sheets("Base")
     
            .Range("U2").Select'un point devant "Range"
    ...
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. [MySQL] Variable non définie - problème session
    Par andaman dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/07/2013, 12h25
  2. Excel VBA PB de variable non définie (=vide)
    Par elhelios dans le forum Excel
    Réponses: 1
    Dernier message: 27/02/2012, 10h48
  3. Problèmes avec FPLOT -> "variables non définies"
    Par covich dans le forum MATLAB
    Réponses: 1
    Dernier message: 04/02/2010, 13h38
  4. [SQL] Problème de variable non définies
    Par micka39 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 01/05/2007, 23h10
  5. Problème de variable non définie
    Par Mimi Bulles dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2006, 09h03

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