OVH Cloud OVH Cloud

Recherches dans texte

3 réponses
Avatar
rené cigognes
Bonjour, suite au soit disant codage de la bible, je cherche comment faire pour trier un texte de la façon suivante:
à partir de la lettre n°1 d'un texte, extraire et mettre en place pour impression, de toutes les lettres avec un espacement de UN.
La même chose avec un espacement de DEUX, ainsi de suite avec une possibilité d'espace illimité, (ou presque!)
Exemple avec 1/UN: BoNjOuRsUiTeAuSoIt= BNORUTASI
Exemple avec 1/DEUX: BonJouRsuIteAusOit=BJRIAO
Possibilité de partir de la deuxième ou de la troisième lettre.
Exemple avec 2/UN: bOnJoUrSuItEaUsOiT=OJUSIEUOT
Exemple avec 2/DEUX: bOnjOurSuiTeaUsoIt= OOSTUI

Est-ce possible avec VBA ? Merci de vos sujétions ou soluces complètes ;-))

3 réponses

Avatar
Geo
Bonjour rené


Bonjour, suite au soit disant codage de la bible, je cherche comment
faire pour trier un texte de la façon suivante:
à partir de la lettre n°1 d'un texte, extraire et mettre en place
pour impression, de toutes les lettres avec un espacement de UN. La
même chose avec un espacement de DEUX, ainsi de suite avec une
possibilité d'espace illimité, (ou presque!)
Exemple avec 1/UN: BoNjOuRsUiTeAuSoIt= BNORUTASI
Exemple avec 1/DEUX: BonJouRsuIteAusOit=BJRIAO
Possibilité de partir de la deuxième ou de la troisième lettre.
Exemple avec 2/UN: bOnJoUrSuItEaUsOiT=OJUSIEUOT
Exemple avec 2/DEUX: bOnjOurSuiTeaUsoIt= OOSTUI

Est-ce possible avec VBA ? Merci de vos sujétions ou soluces
complètes ;-))


Ca ne me parait pas compliqué à faire en vba puisque Word est très
fortiche en traitement de texte. :-)
Ton premier exemple devrait pouvoir se faire ainsi (testé) :

Sub Bible()
Dim Resultat As String
Dim i As Long
Resultat = ""
For i = 1 To ActiveDocument.Characters.Count Step 2
Resultat = Resultat + Mid(ActiveDocument.Range.Text, i, 1)
Next
End Sub

Pour les autres tu as deux nombres à changer.

Bien sur il y a des variantes comme se déplacer de caractère en
caractère et en supprimer 1 tous les n.
Tu vas pouvoir t'amuser pendant les vacances.

--

A+

Avatar
rené cigognes
Merci à Géo pour sa réponse. C'est vraiment Géotrouvetout.
Si tu découvres une solution plus rapide faisant appel aux macro, je suis preneur :-)
Merci encore. Amitiés


Bonjour rené


Bonjour, suite au soit disant codage de la bible, je cherche comment
faire pour trier un texte de la façon suivante:
à partir de la lettre n°1 d'un texte, extraire et mettre en place
pour impression, de toutes les lettres avec un espacement de UN. La
même chose avec un espacement de DEUX, ainsi de suite avec une
possibilité d'espace illimité, (ou presque!)
Exemple avec 1/UN: BoNjOuRsUiTeAuSoIt= BNORUTASI
Exemple avec 1/DEUX: BonJouRsuIteAusOit=BJRIAO
Possibilité de partir de la deuxième ou de la troisième lettre.
Exemple avec 2/UN: bOnJoUrSuItEaUsOiT=OJUSIEUOT
Exemple avec 2/DEUX: bOnjOurSuiTeaUsoIt= OOSTUI

Est-ce possible avec VBA ? Merci de vos sujétions ou soluces
complètes ;-))


Ca ne me parait pas compliqué à faire en vba puisque Word est très
fortiche en traitement de texte. :-)
Ton premier exemple devrait pouvoir se faire ainsi (testé) :

Sub Bible()
Dim Resultat As String
Dim i As Long
Resultat = ""
For i = 1 To ActiveDocument.Characters.Count Step 2
Resultat = Resultat + Mid(ActiveDocument.Range.Text, i, 1)
Next
End Sub

Pour les autres tu as deux nombres à changer.

Bien sur il y a des variantes comme se déplacer de caractère en
caractère et en supprimer 1 tous les n.
Tu vas pouvoir t'amuser pendant les vacances.

--

A+






Avatar
Geo
Bonjour rené

Sans macro ;-)

Exemple avec 1/UN: BoNjOuRsUiTeAuSoIt= BNORUTASI
Point d'insertion au début du document

Édition remplacer (?)(?) par 1 en cochant caractères génériques
Tu as oublié la variante de partir à la deuxième lettre, il suffit
d'avancer la point d'insertion de 1 caractère

Exemple avec 1/DEUX: BonJouRsuIteAusOit=BJRIAO


Édition remplacer (?)(??) par 1 en

Possibilité de partir de la deuxième ou de la troisième lettre.
Exemple avec 2/UN: bOnJoUrSuItEaUsOiT=OJUSIEUOT
Suffit de mettre le point d'insertion entre la première et la deuxième

lettre

Exemple avec 2/DEUX: bOnjOurSuiTeaUsoIt= OOSTUI
Un de plus


Si tu veux le faire en vba l'enregistreur de macro est ton ami.

--

A+