Bonjour
Dim i As Integer
For i = 1 To ActiveDocument.Paragraphs.Count
If ActiveDocument.Paragraphs(1).Range.Font.Hidden = True Then
ActiveDocument.Paragraphs(1).Range.Delete
End If
Next i
End Sub
Ce bout de code doit supprimer tout texte correspondant à une police
masquée.
Apparemment, il ne trouve pas cette police masquée.
ActiveDocument.Paragraphs(1).Range.Font.Hidden = false
J'ai posé un espion mais je n'arrive pas à voir quelle est la variable
susceptible d'être modifiée.
Est ce qu'il y a un moyen de connaître quelles sont les variables qui sont
modifiées dans une boucle.
J'ai une boucle avec trois paragraphes. Les deux premiers en arial, le
troisième en arial masqué.
End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
Circé http://faqword.free.fr
rico34 vient de nous annoncer :
Bonjour Dim i As Integer For i = 1 To ActiveDocument.Paragraphs.Count If ActiveDocument.Paragraphs(1).Range.Font.Hidden = True Then ActiveDocument.Paragraphs(1).Range.Delete End If Next i End Sub
Ce bout de code doit supprimer tout texte correspondant à une police masquée. Apparemment, il ne trouve pas cette police masquée. ActiveDocument.Paragraphs(1).Range.Font.Hidden = false
J'ai posé un espion mais je n'arrive pas à voir quelle est la variable susceptible d'être modifiée. Est ce qu'il y a un moyen de connaître quelles sont les variables qui sont modifiées dans une boucle. J'ai une boucle avec trois paragraphes. Les deux premiers en arial, le troisième en arial masqué.
Merci pour les réponses.
Bonjour,
Pourquoi ne pas utiliser le recherche-remplace ?... La macro n'est-elle
pas superfétatoire ?
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Circé
http://faqword.free.fr
rico34 vient de nous annoncer :
Bonjour
Dim i As Integer
For i = 1 To ActiveDocument.Paragraphs.Count
If ActiveDocument.Paragraphs(1).Range.Font.Hidden = True Then
ActiveDocument.Paragraphs(1).Range.Delete
End If
Next i
End Sub
Ce bout de code doit supprimer tout texte correspondant à une police
masquée.
Apparemment, il ne trouve pas cette police masquée.
ActiveDocument.Paragraphs(1).Range.Font.Hidden = false
J'ai posé un espion mais je n'arrive pas à voir quelle est la
variable susceptible d'être modifiée.
Est ce qu'il y a un moyen de connaître quelles sont les variables qui
sont modifiées dans une boucle.
J'ai une boucle avec trois paragraphes. Les deux premiers en arial,
le troisième en arial masqué.
End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
Circé http://faqword.free.fr
rico34 vient de nous annoncer :
Bonjour Dim i As Integer For i = 1 To ActiveDocument.Paragraphs.Count If ActiveDocument.Paragraphs(1).Range.Font.Hidden = True Then ActiveDocument.Paragraphs(1).Range.Delete End If Next i End Sub
Ce bout de code doit supprimer tout texte correspondant à une police masquée. Apparemment, il ne trouve pas cette police masquée. ActiveDocument.Paragraphs(1).Range.Font.Hidden = false
J'ai posé un espion mais je n'arrive pas à voir quelle est la variable susceptible d'être modifiée. Est ce qu'il y a un moyen de connaître quelles sont les variables qui sont modifiées dans une boucle. J'ai une boucle avec trois paragraphes. Les deux premiers en arial, le troisième en arial masqué.
Merci pour les réponses.
Anacoluthe
Bonjour !
'rico34' nous a écrit ...
Dim i As Integer For i = 1 To ActiveDocument.Paragraphs.Count If ActiveDocument.Paragraphs(1).Range.Font.Hidden = True Then ActiveDocument.Paragraphs(1).Range.Delete End If Next i End Sub
Si votre document fait 50 paragraphes vous bouclez 50 fois sur le 1er paragraphe Paragraphs(1) !!!!!!!!!!!!!!!
Par ailleurs quand vous énumérez une collection en supprimant des items de cette collection, vous risquez d'avoir de mauvais résultats selon que la collection est re-comptée ou pas. J'explique : si vous supprimez l'item N il y a 1 élément de moins si bien que le N+1ème passe en item N et n'est plus concerné au tour suivant N+1. Pour être certain d'éviter ce problème logique énumérez votre collection à partir des derniers.
Ce qui devrait vous donner en reprenant votre syntaxe (qui n'utilise pas For Each Next ni le RR de Circé pourtant tous deux meilleurs ) :
Dim i As Integer For i = ActiveDocument.Paragraphs.Count To 1 Step -1 If ActiveDocument.Paragraphs(i).Range.Font.Hidden = True Then ActiveDocument.Paragraphs(i).Range.Delete End If Next i End Sub
C'est mieux ?
Anacoluthe « Il y a trois sortes de personnes : ceux qui savent compter et ceux qui ne savent pas. » - Benjamin DERECA
Bonjour !
'rico34' nous a écrit ...
Dim i As Integer
For i = 1 To ActiveDocument.Paragraphs.Count
If ActiveDocument.Paragraphs(1).Range.Font.Hidden = True Then
ActiveDocument.Paragraphs(1).Range.Delete
End If
Next i
End Sub
Si votre document fait 50 paragraphes vous bouclez 50 fois
sur le 1er paragraphe Paragraphs(1) !!!!!!!!!!!!!!!
Par ailleurs quand vous énumérez une collection en supprimant
des items de cette collection, vous risquez d'avoir de mauvais
résultats selon que la collection est re-comptée ou pas.
J'explique : si vous supprimez l'item N il y a 1 élément de moins
si bien que le N+1ème passe en item N et n'est plus concerné au
tour suivant N+1. Pour être certain d'éviter ce problème logique
énumérez votre collection à partir des derniers.
Ce qui devrait vous donner en reprenant votre syntaxe
(qui n'utilise pas For Each Next ni le RR de Circé pourtant
tous deux meilleurs ) :
Dim i As Integer
For i = ActiveDocument.Paragraphs.Count To 1 Step -1
If ActiveDocument.Paragraphs(i).Range.Font.Hidden = True Then
ActiveDocument.Paragraphs(i).Range.Delete
End If
Next i
End Sub
C'est mieux ?
Anacoluthe
« Il y a trois sortes de personnes : ceux qui savent compter
et ceux qui ne savent pas. »
- Benjamin DERECA
Dim i As Integer For i = 1 To ActiveDocument.Paragraphs.Count If ActiveDocument.Paragraphs(1).Range.Font.Hidden = True Then ActiveDocument.Paragraphs(1).Range.Delete End If Next i End Sub
Si votre document fait 50 paragraphes vous bouclez 50 fois sur le 1er paragraphe Paragraphs(1) !!!!!!!!!!!!!!!
Par ailleurs quand vous énumérez une collection en supprimant des items de cette collection, vous risquez d'avoir de mauvais résultats selon que la collection est re-comptée ou pas. J'explique : si vous supprimez l'item N il y a 1 élément de moins si bien que le N+1ème passe en item N et n'est plus concerné au tour suivant N+1. Pour être certain d'éviter ce problème logique énumérez votre collection à partir des derniers.
Ce qui devrait vous donner en reprenant votre syntaxe (qui n'utilise pas For Each Next ni le RR de Circé pourtant tous deux meilleurs ) :
Dim i As Integer For i = ActiveDocument.Paragraphs.Count To 1 Step -1 If ActiveDocument.Paragraphs(i).Range.Font.Hidden = True Then ActiveDocument.Paragraphs(i).Range.Delete End If Next i End Sub
C'est mieux ?
Anacoluthe « Il y a trois sortes de personnes : ceux qui savent compter et ceux qui ne savent pas. » - Benjamin DERECA
Geo
Pourquoi ne pas utiliser le recherche-remplace ?...
Et ça évite de seposer des questions sur le fait que tout le paragraphe, y compris la marque de fin de paragraphe, est masqué ou pas.
-- A+
Pourquoi ne pas utiliser le recherche-remplace ?...
Et ça évite de seposer des questions sur le fait que tout le
paragraphe, y compris la marque de fin de paragraphe, est masqué ou
pas.
Pourquoi ne pas utiliser le recherche-remplace ?...
Et ça évite de seposer des questions sur le fait que tout le paragraphe, y compris la marque de fin de paragraphe, est masqué ou pas.
Oui je pense que c'est effectivement moins risqué...
Circé
rico34
"Anacoluthe" a écrit dans le message de news: ur8P%
Bonjour !
'rico34' nous a écrit ...
Dim i As Integer For i = 1 To ActiveDocument.Paragraphs.Count If ActiveDocument.Paragraphs(1).Range.Font.Hidden = True Then ActiveDocument.Paragraphs(1).Range.Delete End If Next i End Sub
Si votre document fait 50 paragraphes vous bouclez 50 fois sur le 1er paragraphe Paragraphs(1) !!!!!!!!!!!!!!!
Par ailleurs quand vous énumérez une collection en supprimant des items de cette collection, vous risquez d'avoir de mauvais résultats selon que la collection est re-comptée ou pas. J'explique : si vous supprimez l'item N il y a 1 élément de moins si bien que le N+1ème passe en item N et n'est plus concerné au tour suivant N+1. Pour être certain d'éviter ce problème logique énumérez votre collection à partir des derniers.
Ce qui devrait vous donner en reprenant votre syntaxe (qui n'utilise pas For Each Next ni le RR de Circé pourtant tous deux meilleurs ) :
Dim i As Integer For i = ActiveDocument.Paragraphs.Count To 1 Step -1 If ActiveDocument.Paragraphs(i).Range.Font.Hidden = True Then ActiveDocument.Paragraphs(i).Range.Delete End If Next i End Sub
J'ai récupéré le bout de code pour supprimer des liens hypertexts que tu
m'avais passé. J'ai surement modifié de façon incorrecte. Je l'ai adapté à la suppression de tableau Sub SupprimerTousTableaux() ' Dim i As Integer For i = 1 To ActiveDocument.Tables.Count ActiveDocument.Tables(i).ConvertToText (wdSeparateByTabs) Next i End Sub
Je l'ai adapté à la suppression de police masquée. Le premier correspond au résultat souhaité. Le deuxième non.
Merci en tout cas.
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de news:
ur8P%231EQGHA.1040@TK2MSFTNGP12.phx.gbl...
Bonjour !
'rico34' nous a écrit ...
Dim i As Integer
For i = 1 To ActiveDocument.Paragraphs.Count
If ActiveDocument.Paragraphs(1).Range.Font.Hidden = True Then
ActiveDocument.Paragraphs(1).Range.Delete
End If
Next i
End Sub
Si votre document fait 50 paragraphes vous bouclez 50 fois
sur le 1er paragraphe Paragraphs(1) !!!!!!!!!!!!!!!
Par ailleurs quand vous énumérez une collection en supprimant
des items de cette collection, vous risquez d'avoir de mauvais
résultats selon que la collection est re-comptée ou pas.
J'explique : si vous supprimez l'item N il y a 1 élément de moins
si bien que le N+1ème passe en item N et n'est plus concerné au
tour suivant N+1. Pour être certain d'éviter ce problème logique
énumérez votre collection à partir des derniers.
Ce qui devrait vous donner en reprenant votre syntaxe
(qui n'utilise pas For Each Next ni le RR de Circé pourtant
tous deux meilleurs ) :
Dim i As Integer
For i = ActiveDocument.Paragraphs.Count To 1 Step -1
If ActiveDocument.Paragraphs(i).Range.Font.Hidden = True Then
ActiveDocument.Paragraphs(i).Range.Delete
End If
Next i
End Sub
J'ai récupéré le bout de code pour supprimer des liens hypertexts que tu
m'avais passé.
J'ai surement modifié de façon incorrecte.
Je l'ai adapté à la suppression de tableau
Sub SupprimerTousTableaux()
'
Dim i As Integer
For i = 1 To ActiveDocument.Tables.Count
ActiveDocument.Tables(i).ConvertToText (wdSeparateByTabs)
Next i
End Sub
Je l'ai adapté à la suppression de police masquée. Le premier correspond au
résultat souhaité. Le deuxième non.
"Anacoluthe" a écrit dans le message de news: ur8P%
Bonjour !
'rico34' nous a écrit ...
Dim i As Integer For i = 1 To ActiveDocument.Paragraphs.Count If ActiveDocument.Paragraphs(1).Range.Font.Hidden = True Then ActiveDocument.Paragraphs(1).Range.Delete End If Next i End Sub
Si votre document fait 50 paragraphes vous bouclez 50 fois sur le 1er paragraphe Paragraphs(1) !!!!!!!!!!!!!!!
Par ailleurs quand vous énumérez une collection en supprimant des items de cette collection, vous risquez d'avoir de mauvais résultats selon que la collection est re-comptée ou pas. J'explique : si vous supprimez l'item N il y a 1 élément de moins si bien que le N+1ème passe en item N et n'est plus concerné au tour suivant N+1. Pour être certain d'éviter ce problème logique énumérez votre collection à partir des derniers.
Ce qui devrait vous donner en reprenant votre syntaxe (qui n'utilise pas For Each Next ni le RR de Circé pourtant tous deux meilleurs ) :
Dim i As Integer For i = ActiveDocument.Paragraphs.Count To 1 Step -1 If ActiveDocument.Paragraphs(i).Range.Font.Hidden = True Then ActiveDocument.Paragraphs(i).Range.Delete End If Next i End Sub
J'ai récupéré le bout de code pour supprimer des liens hypertexts que tu
m'avais passé. J'ai surement modifié de façon incorrecte. Je l'ai adapté à la suppression de tableau Sub SupprimerTousTableaux() ' Dim i As Integer For i = 1 To ActiveDocument.Tables.Count ActiveDocument.Tables(i).ConvertToText (wdSeparateByTabs) Next i End Sub
Je l'ai adapté à la suppression de police masquée. Le premier correspond au résultat souhaité. Le deuxième non.
Merci en tout cas.
rico34
"Circé" a écrit dans le message de news:
Bonjour,
Pourquoi ne pas utiliser le recherche-remplace ?... La macro n'est-elle pas superfétatoire ?
End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
Je n'arrive pas à supprimer les tableaux en police masquée avec cette macro. Mais les paragraphes en police masquée sont supprimés.
Anacoluthe
Bonjour !
'rico34' nous a écrit ...
J'ai récupéré le bout de code pour supprimer des liens hypertexts que tu m'avais passé.
Précisément, relisez ma réponse précédente. Dans le cas des liens hypertexte (LHT) , quand on a 100 LHT à supprimer on peut supprimer 100 fois le 1er LHT, car une fois le 1er supprimé c'est le deuxième qui devient premier etc. Ce principe ne peut s'appliquer à toutes les collections et surtout pas si vous ne supprimez pas TOUS les items : si vous ne supprimez pas le 1er parce qu'il n'est pas masqué par exemple, vous bouclez 100 fois sur le premier sans rien faire. C'est simplement logique non ?
Anacoluthe « Il y a trois sortes de personnes : ceux qui savent compter et ceux qui ne savent pas. » - Benjamin DERECA
Bonjour !
'rico34' nous a écrit ...
J'ai récupéré le bout de code pour supprimer des liens hypertexts que tu
m'avais passé.
Précisément, relisez ma réponse précédente. Dans le cas des liens
hypertexte (LHT) , quand on a 100 LHT à supprimer on peut supprimer
100 fois le 1er LHT, car une fois le 1er supprimé c'est le deuxième
qui devient premier etc. Ce principe ne peut s'appliquer à toutes
les collections et surtout pas si vous ne supprimez pas TOUS les
items : si vous ne supprimez pas le 1er parce qu'il n'est pas masqué
par exemple, vous bouclez 100 fois sur le premier sans rien faire.
C'est simplement logique non ?
Anacoluthe
« Il y a trois sortes de personnes : ceux qui savent compter
et ceux qui ne savent pas. »
- Benjamin DERECA
J'ai récupéré le bout de code pour supprimer des liens hypertexts que tu m'avais passé.
Précisément, relisez ma réponse précédente. Dans le cas des liens hypertexte (LHT) , quand on a 100 LHT à supprimer on peut supprimer 100 fois le 1er LHT, car une fois le 1er supprimé c'est le deuxième qui devient premier etc. Ce principe ne peut s'appliquer à toutes les collections et surtout pas si vous ne supprimez pas TOUS les items : si vous ne supprimez pas le 1er parce qu'il n'est pas masqué par exemple, vous bouclez 100 fois sur le premier sans rien faire. C'est simplement logique non ?
Anacoluthe « Il y a trois sortes de personnes : ceux qui savent compter et ceux qui ne savent pas. » - Benjamin DERECA