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 :

MACRO liaison avec WORD


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Juillet 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 11
    Par défaut MACRO liaison avec WORD
    Bonjour,


    Il y a une macro qui permet de lancer le document WORD LettreOPCM à partir du fichier Excel Tableau des Soldes.

    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
    Sub LETTRE()
    '
    'Récupération des données
    ValSicav = Cells(23, 2).Value
    quant = Cells(24, 3).Value
    Soit = Cells(25, 2).Value
     
    'Ouverture de word et du fichier
    Dim appwrd As Object
    Dim docword As Object
    Application.WindowState = xlMinimized
    Set appwrd = CreateObject("word.application")
    appwrd.Visible = True
    Set docword = appwrd.documents.Add(template:="c:\TRESO\lettreOPCVM.doc")
     
    'Mise à jour des données
    docword.Fields(1).Result.Text = quant
    docword.Fields(2).Result.Text = ValSicav
    docword.Fields(3).Result.Text = Soit
     
    End Sub

    Ma question est de savoir s’il est possible d’insérer dans la macro qu’en fonction de la cellule B24 du fichier Tableau des Soldes, lorsque c’est indiqué :
    • ACHAT, dans le document LettreOPCVM le terme VENTE soit barré
    • VENTE, dans le document Word, ACHAT soit barré.

    Quelle fonction peut-on utiliser ?

    Merci de votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Par défaut
    La réponsé est moi c'est possible.


    Voici une trame pour réaliser l'action pour 'barré' les termes Vente ou achat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    'On teste la valeur de la cellule 'B24 et on affecter la variable posit
     
    dim posit as integer
    posit = 1 ' par défaut
     
     if Cells(24, 2).Value = "ACHAT" then posit =  32  ' vérifier si Achat commence en position 32 
    if Cells(24, 2).Value = "VENTE" then posit =  55 ' vérifier si Vente commence en position 55


    Pour se déplacer dans le tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    docword.tables (3).cells ( 1,1).select   ' pour se déplacer dans la cellule
    docword.Selection.MoveRight Unit:=wdCharacter, Count:= posit , Extend:=wdExtend  ' pour selectionner le mot qui commence à la N'éme lettre .
     docword.Selection.Font .StrikeThrough = True  'pour barrer la police
    A adapter ..

  3. #3
    Membre habitué
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Juillet 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 11
    Par défaut
    J'ai le message suivant :
    "Erreur d'exécution 438 :
    Propriété ou méthode non géré par cet objet".

    Qu'est-ce qui ne va pas ?

  4. #4
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Par défaut
    J'ai fait une erreur , la bonne syntaxe pour word c'est :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    docword.tables (3).cell ( 1,1).select   ' pour se déplacer dans la cellule du modêle
    pas de s à cell sur word.
    pour débugger et connaitre l'endroit qui pose problème , inserts des flag du type suivant pour savoir où apparait l'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    msgbox " on est en ligne 24  du code"

  5. #5
    Membre habitué
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Juillet 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 11
    Par défaut
    Bon, là , à l'exécution de la macro, dans le document Word, il me sélectionne uniquement tout le champs " ACHAT / VENTE (rayer la mention inutile)" sans en barrer un des deux mots.

    un message d'erreur mentionne la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docword.Selection.MoveRight Unit:=wdCharacter, Count:=posit, Extend:=wdExtend     ' pour selectionner le mot qui commence à la N'éme lettre .

Discussions similaires

  1. [AC-2003] Liaison avec Word
    Par SuzyR dans le forum Access
    Réponses: 2
    Dernier message: 14/06/2013, 14h12
  2. [XL-2003] liaison avec word
    Par CODYCO dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 05/01/2012, 12h03
  3. Macro liaison Excel Word Access
    Par Martialino dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/10/2010, 22h05
  4. Réponses: 2
    Dernier message: 13/12/2006, 13h33
  5. vba avec Word et macros
    Par hottnikks_79 dans le forum VBA Word
    Réponses: 5
    Dernier message: 25/09/2006, 11h47

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