Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1110 connectés 

 



Dernière réponse
Sujet : VBA Word signets
lucaconfortola Bonjour,
Dans un document word je voudrais exécuter une série de commandes uniquement sur une portion de texte.
Pour ça j'ai cré un signet au point où je voudrais que la macro s'arrête mais... là je bloque.
J'ai pensé récupérer le numéro de paragraphe du signet et de le comparer avec le paragraphe en cours mais je n'y arrive pas.
Compter les lignes et répéter autant de fois mes commandes ne fonctionne pas non plus car il y a des lignes de titre, des lignes vides... et j'obtiens trop de répétitions.
Avez-vous une idée de comment faire?
Merci
Luca

Code :
  1. Dim nblignes As Integer
  2. Dim l As Integer
  3.     nblignes = ActiveDocument.ComputeStatistics(wdStatisticLines)
  4.     Selection.StartOf unit:=wdStory
  5.     Do Until l = nblignes
  6.     With Selection.Find.Font
  7.         .Bold = True
  8.         .Underline = wdUnderlineSingle
  9.     End With
  10.     With Selection.Find
  11.         .Text = "^?"
  12.         .Replacement.Text = ""
  13.     End With
  14.     Selection.Find.Execute
  15.     Selection.MoveLeft unit:=wdCharacter, Count:=1
  16.     Selection.TypeText Text:="§"
  17.     Selection.MoveDown unit:=wdLine, Count:=1
  18.     l = l + 1
  19.    
  20.     Loop


 
Et aussi
 

Code :
  1. Dim position_curseur As Long
  2. Dim position_signet As Long
  3. If ActiveDocument.Bookmarks.Exists("fin" ) = False Then
  4. récupérer la position actuelle du curseur
  5. ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="fin"
  6. Else
  7. position_curseur = ????
  8. position_signet = ????
  9. end if
  10. if position_curseur = position_signet then
  11. GoTo terminer
  12. else
  13. exécuter mes commandes de remplacement
  14. end if
  15. terminer :
  16. End Sub


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
lucaconfortola Bonjour,
Dans un document word je voudrais exécuter une série de commandes uniquement sur une portion de texte.
Pour ça j'ai cré un signet au point où je voudrais que la macro s'arrête mais... là je bloque.
J'ai pensé récupérer le numéro de paragraphe du signet et de le comparer avec le paragraphe en cours mais je n'y arrive pas.
Compter les lignes et répéter autant de fois mes commandes ne fonctionne pas non plus car il y a des lignes de titre, des lignes vides... et j'obtiens trop de répétitions.
Avez-vous une idée de comment faire?
Merci
Luca

Code :
  1. Dim nblignes As Integer
  2. Dim l As Integer
  3.     nblignes = ActiveDocument.ComputeStatistics(wdStatisticLines)
  4.     Selection.StartOf unit:=wdStory
  5.     Do Until l = nblignes
  6.     With Selection.Find.Font
  7.         .Bold = True
  8.         .Underline = wdUnderlineSingle
  9.     End With
  10.     With Selection.Find
  11.         .Text = "^?"
  12.         .Replacement.Text = ""
  13.     End With
  14.     Selection.Find.Execute
  15.     Selection.MoveLeft unit:=wdCharacter, Count:=1
  16.     Selection.TypeText Text:="§"
  17.     Selection.MoveDown unit:=wdLine, Count:=1
  18.     l = l + 1
  19.    
  20.     Loop


 
Et aussi
 

Code :
  1. Dim position_curseur As Long
  2. Dim position_signet As Long
  3. If ActiveDocument.Bookmarks.Exists("fin" ) = False Then
  4. récupérer la position actuelle du curseur
  5. ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="fin"
  6. Else
  7. position_curseur = ????
  8. position_signet = ????
  9. end if
  10. if position_curseur = position_signet then
  11. GoTo terminer
  12. else
  13. exécuter mes commandes de remplacement
  14. end if
  15. terminer :
  16. End Sub


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR