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 Access Discussion :

access vers word signets / VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Assistante Développement
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistante Développement
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut access vers word signets / VBA
    bonjour,

    je reviens vers vous, car je n'arrive toujours pas à réaliser mon projet :

    J'ai crée un modèle Lettre.dot (WORD 2003) avec les signets correspondants à mes champs textes d'ACCESS. Jusque là tout va bien.

    J'ai crée une base de données qui se nomme "CONTACT" avec un formulaire qui se nomme "SAISI" et sous-formulaire "INTERLOCUTEURS".

    Sur le sous-formulaire j'ai crée un bouton commande pour envoyer une lettre directement de ma base de données.

    Ce que je ne comprends pas, c'est qu'il bloque toujours sur la même ligne avec un message d'erreur "incompatibilité de type" ? J'ai mis en rouge la ligne qui pose problème.

    Voici mon 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
    Option Compare Database
    
    Private Sub Envoi_Lettre_Click()
    Dim nom2
    rep2 = InputBox("Veuillez saisir un objet pour votre lettre")
    rep = MsgBox("S'agit'il d'une lettre recommandée ?", vbYesNo + vbInformation)
    nom2 = Forms!SAISI!INTERLOCUTEURS.Form!Genre & " "
    nom2 = nom2 & Forms!SAISI!INTERLOCUTEURS.Form!Prenom & " " & UCase(Forms!SAISI!INTERLOCUTEURS.Form!Nom)
    Adresse2 = UCase(Form!SAISI!Societe) & Chr(10) & nom2 & Chr(10) & Form!SAISI!Adresse1
    Adresse2 = Adresse2 & Chr(10) & Form!SAISI!Adresse2 & Chr(10)
    Adresse2 = Adresse2 & Form!SAISI!CP & " " & UCase(Form!SAISI!Ville)
    
    Dim oApp As Object
    Set oApp = CreateObject("word.application")
    oApp.Visible = True
    With oApp
    .Documents.Add template:="C:\Documents and Settings\armelle.bechieau\Bureau\Catherine\lettre.dot"
    With .selection
    .Goto , , , "objet"
    .insertafter rep2
    .Goto , , , "adresse"
    .insertafter Adresse2
    .Goto , , , "Genre"
    .insertafter Forms!SAISI!INTERLOCUTEURS.Form!Genre
    .Goto , , , "genre2"
    .insertafter Forms!SAISI!INTERLOCUTEURS.Form!Genre
    If rep <> 6 Then
    .Goto , , , "ar"
    .cut
    End If
    .Goto , , , "debut"
    End With
    End With
    
    End Sub
    J'ai essayé plusieurs solutions, mais aucune ne fonctionne. J'ai vraiment besoin d'aide.

    Si quelqu'un peut m'aider ?

  2. #2
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom2 = nz(Forms!SAISI!INTERLOCUTEURS.Form!Genre,"") & " "
    Qu'est-ce que ça donne ?


  3. #3
    Membre confirmé
    Femme Profil pro
    Assistante Développement
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistante Développement
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut envoyer une lettre d'ACCESS à WORD
    Bonjour,

    nom2 = nz(Forms!SAISI!INTERLOCUTEURS.Form!Genre,"") & " "
    j'ai essayé et j'ai un message d'erreur. Je vous l'envoi "erreur 438".

    Merci encore pour votre aide.

  4. #4
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Aïe ! aïe aïe !
    L'erreur 438 !

    Ca, c'est très ennuyant...
    Moi, je ne l'aime pas du tout cette erreur là ...

    euh... et... sinon, à part cela, elle dit quoi d'autre l'erreur 438 ?
    Elle ne serait pas un peu accompagnée d'un message descriptif qui nous en dirait un peu plus ?

  5. #5
    Membre confirmé
    Femme Profil pro
    Assistante Développement
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistante Développement
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut Acces vers Word / signets VBA
    bonjour,

    Je vous envoi le fichier "imprime écran" de l'erreur 438.

    "propriété ou méthode non gérée par cet objet"

    J'ai essayé pas mal de différentes combinaisons, mais apparemment c'est autre chose qui ne vas pas.

    Merci encore de bien vouloir m'aider.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    INTERLOCUTEURS n'existe pas !
    C'est INTERLOCUTEURS sous-formulaire le nom que tu lui as donné !

    Fais un essai en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom2 = nz(Forms!SAISI!INTERLOCUTEURS.Form!Genre,"") & " "
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom2 = nz(me.Genre,"") & " "

  7. #7
    Membre confirmé
    Femme Profil pro
    Assistante Développement
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistante Développement
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut Acces vers Word / signets VBA
    Pour ceux et celles que çà intéressent, je vous envoi le code complet.

    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
    Option Compare Database
     
    Private Sub Envoi_Lettre_Click()
    Dim nom2
     
    rep2 = InputBox("Veuillez saisir un objet pour votre lettre")
    rep = MsgBox("S'agit'il d'une lettre recommandée ?", vbYesNo + vbInformation)
    nom2 = Nz(Me.Genre, "") & " "
    nom2 = Nz(Me.Prenom, "") & " " & Nz(Me.Nom, "") & " "
    Adresse2 = forms("SAISI").Societe & Chr(10) & nom2 & Chr(10) & forms("SAISI").Adresse1
    Adresse2 = Adresse2 & Chr(10) & forms("SAISI").Adresse2 & Chr(10)
    Adresse2 = Adresse2 & forms("SAISI").CP & " " & forms("SAISI").Ville & " "
     
    Dim oApp As Object
    Set oApp = CreateObject("word.application")
    oApp.Visible = True
    With oApp
    .Documents.Add template:="U:\Mes documents\MODELES\lettre2.dot"
    With .selection
    .Goto , , , "objet"
    .insertafter rep2
    .Goto , , , "adresse"
    .insertafter Adresse2
    .Goto , , , "genre"
    .insertafter Nz(Me.Genre, "")
    .Goto , , , "genre2"
    .insertafter Nz(Me.Genre, "")
    If rep <> 6 Then
    .Goto , , , "ar"
    .cut
    End If
    .Goto , , , "debut"
    End With
    End With
     
    End Sub
    Il faut créer un modèle de lettre, avec les signets correspondants aux champs dont vous avez besoin "objet, ar, genre, adresse etc...", dans le modèle ma lettre s'appelle "lettre.2".

    Merci au site développez.com pour leurs contributions.

    Catherine

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

Discussions similaires

  1. [WD-2010] Importer données Access vers Word par signet
    Par Brandysve dans le forum VBA Word
    Réponses: 3
    Dernier message: 04/04/2014, 19h24
  2. Access vers Word problème signet (vba)
    Par Seba13 dans le forum VBA Access
    Réponses: 10
    Dernier message: 27/04/2011, 14h24
  3. Envoi d'info d'Access vers Word avec des signets
    Par Laetis dans le forum Access
    Réponses: 1
    Dernier message: 03/05/2006, 19h04
  4. Export d'etat ACCESS vers WORD/EXCEL : pb de mise en forme
    Par leguminator dans le forum Access
    Réponses: 2
    Dernier message: 25/10/2005, 11h03
  5. Exportation de formulaires ACCESS vers WORD
    Par mpascolo dans le forum Access
    Réponses: 5
    Dernier message: 17/10/2005, 16h16

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