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 02/06/2006, 11h21   #1
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Par défaut [VBA-W]Tester "trouvé" en recherche

Je cherche, dans Word, à obtenir une syntaxe me permettant de tester le résultat d'une recherche telle que celle que j'utilise dans Excel et qui donne ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    Do
        With Worksheets("Feuil1").Range(Plage)
            Set CestLà = .Find(message, LookIn:=xlValues, LookAt:=xlPart)
            If Not CestLa Is Nothing Then
                    Rows(Range(CestLà.Address).Row).EntireRow.Copy Worksheets("Feuil2").Rows(NouvelleLigne)
                    Rows(Range(CestLà.Address).Row).Delete Shift:=xlUp
                Else
                    MsgBox "Date inexistante"
                    Exit Do 'sortie de boucle si plus de correspondance
            End If
        End With
        'NouvelleLigne = Worksheets("Feuil2").Cells(65535, 1).End(xlUp).Row + 1
        'Plage = Cells(1, 1).CurrentRegion.Address
    Loop While Not CestLà Is Nothing
Ce que je veux est obtenir une réponse au boolean "CestLà"
Une fois la correspondance trouvée et si elle est trouvée, je souhaite sélectionner la ligne.

J'ai bien le début mais c'est la suite qui m'intéresserait
Code :
1
2
3
    Selection.HomeKey Unit:=wdStory, Extend:=wdMove ' je me place sur la première ligne
    Selection.WholeStory 'je sélectionne tout le doc
    'Commencer la recherche


Par avance merci aux volontaires
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 13h13   #2
Responsable Visual Basic
 
Avatar de ThierryAIM
 
Homme Thierry
Inscription : septembre 2002
Messages : 3 670
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : septembre 2002
Messages : 3 670
Points : 5 672
Points : 5 672
comme ça ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim cestla As Boolean
    Selection.WholeStory
    With Selection.Find
        .ClearFormatting
        .Text = "merci"
        .Forward = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
 
        cestla = .Execute
    End With
__________________
Vous vous posez une question, la réponse est peut-être ici :
Toutes les FAQs VB
Les Cours et Tutoriels VB6/VBScript
Les Sources VB6


Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

MioSkins.org : le site de référence pour GPS et PDA Mitac MIO
iPHONIX.fr : le must francophone des infos pour iPhone, iPad, ...
ThierryAIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 14h33   #3
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Ok et merci, Thierry. Mais je veux tester ça dans une boucle tant que trouvé est vrai et la syntaxe que tu me donnes ne cherche qu'une fois. C'est le placer dans une boucle qui ne soit pas sans fin que je souhaite. Or La propriété Wrap:=WdFindStop ne fait pas ce que je veux et la recherche reprend au début. Le pourquoi du test sur "CestLà".

Une idée ?

Merci
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 14h40   #4
Responsable Visual Basic
 
Avatar de ThierryAIM
 
Homme Thierry
Inscription : septembre 2002
Messages : 3 670
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : septembre 2002
Messages : 3 670
Points : 5 672
Points : 5 672
Faut tout y dire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim cestla As Boolean
    Selection.WholeStory
Do
    With Selection.Find
        .ClearFormatting
        .Text = "merci"
        .Forward = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
 
        cestla = .Execute
    End With
Loop Until cestla = False
__________________
Vous vous posez une question, la réponse est peut-être ici :
Toutes les FAQs VB
Les Cours et Tutoriels VB6/VBScript
Les Sources VB6


Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

MioSkins.org : le site de référence pour GPS et PDA Mitac MIO
iPHONIX.fr : le must francophone des infos pour iPhone, iPad, ...
ThierryAIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 15h45   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Merci Thierry, C'est ok. Ce n'est pas tout à fait l'utilisation que j'an fais alors je mets mon code

Code :
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
Sub DaprèsThierryAim()
Dim cestla As Boolean, message
    Application.ScreenUpdating = False
    Selection.WholeStory
    Selection.Font.Name = "Arial"
    Selection.Font.Bold = False
    Selection.Font.Size = 10
    Selection.Font.ColorIndex = wdAuto
    TableauMots = Array("", "Dépenses", "Recettes", "Fonctionnement", "Investissement", "Budget n°")
    For i = 1 To UBound(TableauMots)
        message = vbCr + TableauMots(i)
        Selection.WholeStory
        Do
            With Selection.Find
                .ClearFormatting
                .Text = message
                .Forward = True
                cestla = .Execute
                With Selection
                    .MoveLeft Unit:=wdCharacter, Count:=1
                    .MoveDown Unit:=wdLine, Count:=1
                    .HomeKey Unit:=wdLine
                    .ExtendMode = True
                    .EndKey Unit:=wdLine, Extend:=wdExtend
                    .Font.Italic = True
                    .Font.Bold = True
                    .Font.ColorIndex = wdRed
                    .Font.Name = "Arial Black"
                    .Font.Size = 12
                    .MoveLeft Unit:=wdCharacter, Count:=1
                    .MoveDown Unit:=wdLine, Count:=1
                End With
            End With
        Loop Until cestla = False
    Next
    Application.ScreenUpdating = True
End Sub
Bref, ça colle ! Youki 'achement content

Merci Thierry

A+
ouskel'n'or 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 15h50.


 
 
 
 
Partenaires

Hébergement Web