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 29/11/2007, 14h42   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Par défaut Supprimer une page donnée de plusieurs document words avec des noms diffèrents

Tout d'abord bonjour à tous ^^

Je suis nouveau sur ce forum (coucou François ) et j'aurais un problème à vous soumettre.

J'ai 2600 rapports dont le nombre de pages est identique et j'aurais souhaité trouver une solution me permettant de supprimer la huitième pas de chacun de ces documents sans avoir à les ouvrir un par un .

Merci d'avance pour les conseils eventuels que vous seriez à même de me donner.

Alahsan
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 14h59   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Bonjour et bienvenue sur les forums Office de DVP.

Moi c'est pas François.

Le problème majeur de Word est que la numérotation des pages est dynamique.
On peut par exemple récupérer un numéro de page contenant un mot précis, mais supprimer une page est pas possible.

Pour preuve, si tu imprimes ton document sur deux imprimantes différentes, le nombre de page va changer.


Par contre, si tu connais les délimiteurs de la partie à supprimer, on peut la sélectionner et la supprimer.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 15h03   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Tout d'abord merci de ta réponse rapide .

Mon problème c'est que justement sur cette page en question il y a une image particulièrement lourde dont je n'ai pas l'utilité, d'où l'utilité de supprimer cette page sur chaque rapport afin d'avoir un stockage plus "léger".
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 15h13   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
On peut supprimer l'image.

cette image est-elle la première ?

Peut-on la repérer facilement ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 15h26   #5
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Disons que l'image se situe à la toute fin du document, c'est donc aussi la dernière page qui est à supprimer.
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 16h34   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Alors c'est assez facile, il suffit de compter les figures, c'est soit les Shapes soit les InlineShapes, et supprimer la dernière.

Essaie ceci :

Code :
1
2
3
4
5
6
 
Sub CountShape()
Debug.print "InLinesShape "  = ActiveDocument.InlineShapes.count
Debug.print "Shapes " = ActiveDocument.Shapes.count
 
End Sub
Dis moi ce que ça donne.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 18h48   #7
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Quand je mets le code que tu m'a donné dans une macro VBA je me retrouve avec un message d'erreur me disant : erreur d'execution '13' : incompatibilité de type.

Ce sont 7 images qui composent ma dernière page en fait.
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 19h16   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Pourrais-tu mettre un exemple sur le forum.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 19h49   #9
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
J'ai mis une impression écran de la page en question en pièce jointe.

Bon par contre l'impression écran a été prise sur writer parce qu'à cette heure ci je suis chez moi et qu eje n'ai pas la licence office ^^.

donc quand vous allez voir la gueule de la bavure ça va en faire rigoler plus d'une je pense ^^.
Images attachées
Type de fichier : gif page.GIF (37,7 Ko, 5 affichages)
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 19h56   #10
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Avec un image, je ne peux rien faire, j'aurais besoin d'un fichier Word, pour chercher les objets à supprimer.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 20h00   #11
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Ah ok !!! Mais le noeud du problème justement c'est que ce fichier word est devenu super lourd à cause de cette dernière page (un peu moins de 4 Mos en fait :/)

Je vais voir si la version compressée rentre comme pièce attachée.
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 20h01   #12
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
A la rigueur, ne laisse qu'une image on verra comment elle est dans le document.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 20h04   #13
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Une image de?

J'avoue ne pas avoir bien saisi le sens de ta dernière réponse.

Et j'ai vérifié la version compressé du document word fait tout de même 800 Ko donc ça dépasse largement la limite autorisée.
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 20h06   #14
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Tu me dis que la dernière page comporte plusieurs images.
Si tu enlèves toutes les images sauf une, je pourrrais voir comment elle est insérée dans le document pour l'enlever.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 20h29   #15
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Pour te dire même si je supprime quasi tout le document en ne laissant qu'une image sur les 7 je me retrouve quand même avec un fichier de 650 Ko :/.

Je continue à chercher une solution pour lier le fichier.
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 21h11   #16
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Bonsoir Oli, Alahsan,
Peut-être ne sont-ce pas des shapes, ni des inlineShapes, ni des Oleobjects mais tu peux toujours tester
Code :
1
2
3
4
5
Sub KillShapeRange()
    Set LeDoc = ActiveDocument.Range
    MsgBox LeDoc.ShapeRange.Count
    LeDoc.ShapeRange.Delete
End Sub
et si tu as une erreur, ce n'est pas des "shaperange" non plus
Tu dis
A+

Pour avoir le N° de la dernière page, c'est
Code :
1
2
3
    Selection.EndKey Unit:=wdStory
    NumPage = Selection.Information(wdActiveEndPageNumber)
    MsgBox NumPage
On peut l'avoir directement mais je ne sais plus comment sélectionner la page, le code m'échappe
A+

PS - Tu as testé ma réponse ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 21h24   #17
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Etant donné que chez moi je n'ai que Open Office je n'ai pas encore pu tester ta réponse , mais je te dis ça demain dès que je peux ^^

Merci de votre aide en tous cas ^^
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 09h20   #18
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Citation:
Envoyé par ouskel'n'or Voir le message
Bonsoir Oli, Alahsan,
Peut-être ne sont-ce pas des shapes, ni des inlineShapes, ni des Oleobjects mais tu peux toujours tester
Code :
1
2
3
4
5
Sub KillShapeRange()
    Set LeDoc = ActiveDocument.Range
    MsgBox LeDoc.ShapeRange.Count
    LeDoc.ShapeRange.Delete
End Sub
et si tu as une erreur, ce n'est pas des "shaperange" non plus
Tu dis
A+

Pour avoir le N° de la dernière page, c'est
Code :
1
2
3
    Selection.EndKey Unit:=wdStory
    NumPage = Selection.Information(wdActiveEndPageNumber)
    MsgBox NumPage
On peut l'avoir directement mais je ne sais plus comment sélectionner la page, le code m'échappe
A+

PS - Tu as testé ma réponse ?
Donc , après test des codes que tu m'a donné j'obtiens 19 pour le premier et 8 pour le second ^^

Et après coup je me suis aperçu que ta macro m'a effectivement éffacé une des 7 images contenues dans ma dernière page (donc en théorie l'image en question serait du format concerné mais pas les autres.)

Et effectivement j'ai bien 8 pages sur mon document.
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 13h27   #19
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
A partir des éléments que vous m'avez donné j'ai pu établir un petit code qui me permets de compter le nombre d'éléments.

Code :
1
2
3
4
5
6
7
 Sub CountShape()
 
    Set LeDoc = ActiveDocument.Range
    MsgBox ("InlinesShapes = " & LeDoc.InlineShapes.Count)
    MsgBox ("ShapeRange = " & LeDoc.ShapeRange.Count)
 
End Sub
ça me retourne les valeurs respectives suivantes :
6
19
Alahsan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 14h09   #20
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Le principe devra être la suppression des derniers éléments. Et il vaut mieux commencer par la fin.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli 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 01h54.


 
 
 
 
Partenaires

Hébergement Web