IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Comment ne pas détruire un signet


Sujet :

Contribuez

  1. #1
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut Comment ne pas détruire un signet
    Comment insérer du texte dans un signet sans le détruire.

    Insérer du texte dans un signet détruit ce signet, mais si l'on mémorise la position de départ du signet et l'on calcule la position de fin du signet, il est possible de remettre le signet sur le texte que l'on vient d'insérer.

    On n'évite pas la destruction, mais l'on remet le signet sur son emplacement de départ.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Public Sub RemplacerBM(idBM As Integer, TexteBM As String)
    Dim bs As Integer
    Dim stTemp As String
    Dim stBM As String
    Dim rng As Range
     
    'Détection de la position de début du signet
    bs = ActiveDocument.Bookmarks(idBM).Start
     
    'Récupération du nom du signet avent destruction
    stBM = ActiveDocument.Bookmarks(idBM).Name
     
    'Ecriture du texte
    ActiveDocument.Bookmarks(idBM).Range.Text = TexteBM
     
    'Affectation d'une plage de document à un objet range
    'Le départ bs et la fin étant bs augmenté de la longueur du texte inséré
    Set rng = Range(Start:=bs, End:=bs + Len(TexteBM))
     
    'Ajout du Signet sur la plage de document
    Selection.Bookmarks.Add Name:=stBM, Range:=rng
     
    End Sub
    Avec l'appel de la procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub InsererTexte()
     
     
    RemplacerBM 1, "Mon texte à moi"
     
     
    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 !

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    J'avais une solution similaire et comme abondance de bien ne nuit pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Remplacer(signet As Bookmark, LeMot As String)
    Dim deb As Integer, fin As Integer, Nom As String
        deb = signet.Start 'début du signet
        fin = signet.End   'fin du signet
        Nom = signet.Name  'nom du signet
        signet.Range.Text = LeMot 'remplace le texte contenu
        With ActiveDocument.Range(Start:=deb, End:=fin) 'emplacement du signet
            .Bookmarks.Add Name:=Nom 'ajoute le signet
        End With
    End Sub
    Appel de la procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub appel()
    Dim signet As Bookmark, LeMot As String
        Set signet = ActiveDocument.Bookmarks("blabla") 'blabla : nom du signet
        LeMot = "coucou " 'Chaîne de caractère destiné à remplacer le contenu du signet
        Remplacer signet, LeMot
    End Sub
    Tu crées une instance de l'emplacement, de mon côté je crée une instance du signet

Discussions similaires

  1. [JTable] Comment ne pas afficher les titres ?
    Par FabienBxl dans le forum Composants
    Réponses: 3
    Dernier message: 08/10/2003, 15h01
  2. [][Excel] Comment ne pas détruire les formules ?
    Par flyangelNext dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/07/2003, 11h38
  3. Réponses: 6
    Dernier message: 10/09/2002, 03h35
  4. Comment ne pas rejouer une animation après un clic ?
    Par mmmmhhh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 04/09/2002, 16h11
  5. Webbrowser : Comment ne pas prendre la page en cache
    Par cedm78 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 30/08/2002, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo