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 28/06/2006, 09h12   #1
Membre éclairé
 
Inscription : février 2006
Messages : 932
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : février 2006
Messages : 932
Points : 391
Points : 391
Par défaut [VBA-W] Comparer 2 string

Hello,

voilà j'ai un souci, surement tout bete,

voici mon texte dans word :

Citation:
Public function test as byte
mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub tests()
    Debug.Print ThisDocument.Words.Count
 
    For i = 1 To ThisDocument.Words.Count - 1
 
        'If (CStr(ThisDocument.Words(i)) = "Public") Then
        If (StrComp(ThisDocument.Words(i), "Public", 1) = 0) Then
 
            MsgBox "hu"
 
        End If
    Next
 
End Sub
j'ai essayé avec toutes les comparaisons que je connaissais, meme avec des Ucase etc... rien à faire je n'ai jamais le msgbox qui apparait. ThisDocument.Words.Count me renvoit 6 (j'ai cru deja voir qu'il y avait dans un doc vierge toujours 1 mot donc ca ne m'etonne pas de voir 6 en ayant 5 mots ) par contre pour le msgbox...
Elstak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2006, 10h38   #2
Membre éclairé
 
Inscription : février 2006
Messages : 932
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : février 2006
Messages : 932
Points : 391
Points : 391
Hop,

jviens de retester un truc

Code :
1
2
3
4
5
6
7
8
9
10
    Dim Tableau As Variant
 
    Tableau = Array("Public", "2", "as")
    For i = 1 To ThisDocument.Words.Count - 1
        For j = 1 To UBound(Tableau)
            If CStr(UCase(ThisDocument.Words(i))) = CStr(UCase(Tableau(j))) Then
                ThisDocument.Words(i).Bold = True
            End If
        Next
    Next
et là pour le "2" ca fonctionne...

Citation:
Public function test as byte
Blabla 2
End function

Public sub test
Bla
End sub
mais uniquement pour le "2"
Elstak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2006, 12h52   #3
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
bonjour

tu peux tester cette synthaxe

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Test()
Dim Plage As Object, Wd As Object
Dim x As Integer
 
Set Plage = ThisDocument.Words
 
For Each Wd In Plage
    If InStr(1, Wd, "Public") > 0 Then
    x = x + 1
    MsgBox "hu"
    End If
Next Wd
 
MsgBox x & " mots trouvés ."
End Sub


bonne apres midi
michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2006, 14h28   #4
Membre éclairé
 
Inscription : février 2006
Messages : 932
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : février 2006
Messages : 932
Points : 391
Points : 391
Bah...

ca va tout de suite mieux !!

merci silky
Elstak 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 23h54.


 
 
 
 
Partenaires

Hébergement Web