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 27/07/2011, 11h10   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 5
Points : 1
Points : 1
Par défaut [VBA]Suppression de tous les tableaux d'un document word

Bonjour je suis actuellement bloqué sur le problème suivant :

Je cherche a faire une macro qui va supprimer tous les tableaux de tous les documents word d'un répertoire .


J'ai trouver comment parcourir les fichiers d'un répertoire ,je bloque surtout sur la partie consistant a supprimer tous les tableaux d'un document du répertoire.

Si quelqu'un pouvait me donner quelque pistes.


. La partie qui supprime les tableaux de fonctionne pas et me sort une erreur de dépassement de capacité.

Pourtant si j'isole ce code en l'adaptant pour un document word ouvert cela marche tres bien

Code :
1
2
3
4
5
6
7
 
 
del = ActiveDocument.Tables.Count
    For i = del To 1 Step -1
        ActiveDocument.Tables(i).Select
        ActiveDocument.Tables(i).Delete
    Next

J'ai fais le code suivant pour l'instant

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
Sub importLignesDocumentWord()
 
Dim Fichier As String, Direction As String
Dim wordApp As Word.Application
Dim wordDoc As Word.Document
Dim i As Byte
Dim j As Integer
 
 
Dim num As Integer
Dim x As Integer
Dim y As Integer
 
 
x = 1
y = 1
j = 1
 
 
 
'---------------------------------------------------------------------------------------
 
Application.ScreenUpdating = False
 
Direction = ThisWorkbook.Path
Fichier = Dir(Direction & "\*.doc")
Do While Fichier <> "" 'boucle sur tous les fichiers .doc du repertoire
 
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = False
Set wordDoc = wordApp.Documents.Open(Direction & "\" & Fichier) 'ouverture documents word
j = j + 1
 
 
del = ActiveDocument.Tables.Count
    For i = del To 1 Step -1
        wordDoc.Tables(i).Select
        wordDoc.Tables(i).Delete
    Next
 
 
 
 
wordDoc.Close False 'fermeture documents word
wordApp.Quit
Set wordDoc = Nothing
Set wordApp = Nothing
Fichier = Dir
 
Loop
End Sub

Merci d'avance
azerty1989 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 15h20   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
Bonjour,

Citation:
Code :
1
2
3
4
For i = del To 1 Step -1
        wordApp.Tables(i).Select
        wordApp.Tables(i).Delete
    Next
Essayez de remplacer WordApp par WordDoc
Code :
1
2
3
4
For i = del To 1 Step -1
        wordDoc.Tables(i).Select
        wordDoc.Tables(i).Delete
    Next
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 16h08   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 5
Points : 1
Points : 1
Merci pour cette erreur que j'ai oublié de corriger avant de copier le code aussi. Par contre une fois cette coquille corrigé , j obtiens un erreur :
" Erreur d’exécution 6 , dépassement de capacité " à la ligne

For i = del To 1 Step -1
azerty1989 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 16h53   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 328
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 328
Points : 29 232
Points : 29 232
Salut,


Peut-être plus simple ?


Code :
1
2
3
4
5
6
7
8
Sub oli()
Dim oTbl As Table
 
For Each oTbl In ActiveDocument.Tables
oTbl.Delete
Next oTbl
 
End Sub
__________________
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 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h13.


 
 
 
 
Partenaires

Hébergement Web