Merci à vous tous
Ma première macro personnelle fonctionne, grâce à votre aide. La voici:
Option Explicit
Rem ---------------------------------------------------------------------------
Function Remplacer1SChPar1Car(Sch As String, Car As String) As String
Dim monDocument as Object
Dim jeCherche As Object, trouv As Variant
Dim x As Long
monDocument=ThisComponent
jeCherche=monDocument.createSearchDescriptor
with jeCherche
.SearchString= Sch
.SearchWords=false
end with
trouv=monDocument.findAll(jeCherche)
print "Nombre d'occurences: " & cstr(trouv.count)
for x=0 to trouv.count-1
trouv(x).CharBackColor=1234567 'Fond vert sombre
trouv(x).String= Car
Remplacer1SChPar1Car= "Fonction Car"
next
End Function
Rem --------------------------------------------------------------------
Sub RemplacerNSChParNCar()
Dim SChPar1Car As String
Remplacer1SChPar1Car("<B>","")
Remplacer1SChPar1Car("</B>","")
Remplacer1SChPar1Car("<BR>","")
Remplacer1SChPar1Car("=E0","à")
Remplacer1SChPar1Car("=E2","â")
Remplacer1SChPar1Car("=E7","ç")
Remplacer1SChPar1Car("=E8","è")
Remplacer1SChPar1Car("=E9","é")
Remplacer1SChPar1Car("=EA","ê")
Remplacer1SChPar1Car("=EE","î")
Remplacer1SChPar1Car("=F4","ô")
Remplacer1SChPar1Car("=F9","ù")
Remplacer1SChPar1Car("=20","")
End Sub
Cette macro me permet de traiter toutes les sous chaînes d'un fichier texte.
Je retiens:
- Que l'affichage du contenu d'un module ne permet pas de reconnaître les fonctions, ni les macros.
Macros et fonctions sont représentées par leur nom, sans autre indication.
- Que Dans l'exécution d'une macro,avec la méthode pas à pas, on n'explore pas
le contenu des fonctions
- Que le lancement d'une macro sélectionnée dans un module s'exécute, en
l'absence
d'une erreur de codage.
Je m'en vais de ce pas croquer un chocolat, je pense l'avoir mérité.
Tous mes voeux à la liste pour l'an que vint
Cordialement
Papy
Francois Gatto a écrit :
Bonjour,
Je constate que tu es tenace ;)
Je voudrais juste te conseiller
- de lire et relire les fondamentaux des instructions sBasic,
- de récrire une macro qui semble ne pas fonctionner en la décomposant
en sous éléments ET de vérifier au fur et à mesure que chaque élément
(procédure ou fonction) donne bien le résultat escompté.
- de pas oublier de garder à l'esprit d'une part ce que l'on souhaîte
obtenir, d'autre part les moyens que l'on met en oeuvre pour y aboutir.
Souvent, nez dans le guidon, on ne prête pas/plus assez attention à
certains "détails".
Dans ton cas,
avec l'appel de la fonction Remplacer1SchPar1Car("=E8", "é"), que
souhaîtes-tu ?
1) rechercher une chaine (ou fragment) => "=E8"
2) remplacer cette chaine par une autre => "é".
Or, dans le corps de la procédure je lis ceci :
> with jeCherche
> .SearchString= "Sch"
> .SearchWords=false
> end with
ce qui sous entend qu'avec .SearchString= "Sch", tu forces la fonction
à ne rechercher que la chaine "Sch", c'est à dire les caractères _Sch_.
Ce n'est bien entendu pas cela que tu désires.
Ton but, en appelant la fonction Remplacer1SchPar1Car(Sch As String,
Car As String) est de trouver la chaine passée en premier paramètre
Sch As String et de la remplacer par une autre, second paramètre, Car
As String.
MAIS tu as confondu le litteral "Sch" avec le contenu de la variable
Sch, et de fait ta macro ne répond pas exactement bien qu'elle semble
fonctionner correctement.
Il te faut donc modifier .SearchString= "Sch" en .SearchString= Sch,
ainsi que trouv(x).String="Car" par trouv(x).String=Car
Voila, je te laisse continuer tes découvertes.
Francois
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]