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 :

Guillemets mystère VBA Word [WD-2013]


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Guillemets mystère VBA Word
    Bonjour à toutes zé tous

    C'est au bout du rouleau que je viens solliciter votre aide sur ce forum (qui m'a déjà dépanné un nombre incalculable de fois... mais pas aujourd'hui en tout cas, je vous en remercie 1000 fois).

    Petite explication : J'ai effectué un publipostage qui affiche la liste de produits commandés par nos clients.
    --> CodeCli | NomCli
    RefPdt | DesigPdt |PhotoPdt

    Dans le champ PhotoPdt, j'ai renseigné le chemin de la photo du produit : c:\photo\pdt_A.jpg

    Résultat du publipostage : OK, j'ai bien un tableau par client avec la référence, désignation et emplacement (de la photo) de chaque produit.

    Je souhaiterais, grâce à une macro VBA, remplacer le chemin de la photo du produit et par ladite photo.

    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
     
     
    Sub test()
    Dim NBL As Integer ' Nombre de lignes du tableau
    Dim CPT As Integer ' Compteur
    Dim A As String
     
     
    CPT = 2
    NBL = ActiveDocument.Tables(1).Rows.Count
     
    For CPT = 2 To NBL ' la 1ere ligne correspond à l'intitulé de la colonne
     
    A = ActiveDocument.Tables(1).Cell(CPT, 5).Range ' Lecture du contenu de la cellule désirée
    MsgBox (A) ' La MsgBox affiche le bon emplacement.
    ActiveDocument.Shapes.AddPicture (A) 'La valeur de A est "c:\photo\pdt_A.jpg
     
    Next
     
    End Sub
    C'est là que le titre prend tout son sens Un screenshot pour tout clarifier...

    Nom : VBA_Word.jpg
Affichages : 292
Taille : 49,7 Ko

    J'ai retourné Google jusqu'en page 3 (c'est vous dire mon état de désespoir...) et je ne sais pas ce que vient faire ce guillemet ici (tout seul en plus, si ils étaient 2 encore...).

    Je suis loin d'être un expert en dev (quelques restes d'algo en mémoire) mais ça fait 3 jours que je rame...

    D'avance merci à celles et ceux qui m'accorderont un peu de leur temps.

    VBment,

    Zinho

  2. #2
    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,

    Essaie un debug.print au lieu d'un MsgBox pour voir ce que ça donne ?
    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 !

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Hello tout le monde,

    Après avoir retourné le code dans tous les sens, j'ai réussi (par contre, je ne sais pas trop comment) à arriver à mes fins

    J'ai affiché la fenêtre des variables locales et, à force de tâtonner, je suis arrivé à mon résultat final... le code ci joint si qqun en a besoin

    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
     
    Sub ADF_publipostage()
    Dim PAG As Integer ' Nombre de pages du document
    Dim CPT_L As Integer ' Compteur de lignes
    Dim CPT_P As Integer ' Compteur de pages
    Dim CPT_C As Integer ' Compteur de colonnes.
    Dim NB_L As Integer ' Nombre de lignes du tableau
    Dim A As String
    Dim L As Integer
    Dim WordDoc As Word.Document
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    PAG = Selection.Information(wdNumberOfPagesInDocument)
     
     
     
    For CPT_P = 1 To PAG
    NB_L = ActiveDocument.Tables(CPT_P).Rows.Count
        For CPT_L = 2 To NB_L
        L = Len(ActiveDocument.Tables(CPT_P).Cell(CPT_L, 4).Range)
        If L > 10 Then
            A = ActiveDocument.Tables(CPT_P).Cell(CPT_L, 4).Range
            A = Left(A, Len(A) - 2)
     
              If objFSO.FileExists(A) Then
                ActiveDocument.Tables(CPT_P).Cell(CPT_L, 3).Range.InlineShapes.AddPicture A _
                    , linkToFile:=False, saveWithDocument:=True
              Else
                MsgBox (A + "n'existe pas")
              End If
        End If
     
            Selection.MoveDown Unit:=wdLine, Count:=1
     
        Next
     
    ActiveDocument.Tables(CPT_P).Columns(4).Delete
    ActiveDocument.Tables(CPT_P).Columns(1).AutoFit
    ActiveDocument.Tables(CPT_P).Columns(2).AutoFit
    ActiveDocument.Tables(CPT_P).Columns(3).AutoFit
     
    Next
     
     
    End Sub

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

Discussions similaires

  1. [VBA Word] Next sans for
    Par Dobyan08 dans le forum VBA Word
    Réponses: 6
    Dernier message: 20/10/2016, 10h57
  2. [VBA] [WORD] problèmes avec NUMPAGES
    Par meufeu dans le forum VBA Word
    Réponses: 9
    Dernier message: 08/08/2005, 16h24
  3. [VBA WORD] Mailmerge et protection formulaire
    Par Marc Driver dans le forum VBA Word
    Réponses: 2
    Dernier message: 03/08/2005, 12h51
  4. [VBA] [WORD] se placer sur la 1ere page
    Par meufeu dans le forum VBA Word
    Réponses: 4
    Dernier message: 22/07/2005, 10h23
  5. [VB6][VBA][WORD 2003] Fusion - Publipostage.
    Par L.nico dans le forum VBA Word
    Réponses: 4
    Dernier message: 13/07/2005, 15h00

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