Dans une procédure visant à supprimer tous les paragraphes vides d'un
document, je souhaite concerver les paragraphes qui contiennent des sauts
(page, section, colonne).
Ce que je sais faire : Compter les sauts sur une page :
Set objBreaks = ActiveDocument.ActiveWindow.Panes(1).Pages(Compt).Breaks
NbSaut = objBreaks.count
Ce que j'e n'arrive pas à faire :
- définir le type du saut (wdPageBreak, wdSectionBreakNextPage...)
- définir le numéro du paragraphe qui contient le saut
Ma procédure passe en revue tous les paragraphes, mais ne les sélectionne
pas.
Ce que je cherche à faire :
If ActiveDocument.Paragraphs(X) ....contient saut de type.... then
Je travaille avec la version 2003 de Word
[ Cette réponse est faite sur le forum public Word : news://msnews.microsoft.com/microsoft.public.fr.word ] Bonjour
Dans une procédure visant à supprimer tous les paragraphes vides d'un document, je souhaite concerver les paragraphes qui contiennent des sauts (page, section, colonne).
[...]
Ce que je cherche à faire : If ActiveDocument.Paragraphs(X) ....contient saut de type.... then Je travaille avec la version 2003 de Word
Merci d'avance
Un saut n'est pas lié à un paragraphe, c'est un caractère particulier. Pour connaître les sauts de page il faut rechercher les caractères de valeur 12. Une fin de paragraphe a pour valeur 13. Donc la suite 13 12 13 correspond à un paragraphe ne contenant qu'un saut de page.
Bel exercice de programmation en vue.
La fonction rechercher remplacer peut être une piste, surtout qu'elle est très performante.
-- A+
Bonjour
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]
Bonjour
Dans une procédure visant à supprimer tous les paragraphes vides d'un document, je
souhaite concerver les paragraphes qui contiennent des sauts (page, section, colonne).
[...]
Ce que je cherche à faire :
If ActiveDocument.Paragraphs(X) ....contient saut de type.... then
Je travaille avec la version 2003 de Word
Merci d'avance
Un saut n'est pas lié à un paragraphe, c'est un caractère particulier.
Pour connaître les sauts de page il faut rechercher les caractères de
valeur 12.
Une fin de paragraphe a pour valeur 13.
Donc la suite 13 12 13 correspond à un paragraphe ne contenant qu'un
saut de page.
Bel exercice de programmation en vue.
La fonction rechercher remplacer peut être une piste, surtout qu'elle
est très performante.
[ Cette réponse est faite sur le forum public Word : news://msnews.microsoft.com/microsoft.public.fr.word ] Bonjour
Dans une procédure visant à supprimer tous les paragraphes vides d'un document, je souhaite concerver les paragraphes qui contiennent des sauts (page, section, colonne).
[...]
Ce que je cherche à faire : If ActiveDocument.Paragraphs(X) ....contient saut de type.... then Je travaille avec la version 2003 de Word
Merci d'avance
Un saut n'est pas lié à un paragraphe, c'est un caractère particulier. Pour connaître les sauts de page il faut rechercher les caractères de valeur 12. Une fin de paragraphe a pour valeur 13. Donc la suite 13 12 13 correspond à un paragraphe ne contenant qu'un saut de page.
Bel exercice de programmation en vue.
La fonction rechercher remplacer peut être une piste, surtout qu'elle est très performante.
-- A+
Mima
Merci Geo pour cette réponse Je n'aurai pas cherché dans cette direction... a+
"Geo" a écrit dans le message de news:
Bonjour
[ Cette réponse est faite sur le forum public Word : news://msnews.microsoft.com/microsoft.public.fr.word ] Bonjour
Dans une procédure visant à supprimer tous les paragraphes vides d'un document, je souhaite concerver les paragraphes qui contiennent des sauts (page, section, colonne).
[...]
Ce que je cherche à faire : If ActiveDocument.Paragraphs(X) ....contient saut de type.... then Je travaille avec la version 2003 de Word
Merci d'avance
Un saut n'est pas lié à un paragraphe, c'est un caractère particulier. Pour connaître les sauts de page il faut rechercher les caractères de valeur 12. Une fin de paragraphe a pour valeur 13. Donc la suite 13 12 13 correspond à un paragraphe ne contenant qu'un saut de page.
Bel exercice de programmation en vue.
La fonction rechercher remplacer peut être une piste, surtout qu'elle est très performante.
-- A+
Merci Geo pour cette réponse
Je n'aurai pas cherché dans cette direction...
a+
"Geo" <Geo@sans.pub> a écrit dans le message de news:
mn.da967da1374066f7.41568@sans.pub...
Bonjour
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ] Bonjour
Dans une procédure visant à supprimer tous les paragraphes vides d'un
document, je souhaite concerver les paragraphes qui contiennent des sauts
(page, section, colonne).
[...]
Ce que je cherche à faire :
If ActiveDocument.Paragraphs(X) ....contient saut de type.... then
Je travaille avec la version 2003 de Word
Merci d'avance
Un saut n'est pas lié à un paragraphe, c'est un caractère particulier.
Pour connaître les sauts de page il faut rechercher les caractères de
valeur 12.
Une fin de paragraphe a pour valeur 13.
Donc la suite 13 12 13 correspond à un paragraphe ne contenant qu'un saut
de page.
Bel exercice de programmation en vue.
La fonction rechercher remplacer peut être une piste, surtout qu'elle est
très performante.
Merci Geo pour cette réponse Je n'aurai pas cherché dans cette direction... a+
"Geo" a écrit dans le message de news:
Bonjour
[ Cette réponse est faite sur le forum public Word : news://msnews.microsoft.com/microsoft.public.fr.word ] Bonjour
Dans une procédure visant à supprimer tous les paragraphes vides d'un document, je souhaite concerver les paragraphes qui contiennent des sauts (page, section, colonne).
[...]
Ce que je cherche à faire : If ActiveDocument.Paragraphs(X) ....contient saut de type.... then Je travaille avec la version 2003 de Word
Merci d'avance
Un saut n'est pas lié à un paragraphe, c'est un caractère particulier. Pour connaître les sauts de page il faut rechercher les caractères de valeur 12. Une fin de paragraphe a pour valeur 13. Donc la suite 13 12 13 correspond à un paragraphe ne contenant qu'un saut de page.
Bel exercice de programmation en vue.
La fonction rechercher remplacer peut être une piste, surtout qu'elle est très performante.
-- A+
Geo
Re
En fait ce n'est pas si simple. Le caractère 12 correspond à un saut, reste à déterminer de quoi. Il y a bien une propriété de paragraphe qui est PageBreakBefore qui indique si le paragraphe est précédé d'un saut de page.
Pour les sections on a la propriété PageSetup.SectionStart. mais j'avoue que je patauge un peu, il va falloir y passer un peu de temps pour bien comprendre.
-- A+
Re
En fait ce n'est pas si simple.
Le caractère 12 correspond à un saut, reste à déterminer de quoi.
Il y a bien une propriété de paragraphe qui est
PageBreakBefore qui indique si le paragraphe est précédé d'un saut de
page.
Pour les sections on a la propriété PageSetup.SectionStart.
mais j'avoue que je patauge un peu, il va falloir y passer un peu de
temps pour bien comprendre.
En fait ce n'est pas si simple. Le caractère 12 correspond à un saut, reste à déterminer de quoi. Il y a bien une propriété de paragraphe qui est PageBreakBefore qui indique si le paragraphe est précédé d'un saut de page.
Pour les sections on a la propriété PageSetup.SectionStart. mais j'avoue que je patauge un peu, il va falloir y passer un peu de temps pour bien comprendre.
-- A+
Mima
Bonsoir
En effet, j'ai fais une boucle pour tester la valeur du dernier caractère de chaque paragraphe et je trouve bien tous ceux correspondant à un saut.
J'ai ensuite essayé la propriété PageBreakBefore, mais là le résultat est moins probant !
A la ligne : "ActiveDocument.Paragraphs(X).PageBreakBefore", j'ai "0" pour unique résultat.
Réponse : paragraphe n°5 - Val dern car = 12 - PageBreakBefore = 0
Ce que je cherche à faire dans un tableau :
- Récupérer le type du saut
- Localiser le saut
- Supprimer les paragraphes vides
- Repositionner le saut
- Re insérer le saut
En écrivant cela, il faudra aussi que je récupère les paramètres de mises en pages pour les saut de section...
Bref, je n'ai pas fini
a+
"Geo" a écrit dans le message de news:
Re
En fait ce n'est pas si simple. Le caractère 12 correspond à un saut, reste à déterminer de quoi. Il y a bien une propriété de paragraphe qui est PageBreakBefore qui indique si le paragraphe est précédé d'un saut de page.
Pour les sections on a la propriété PageSetup.SectionStart. mais j'avoue que je patauge un peu, il va falloir y passer un peu de temps pour bien comprendre.
-- A+
Bonsoir
En effet, j'ai fais une boucle pour tester la valeur du dernier caractère de
chaque paragraphe et je trouve bien tous ceux correspondant à un saut.
J'ai ensuite essayé la propriété PageBreakBefore, mais là le résultat est
moins probant !
A la ligne : "ActiveDocument.Paragraphs(X).PageBreakBefore", j'ai "0" pour
unique résultat.
Réponse : paragraphe n°5 - Val dern car = 12 - PageBreakBefore = 0
Ce que je cherche à faire dans un tableau :
- Récupérer le type du saut
- Localiser le saut
- Supprimer les paragraphes vides
- Repositionner le saut
- Re insérer le saut
En écrivant cela, il faudra aussi que je récupère les paramètres de mises en
pages pour les saut de section...
Bref, je n'ai pas fini
a+
"Geo" <Geo@sans.pub> a écrit dans le message de news:
mn.db607da17456d7d2.41568@sans.pub...
Re
En fait ce n'est pas si simple.
Le caractère 12 correspond à un saut, reste à déterminer de quoi.
Il y a bien une propriété de paragraphe qui est
PageBreakBefore qui indique si le paragraphe est précédé d'un saut de
page.
Pour les sections on a la propriété PageSetup.SectionStart.
mais j'avoue que je patauge un peu, il va falloir y passer un peu de temps
pour bien comprendre.
Réponse : paragraphe n°5 - Val dern car = 12 - PageBreakBefore = 0
Ce que je cherche à faire dans un tableau :
- Récupérer le type du saut
- Localiser le saut
- Supprimer les paragraphes vides
- Repositionner le saut
- Re insérer le saut
En écrivant cela, il faudra aussi que je récupère les paramètres de mises en pages pour les saut de section...
Bref, je n'ai pas fini
a+
"Geo" a écrit dans le message de news:
Re
En fait ce n'est pas si simple. Le caractère 12 correspond à un saut, reste à déterminer de quoi. Il y a bien une propriété de paragraphe qui est PageBreakBefore qui indique si le paragraphe est précédé d'un saut de page.
Pour les sections on a la propriété PageSetup.SectionStart. mais j'avoue que je patauge un peu, il va falloir y passer un peu de temps pour bien comprendre.
-- A+
Geo
Bonsoir
J'ai ensuite essayé la propriété PageBreakBefore, mais là le résultat est moins probant !
A la ligne : "ActiveDocument.Paragraphs(X).PageBreakBefore", j'ai "0" pour unique résultat.
Pas mieux.
Ce que je cherche à faire dans un tableau : - Récupérer le type du saut - Localiser le saut - Supprimer les paragraphes vides - Repositionner le saut - Re insérer le saut
En écrivant cela, il faudra aussi que je récupère les paramètres de mises en pages pour les saut de section...
Bref, je n'ai pas fini
En effet. Votre description est certainement un peu synthétique, mais pour supprimer des paragraphes vides, le plus simple est d'utiliser la fonction de recherche : on remplace tous les ^p^p par ^p, à faire passer éventuellement plusieurs fois. Ça ne supprime ni les saut de page, ni les sauts de section puisque le saut est un caractère et donc il n'y a pas deux fins de paragraphes successives quand un saut de page ou deux section est entre.
-- A+
Bonsoir
J'ai ensuite essayé la propriété PageBreakBefore, mais là le résultat est moins probant
!
A la ligne : "ActiveDocument.Paragraphs(X).PageBreakBefore", j'ai "0" pour unique
résultat.
Pas mieux.
Ce que je cherche à faire dans un tableau :
- Récupérer le type du saut
- Localiser le saut
- Supprimer les paragraphes vides
- Repositionner le saut
- Re insérer le saut
En écrivant cela, il faudra aussi que je récupère les paramètres de mises en pages pour
les saut de section...
Bref, je n'ai pas fini
En effet.
Votre description est certainement un peu synthétique, mais pour
supprimer des paragraphes vides, le plus simple est d'utiliser la
fonction de recherche : on remplace tous les ^p^p par ^p, à faire
passer éventuellement plusieurs fois.
Ça ne supprime ni les saut de page, ni les sauts de section puisque le
saut est un caractère et donc il n'y a pas deux fins de paragraphes
successives quand un saut de page ou deux section est entre.
J'ai ensuite essayé la propriété PageBreakBefore, mais là le résultat est moins probant !
A la ligne : "ActiveDocument.Paragraphs(X).PageBreakBefore", j'ai "0" pour unique résultat.
Pas mieux.
Ce que je cherche à faire dans un tableau : - Récupérer le type du saut - Localiser le saut - Supprimer les paragraphes vides - Repositionner le saut - Re insérer le saut
En écrivant cela, il faudra aussi que je récupère les paramètres de mises en pages pour les saut de section...
Bref, je n'ai pas fini
En effet. Votre description est certainement un peu synthétique, mais pour supprimer des paragraphes vides, le plus simple est d'utiliser la fonction de recherche : on remplace tous les ^p^p par ^p, à faire passer éventuellement plusieurs fois. Ça ne supprime ni les saut de page, ni les sauts de section puisque le saut est un caractère et donc il n'y a pas deux fins de paragraphes successives quand un saut de page ou deux section est entre.
-- A+
Mima
Bonjour Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux conserver la mise en page originale. Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs "espace avant", "espace après", "taille de la police" du paragraphe et j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au suivant en fonction des circonstances (début ou fin de document, tableau...). Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin de pouvoir, soit garder le paragraphe lié, soit remettre les saut en bonne place. a+
"Geo" a écrit dans le message de news:
Bonsoir
J'ai ensuite essayé la propriété PageBreakBefore, mais là le résultat est moins probant !
A la ligne : "ActiveDocument.Paragraphs(X).PageBreakBefore", j'ai "0" pour unique résultat.
Pas mieux.
Ce que je cherche à faire dans un tableau : - Récupérer le type du saut - Localiser le saut - Supprimer les paragraphes vides - Repositionner le saut - Re insérer le saut
En écrivant cela, il faudra aussi que je récupère les paramètres de mises en pages pour les saut de section...
Bref, je n'ai pas fini
En effet. Votre description est certainement un peu synthétique, mais pour supprimer des paragraphes vides, le plus simple est d'utiliser la fonction de recherche : on remplace tous les ^p^p par ^p, à faire passer éventuellement plusieurs fois. Ça ne supprime ni les saut de page, ni les sauts de section puisque le saut est un caractère et donc il n'y a pas deux fins de paragraphes successives quand un saut de page ou deux section est entre.
-- A+
Bonjour
Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux
conserver la mise en page originale.
Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs
"espace avant", "espace après", "taille de la police" du paragraphe et
j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au
suivant en fonction des circonstances (début ou fin de document,
tableau...).
Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin de
pouvoir, soit garder le paragraphe lié, soit remettre les saut en bonne
place.
a+
"Geo" <Geo@sans.pub> a écrit dans le message de news:
mn.dc6c7da1d917636d.41568@sans.pub...
Bonsoir
J'ai ensuite essayé la propriété PageBreakBefore, mais là le résultat est
moins probant !
A la ligne : "ActiveDocument.Paragraphs(X).PageBreakBefore", j'ai "0"
pour unique résultat.
Pas mieux.
Ce que je cherche à faire dans un tableau :
- Récupérer le type du saut
- Localiser le saut
- Supprimer les paragraphes vides
- Repositionner le saut
- Re insérer le saut
En écrivant cela, il faudra aussi que je récupère les paramètres de mises
en pages pour les saut de section...
Bref, je n'ai pas fini
En effet.
Votre description est certainement un peu synthétique, mais pour supprimer
des paragraphes vides, le plus simple est d'utiliser la fonction de
recherche : on remplace tous les ^p^p par ^p, à faire passer
éventuellement plusieurs fois.
Ça ne supprime ni les saut de page, ni les sauts de section puisque le
saut est un caractère et donc il n'y a pas deux fins de paragraphes
successives quand un saut de page ou deux section est entre.
Bonjour Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux conserver la mise en page originale. Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs "espace avant", "espace après", "taille de la police" du paragraphe et j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au suivant en fonction des circonstances (début ou fin de document, tableau...). Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin de pouvoir, soit garder le paragraphe lié, soit remettre les saut en bonne place. a+
"Geo" a écrit dans le message de news:
Bonsoir
J'ai ensuite essayé la propriété PageBreakBefore, mais là le résultat est moins probant !
A la ligne : "ActiveDocument.Paragraphs(X).PageBreakBefore", j'ai "0" pour unique résultat.
Pas mieux.
Ce que je cherche à faire dans un tableau : - Récupérer le type du saut - Localiser le saut - Supprimer les paragraphes vides - Repositionner le saut - Re insérer le saut
En écrivant cela, il faudra aussi que je récupère les paramètres de mises en pages pour les saut de section...
Bref, je n'ai pas fini
En effet. Votre description est certainement un peu synthétique, mais pour supprimer des paragraphes vides, le plus simple est d'utiliser la fonction de recherche : on remplace tous les ^p^p par ^p, à faire passer éventuellement plusieurs fois. Ça ne supprime ni les saut de page, ni les sauts de section puisque le saut est un caractère et donc il n'y a pas deux fins de paragraphes successives quand un saut de page ou deux section est entre.
-- A+
Geo
Bonjour
Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux conserver la mise en page originale. Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs "espace avant", "espace après", "taille de la police" du paragraphe et j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au suivant en fonction des circonstances (début ou fin de document, tableau...). Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin de pouvoir, soit garder le paragraphe lié, soit remettre les saut en bonne place.
Ah ! oui .... Vous êtes sur de ne pas vouloir passer à Excel ? Parce que là au moins la taille des cases est fixe. J'ai peur que vous ne suiviez les pas de Sisyphe. A toutes fins utiles je vous signale la propriété Range.Information, avec la valeur wdVerticalPositionRelativeToPage, elle vous donne la position du texte dans la page. Ça vous permettra au moins de vérifier que les texte est au bon endroit.
-- A+
Bonjour
Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux conserver la
mise en page originale.
Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs "espace
avant", "espace après", "taille de la police" du paragraphe et j'injecte la somme de
ces valeurs soit au paragraphe précédent, soit au suivant en fonction des circonstances
(début ou fin de document, tableau...).
Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin de pouvoir,
soit garder le paragraphe lié, soit remettre les saut en bonne place.
Ah ! oui ....
Vous êtes sur de ne pas vouloir passer à Excel ? Parce que là au moins
la taille des cases est fixe.
J'ai peur que vous ne suiviez les pas de Sisyphe.
A toutes fins utiles je vous signale la propriété Range.Information,
avec la valeur wdVerticalPositionRelativeToPage, elle vous donne la
position du texte dans la page.
Ça vous permettra au moins de vérifier que les texte est au bon
endroit.
Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux conserver la mise en page originale. Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs "espace avant", "espace après", "taille de la police" du paragraphe et j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au suivant en fonction des circonstances (début ou fin de document, tableau...). Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin de pouvoir, soit garder le paragraphe lié, soit remettre les saut en bonne place.
Ah ! oui .... Vous êtes sur de ne pas vouloir passer à Excel ? Parce que là au moins la taille des cases est fixe. J'ai peur que vous ne suiviez les pas de Sisyphe. A toutes fins utiles je vous signale la propriété Range.Information, avec la valeur wdVerticalPositionRelativeToPage, elle vous donne la position du texte dans la page. Ça vous permettra au moins de vérifier que les texte est au bon endroit.
-- A+
Mima
C'est vrai que la programation dans Excel est bien plus facile...Mais cela n'empêche pas de relever des défits ! J'ai réussi à 90% ce que je voulais obtenir. Il me reste à traiter ce problème de saut de page ou de section. Quand on utilise l'enregistreur de macro , il donne le type de saut. Il doit bien avoir un moyen de faire l'inverse et de faire renvoyer par macro ce type d'information. Encore merci pour votre aide a+
"Geo" a écrit dans le message de news:
Bonjour
Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux conserver la mise en page originale. Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs "espace avant", "espace après", "taille de la police" du paragraphe et j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au suivant en fonction des circonstances (début ou fin de document, tableau...). Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin de pouvoir, soit garder le paragraphe lié, soit remettre les saut en bonne place.
Ah ! oui .... Vous êtes sur de ne pas vouloir passer à Excel ? Parce que là au moins la taille des cases est fixe. J'ai peur que vous ne suiviez les pas de Sisyphe. A toutes fins utiles je vous signale la propriété Range.Information, avec la valeur wdVerticalPositionRelativeToPage, elle vous donne la position du texte dans la page. Ça vous permettra au moins de vérifier que les texte est au bon endroit.
-- A+
C'est vrai que la programation dans Excel est bien plus facile...Mais cela
n'empêche pas de relever des défits !
J'ai réussi à 90% ce que je voulais obtenir. Il me reste à traiter ce
problème de saut de page ou de section.
Quand on utilise l'enregistreur de macro , il donne le type de saut.
Il doit bien avoir un moyen de faire l'inverse et de faire renvoyer par
macro ce type d'information.
Encore merci pour votre aide
a+
"Geo" <Geo@sans.pub> a écrit dans le message de news:
mn.e3c97da1e96ab4e8.41568@sans.pub...
Bonjour
Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux
conserver la mise en page originale.
Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs
"espace avant", "espace après", "taille de la police" du paragraphe et
j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au
suivant en fonction des circonstances (début ou fin de document,
tableau...).
Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin
de pouvoir, soit garder le paragraphe lié, soit remettre les saut en
bonne place.
Ah ! oui ....
Vous êtes sur de ne pas vouloir passer à Excel ? Parce que là au moins la
taille des cases est fixe.
J'ai peur que vous ne suiviez les pas de Sisyphe.
A toutes fins utiles je vous signale la propriété Range.Information, avec
la valeur wdVerticalPositionRelativeToPage, elle vous donne la position du
texte dans la page.
Ça vous permettra au moins de vérifier que les texte est au bon endroit.
C'est vrai que la programation dans Excel est bien plus facile...Mais cela n'empêche pas de relever des défits ! J'ai réussi à 90% ce que je voulais obtenir. Il me reste à traiter ce problème de saut de page ou de section. Quand on utilise l'enregistreur de macro , il donne le type de saut. Il doit bien avoir un moyen de faire l'inverse et de faire renvoyer par macro ce type d'information. Encore merci pour votre aide a+
"Geo" a écrit dans le message de news:
Bonjour
Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux conserver la mise en page originale. Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs "espace avant", "espace après", "taille de la police" du paragraphe et j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au suivant en fonction des circonstances (début ou fin de document, tableau...). Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin de pouvoir, soit garder le paragraphe lié, soit remettre les saut en bonne place.
Ah ! oui .... Vous êtes sur de ne pas vouloir passer à Excel ? Parce que là au moins la taille des cases est fixe. J'ai peur que vous ne suiviez les pas de Sisyphe. A toutes fins utiles je vous signale la propriété Range.Information, avec la valeur wdVerticalPositionRelativeToPage, elle vous donne la position du texte dans la page. Ça vous permettra au moins de vérifier que les texte est au bon endroit.
-- A+
Geo
Bonsoir
Voici le résultat guère encourageant, d'une série d'essai.
PageBreakBefore retourne toujours zéro. La seule façon de savoir s'il y a un saut de page serait donc un caractère à 12 et que le paragraphe qui suit est dans le même section que celui qui précède. Pas pratique mais efficace. Pour savoir dans quelle section est un paragraphe : MonParagraphe.Range.Sections(1).index
Tous les paragraphes d'une section ont la même valeur pour PageSetup.SectionStart, y compris l'éventuel caractère de saut de section qui est en fin de section. La nouvelle section ne commence qu'au paragraphe suivant.
Bien qu'ayant mis un saut de colonne, je n'ai pas pu obtenir la valeur correspondante.
La première section a pour valeur : page impaire, je ne vois pas pourquoi.
Saut continu a l'air bien détecté.
Testé aussi sur 2010 avec les mêmes résultats, j'ai fait remonter le problème.
bon courage.
-- A+
Bonsoir
Voici le résultat guère encourageant, d'une série d'essai.
PageBreakBefore retourne toujours zéro.
La seule façon de savoir s'il y a un saut de page serait donc un
caractère à 12 et que le paragraphe qui suit est dans le même section
que celui qui précède. Pas pratique mais efficace.
Pour savoir dans quelle section est un paragraphe :
MonParagraphe.Range.Sections(1).index
Tous les paragraphes d'une section ont la même valeur pour
PageSetup.SectionStart, y compris l'éventuel caractère de saut de
section qui est en fin de section. La nouvelle section ne commence
qu'au paragraphe suivant.
Bien qu'ayant mis un saut de colonne, je n'ai pas pu obtenir la valeur
correspondante.
La première section a pour valeur : page impaire, je ne vois pas
pourquoi.
Saut continu a l'air bien détecté.
Testé aussi sur 2010 avec les mêmes résultats, j'ai fait remonter le
problème.
Voici le résultat guère encourageant, d'une série d'essai.
PageBreakBefore retourne toujours zéro. La seule façon de savoir s'il y a un saut de page serait donc un caractère à 12 et que le paragraphe qui suit est dans le même section que celui qui précède. Pas pratique mais efficace. Pour savoir dans quelle section est un paragraphe : MonParagraphe.Range.Sections(1).index
Tous les paragraphes d'une section ont la même valeur pour PageSetup.SectionStart, y compris l'éventuel caractère de saut de section qui est en fin de section. La nouvelle section ne commence qu'au paragraphe suivant.
Bien qu'ayant mis un saut de colonne, je n'ai pas pu obtenir la valeur correspondante.
La première section a pour valeur : page impaire, je ne vois pas pourquoi.
Saut continu a l'air bien détecté.
Testé aussi sur 2010 avec les mêmes résultats, j'ai fait remonter le problème.
bon courage.
-- A+
michdenis
Est-ce que ceci fait le travail ?
'------------------------------------- Sub Supprimer_Paragraphes() Dim Nb As Long, A As Long Nb = ThisDocument.Paragraphs.Count For A = Nb To 1 Step -1 With ThisDocument.Paragraphs If InStr(1, .Item(A).Range.Text, _ Chr(12), vbTextCompare) > 0 Then If Len(Trim(.Item(A).Range.Text)) = 2 Then 'Afficher le message n'est pas obligatoire ! MsgBox "paragraphe avec un saut de page" End If Else If Len(Trim(.Item(A).Range.Text)) = 1 Then .Item(A).Range.Delete End If End If End With Next End Sub '-------------------------------------
"Mima" a écrit dans le message de groupe de discussion : e299# C'est vrai que la programation dans Excel est bien plus facile...Mais cela n'empêche pas de relever des défits ! J'ai réussi à 90% ce que je voulais obtenir. Il me reste à traiter ce problème de saut de page ou de section. Quand on utilise l'enregistreur de macro , il donne le type de saut. Il doit bien avoir un moyen de faire l'inverse et de faire renvoyer par macro ce type d'information. Encore merci pour votre aide a+
"Geo" a écrit dans le message de news:
Bonjour
Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux conserver la mise en page originale. Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs "espace avant", "espace après", "taille de la police" du paragraphe et j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au suivant en fonction des circonstances (début ou fin de document, tableau...). Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin de pouvoir, soit garder le paragraphe lié, soit remettre les saut en bonne place.
Ah ! oui .... Vous êtes sur de ne pas vouloir passer à Excel ? Parce que là au moins la taille des cases est fixe. J'ai peur que vous ne suiviez les pas de Sisyphe. A toutes fins utiles je vous signale la propriété Range.Information, avec la valeur wdVerticalPositionRelativeToPage, elle vous donne la position du texte dans la page. Ça vous permettra au moins de vérifier que les texte est au bon endroit.
-- A+
Est-ce que ceci fait le travail ?
'-------------------------------------
Sub Supprimer_Paragraphes()
Dim Nb As Long, A As Long
Nb = ThisDocument.Paragraphs.Count
For A = Nb To 1 Step -1
With ThisDocument.Paragraphs
If InStr(1, .Item(A).Range.Text, _
Chr(12), vbTextCompare) > 0 Then
If Len(Trim(.Item(A).Range.Text)) = 2 Then
'Afficher le message n'est pas obligatoire !
MsgBox "paragraphe avec un saut de page"
End If
Else
If Len(Trim(.Item(A).Range.Text)) = 1 Then
.Item(A).Range.Delete
End If
End If
End With
Next
End Sub
'-------------------------------------
"Mima" <nonspamecemima@voila.fr> a écrit dans le message de groupe de discussion :
e299#7CoKHA.4648@TK2MSFTNGP06.phx.gbl...
C'est vrai que la programation dans Excel est bien plus facile...Mais cela
n'empêche pas de relever des défits !
J'ai réussi à 90% ce que je voulais obtenir. Il me reste à traiter ce
problème de saut de page ou de section.
Quand on utilise l'enregistreur de macro , il donne le type de saut.
Il doit bien avoir un moyen de faire l'inverse et de faire renvoyer par
macro ce type d'information.
Encore merci pour votre aide
a+
"Geo" <Geo@sans.pub> a écrit dans le message de news:
mn.e3c97da1e96ab4e8.41568@sans.pub...
Bonjour
Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux
conserver la mise en page originale.
Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs
"espace avant", "espace après", "taille de la police" du paragraphe et
j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au
suivant en fonction des circonstances (début ou fin de document,
tableau...).
Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin
de pouvoir, soit garder le paragraphe lié, soit remettre les saut en
bonne place.
Ah ! oui ....
Vous êtes sur de ne pas vouloir passer à Excel ? Parce que là au moins la
taille des cases est fixe.
J'ai peur que vous ne suiviez les pas de Sisyphe.
A toutes fins utiles je vous signale la propriété Range.Information, avec
la valeur wdVerticalPositionRelativeToPage, elle vous donne la position du
texte dans la page.
Ça vous permettra au moins de vérifier que les texte est au bon endroit.
'------------------------------------- Sub Supprimer_Paragraphes() Dim Nb As Long, A As Long Nb = ThisDocument.Paragraphs.Count For A = Nb To 1 Step -1 With ThisDocument.Paragraphs If InStr(1, .Item(A).Range.Text, _ Chr(12), vbTextCompare) > 0 Then If Len(Trim(.Item(A).Range.Text)) = 2 Then 'Afficher le message n'est pas obligatoire ! MsgBox "paragraphe avec un saut de page" End If Else If Len(Trim(.Item(A).Range.Text)) = 1 Then .Item(A).Range.Delete End If End If End With Next End Sub '-------------------------------------
"Mima" a écrit dans le message de groupe de discussion : e299# C'est vrai que la programation dans Excel est bien plus facile...Mais cela n'empêche pas de relever des défits ! J'ai réussi à 90% ce que je voulais obtenir. Il me reste à traiter ce problème de saut de page ou de section. Quand on utilise l'enregistreur de macro , il donne le type de saut. Il doit bien avoir un moyen de faire l'inverse et de faire renvoyer par macro ce type d'information. Encore merci pour votre aide a+
"Geo" a écrit dans le message de news:
Bonjour
Non, je ne peux pas uitiliser la méthode Rechercher/Remplacer car je veux conserver la mise en page originale. Pour cela, avant de supprimer un paragraphe vide, je récupère les valeurs "espace avant", "espace après", "taille de la police" du paragraphe et j'injecte la somme de ces valeurs soit au paragraphe précédent, soit au suivant en fonction des circonstances (début ou fin de document, tableau...). Voilà pourquoi je cherche à récuperer les sauts et leurs propriétés afin de pouvoir, soit garder le paragraphe lié, soit remettre les saut en bonne place.
Ah ! oui .... Vous êtes sur de ne pas vouloir passer à Excel ? Parce que là au moins la taille des cases est fixe. J'ai peur que vous ne suiviez les pas de Sisyphe. A toutes fins utiles je vous signale la propriété Range.Information, avec la valeur wdVerticalPositionRelativeToPage, elle vous donne la position du texte dans la page. Ça vous permettra au moins de vérifier que les texte est au bon endroit.