OVH Cloud OVH Cloud

VBA suppirmer des pages si...

4 réponses
Avatar
Loupiot
Bonjour,
J'avais cru m'en sortir tout seul comme un grand, finalement ce fut comme un
gland.
Donc, voici ma question :
Je souhaite écrire une macro qui fasse ceci :
Dans un doc. qui comprend n sections, supprimer toutes les sections avec
leur contenu si elles contiennent le caractère # situé en 10me position sur
la première ligne.
Pour l'instant j'en ai bricolé une qui ne m'en efface qu'une partie
seulement.
Il faut donc que je la lance plusieurs fois de suite pour avoir tout
nettoyé.
Auriez-vous la solution?
Et si vous savez aussi comment faire ça avec "page" à la place de "section"
c'est encore mieux.
Merci d'avoir jeté un oeil.
Bernard

4 réponses

Avatar
Anacoluthe
Bonjour !

'Loupiot' nous a écrit ...
Je souhaite écrire une macro qui fasse ceci :
Dans un doc. qui comprend n sections, supprimer toutes les sections avec
leur contenu si elles contiennent le caractère # situé en 10me position sur
la première ligne.
Auriez-vous la solution?


La solution de quoi ?
Pouvez-vous expliquer ce qui /vous/ pose problème exactement ?
Là vous exposez votre projet - qui avouez-le intéresse
bien peu de personnes, vu que des documents avec un # en
10ème position... - mais à aucun moment vous ne dites
ce qui vous gêne précisément. À lire comme ça, ça semble simple.
Vous cherchez l'adresse de quelqu'un pour vous écrire une macro
ou vous voulez la faire vous-même ? :-)

Anacoluthe
« Je ne cherche pas à connaître les réponses,
je cherche à comprendre les questions. »
- CONFUCIUS

Avatar
Loupiot
Anacoluthe a pris le temps de m'instruire, et je l'en remercie.
La solution de quoi ?
Pouvez-vous expliquer ce qui /vous/ pose problème exactement ?
À lire comme ça, ça semble simple.
Vous cherchez l'adresse de quelqu'un pour vous écrire une macro
ou vous voulez la faire vous-même ? :-)


Mes excuses.
Je cherche à comprendre quel code VBA permet :
1. de retrouver un caractère donné (je dit # à titre d'exemple) situé en une
position donnée (je dit 10me position à titre d'exemple) depuis le début
d'une section.
2. de sélectionner pour l'effacer la section si elle contient ce caractère à
cette position.
3. de faire cela (1 et 2) sur l'ensemble d'un document.

Si on me file la macro complète, c'est bien. Si en plus j'arrive à la
comprendre pour m'y adapter c'est encore mieux.

Si je ne suis toujours pas clair, je m'en excuse et je n'aurais qu'à
chercher encore.

Merci d'avance. Bernard


'Loupiot' nous a écrit ...
Je souhaite écrire une macro qui fasse ceci :
Dans un doc. qui comprend n sections, supprimer toutes les sections
avec leur contenu si elles contiennent le caractère # situé en 10me
position sur la première ligne.
Auriez-vous la solution?




Avatar
Anacoluthe
Bonjour !

'Loupiot' nous a écrit ...
Je cherche à comprendre quel code VBA permet :
1. de retrouver un caractère donné (je dit # à titre d'exemple) situé en une
position donnée (je dit 10me position à titre d'exemple) depuis le début
d'une section.


Dim MonRange as Range
Set MonRange = ActiveDocument.Sections(1)
If MonRange.Chararcters(10) = "#" Then

2. de sélectionner pour l'effacer la section si elle contient ce caractère à
cette position.


MonRange.Delete

3. de faire cela (1 et 2) sur l'ensemble d'un document.


Faites une boucle For Next. Commes vous êtes susceptible
de /détruire/ les sections parcourues, il faut partir de la fin.

Si on me file la macro complète, c'est bien. Si en plus j'arrive à la
comprendre pour m'y adapter c'est encore mieux.


Oui c'est /beaucoup/ mieux !
La macro est quasiment écrite ci-dessus. Si je la livre toute faite
sur ce forum, je perds une quantité /phénoménale/ de points d'AMIS
pour avois commis une macro farpaitement superfétatoire :-D )))

Anacoluthe
« Rien de tel que des amis à la maison
pour enlever les araignées du plafond. »
- Philippe OBRECHT

Avatar
Loupiot
Anacoluthe a pris le temps de m'instruire, et je l'en remercie.
Si on me file la macro complète, c'est bien. Si en plus j'arrive à la
comprendre pour m'y adapter c'est encore mieux.
Oui c'est /beaucoup/ mieux !

La macro est quasiment écrite ci-dessus. Si je la livre toute faite
sur ce forum, je perds une quantité /phénoménale/ de points d'AMIS
pour avois commis une macro farpaitement superfétatoire :-D )))


Merci, j'ai su retrouver ce qu'il fallait pour que ça marche.
Je suis plutôt Excelien et je commence à peine à entrevoir comment
fonctionnent les Range.

Merci encore.