Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/10/2007, 22h34   #1
Invité de passage
 
Inscription : août 2006
Messages : 20
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 20
Points : 3
Points : 3
Par défaut [VBA Word] - Répondre "NON" dans une boucle

Bonjour à toutes et à tous !

j'ai une boucle qui tourne sur tous les tableaux de mon document et qui effectue un certain nombre d'opérations dont un "chercher / remplacer" sur la marque de paragraphe (^p).

Le problème, à chaque tableau, Word me demande si je veux étendre ce "cherche / remplace" à tout le document, et je dois cliquer sur "non" à chaque tableau traité (j'en ai plus de 300 par document...)

Comment indiquer dans le Code VBA à Word de répondre "NON" à ma place ?

Merci d'avance !
kitcreanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2007, 06h41   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Répondre non, il faut positiver !!

En fait, il est préférable de modifier ton code pour que Word ne pose pas la question.

Si tu ne vérifies que les tableaux, il faut faire une boucle sur les tableaux.
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2007, 08h52   #3
Invité de passage
 
Inscription : août 2006
Messages : 20
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 20
Points : 3
Points : 3
Par défaut Oui ... mais .. NON ;-)

Merci de ta réponse Heureux, mais il semble que je n'ai pas été clair...
Les tableaux en question sont générés automatiquement par une application tiers.
Le problème, c'est que, dans chaque cellule, un retour chariot est créé systématiquement et c'est précisémment ces marques de paragraphes qui se situent au sein de chaque cellule de tableau que je veux supprimer, c'est donc bien d'un travail sur les tableaux...

Un petit schéma plutôt q'un long discours, voici le bout de code en question..

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub TABLORAPIDE()
Dim tbl
For i = 1 To ActiveDocument.Tables.Count
    Set tbl = ActiveDocument.Tables(i)
    tbl.Select
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^p"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
' et là je cherche l'instruction magique qui me permettrait de ne pas avoir à répondre NON pour chaque tableau...
Next
End Sub
kitcreanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2007, 09h56   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Voilà ce que j'ai utilisé comme code, et Word ne me demande rien.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Sub testRep()
Dim tbl As Table
For Each tbl In ActiveDocument.Tables
tbl.Select
With Selection.Range.Find
    .ClearFormatting
 
    With .Replacement
        .ClearFormatting
        .Font.Bold = False
    End With
    .Execute FindText:="b", ReplaceWith:="c", Format:=True, _
        Replace:=wdReplaceAll
End With
Next tbl
 
End Sub
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2007, 10h41   #5
Invité de passage
 
Inscription : août 2006
Messages : 20
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 20
Points : 3
Points : 3
Par défaut [Merci !]

Merci c'est parfait, je ne connaissais pas cetet façon "d'écrire" ce genre d'instruction, je vais creuser de ce côté...

Pour ceux que ça intéresserais, voici ma boucle utilisée pour supprimer toutes les marques de paragraphe dans tous les tableaux de mon document en épargnant donc les marques de paragraphes du document lui même qui ne doivent pas être impactée !

Merci à toi Heureux-oli

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
Sub test2()
Dim tbl As Table
For Each tbl In ActiveDocument.Tables
tbl.Select
With Selection.Range.Find
    .ClearFormatting
 
    With .Replacement
        .ClearFormatting
    End With
    .Execute FindText:="^p", ReplaceWith:="", _
        Replace:=wdReplaceAll
End With
Next tbl
End Sub
kitcreanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h31.


 
 
 
 
Partenaires

Hébergement Web