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 :

Comment parcourir une ficher word avec VBA?


Sujet :

VBA Word

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut Comment parcourir une ficher word avec VBA?
    bonjour,

    alors je sais parcourir un fichier excel avec vba mais word je ne sais pas

    j'ai besoin de remplacer une string par une autre string dans 1 page pour cela j'utiliserai replace(oldstring,newstring)

    mais comment chercher oldstring dans ma page ?

    comment on parcours un fichier word ?

    merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Regarde find, dans l'aide, tu as l'option Replace

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Comme je te vois hésiter...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Selection.HomeKey Unit:=wdStory 'envoie en début de document
        Selection.Find.Replacement.ClearFormatting 'si le format n'a pas d'importance
        With Selection.Find
            .Text = "taratata"
            .Replacement.Text = "blabla"
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    A+

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut
    oui ca fonctionne merci

    donc ca done ca par exemple :
    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
     
     
    Sub cover()
     
    Dim myRange As Range
    Dim volume As String
    Dim filename As String
     
     
    filename = "D:\test\04_!cover.doc"
    Debug.Print filename
     
    volume = "Volume1"
    Debug.Print volume
     
    Set myRange = ActiveDocument.Content
    myRange.Find.Execute FindText:="#NUMBER#", ReplaceWith:=volume, _
        Replace:=wdReplaceAll
     
    ActiveDocument.SaveAs filename:=filename
     
     
     
    End Sub

    j'ai une liste excel de volume ,

    comment par exemple parcourir ma liste de volume (fichier excel) puis ouvrir le doc word remplace le volume par celui de la liste parcouru sauvegarde sous puis ferme et prend le le volume suivant de excel

    merci

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je ne comprends pas ce que tu veux faire Désolé.
    Parcourir un répertoire pour avoir la liste des fichiers contenus ?
    Mais après...
    Peux-tu expliquer point par point ?

    Une remarque : Filename est un mot clé de VBA, tu dois éviter d'utiliser les mots clés comme nom de variable sinon tu vas avoir des problèmes Utilise plutôt un truc comme "NomFich"

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut par exemple
    donc par exemple j'ai une cover sous word

    avec une balise #NUMBER# on va dire que ce doc word est une template

    et stocké dans un repertoire


    le but est d'ouvrir mon fichier excel avec la liste de volumes (environ 100)
    et pour chaque volume ouvrir la cover sous word changer le #NUMBER# en le nom de volume en cours de mon fichier excel puis enregistrer sous le cover nom du volume .doc sans toucher au template cover.doc ce qui va creer environ 100 covers avec le nom du volume sur chaque cover

    j'espere que j'ai ete assez clair dans mes explications

    oki doki je change filename

    merci pour ton aide

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut
    merci les gars en fait, ca commence a entrer le vba word

    il faut une periode d'adaptation (c mieux vba excel quand meme )

    donc j'ai une liste de volumes volume-01-01 soit 12lettres), vol2.....vol100
    je parcours cette liste word de volume , et j'ouvre ma cover (jaquette)
    template je change le nom du volume et je sauvegarde sous le nom de mon volume et donc ca me fait 100 jaquettes avec le nom qui lui correspond

    ouf voila , donc voila mon code et il fonctionne pour ceux que ca peut aider

    volume.doc c'est ma liste de volume dans un tableau word a 1 colonne
    cover.doc est la jaquette template qui ne change jamais avec #NUMBER#


    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
     
     
    Public volume As String
     
    Sub parcour()
     
    Dim i As Integer
    Dim fin As Integer
    Dim vol As Variant
    Dim volumefile As String
    Dim coverfile As String
     
    coverfile = "H:\My Documents\Travail\Macro\macro planjo 171106\cover.doc"
    Debug.Print coverfile
     
    volumefile = "H:\My Documents\Travail\Macro\macro planjo 171106\Volume.doc"
    Debug.Print volumefile
     
    Documents(volumefile).Activate
     
    fin = Selection.Tables(1).Columns(1).Cells.Count
    Debug.Print fin
     
    For i = 1 To fin
     
    vol = Left(Selection.Tables(1).Columns(1).Cells(i), 12)
     
    volume = vol
    Debug.Print volume
     
    Call cover
     
    Next i
     
     
    End Sub
     
    Sub cover()
     
    Dim myRange As Range
    Dim newcoverfile As String
    Dim volumefile As String
    Dim coverfile As String
     
    coverfile = "H:\My Documents\Travail\Macro\macro planjo 171106\cover.doc"
    Debug.Print coverfile
     
    volumefile = "H:\My Documents\Travail\Macro\macro planjo 171106\Volume.doc"
    Debug.Print volumefile
     
    Documents(coverfile).Activate
     
    Debug.Print volume
     
    newcoverfile = "D:\test\Cover_" & volume
    Debug.Print newcoverfile
     
    Set myRange = ActiveDocument.Content
    myRange.Find.Execute FindText:="#NUMBER#", ReplaceWith:=volume, _
        Replace:=wdReplaceAll
     
    ActiveDocument.SaveAs filename:=newcoverfile
     
    ActiveDocument.Close SaveChanges:=wdSaveChanges
     
    Documents.Open (coverfile)
     
    Documents(volumefile).Activate
     
    End Sub

    ce n'est qu'une partie mais ca commence bien

    merci les gars pour votre aide

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 27/11/2007, 14h40
  2. Comment protéger une feuille excel en vba avec des paramètres?
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2007, 17h21
  3. Comment protéger une feuille excel en vba avec des paramètres?
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2007, 17h20
  4. [VBA Excel]Comment parcourir une collection ?
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/10/2006, 12h52
  5. Comment parcourir un fichier texte avec une boucle ?
    Par kikica dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2005, 17h13

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