Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Suppression des signets

9 réponses
Avatar
Lulu la nantaise
Bonjour à toutes et à tous,
J'ai un document Word que je manipulerai depuis Excel.
Un truc sans doute bête :
Dans mon Word j'ai des signets du style [Votre activité] nommé "Activite"
Je fais via Macro :
Selection.GoTo What:=wdGoToBookmark, Name:="Activite"
Selection.TypeText Text:="L'activité de l'entreprise est jjjj"

Tout se passe bien sauf que mon Signet "Activite" est écrasé...
Comment remédier à cela ?
Bon WE
Lulu

9 réponses

Avatar
Geo
Bonjour Lulu

Je fais via Macro :
Selection.GoTo What:=wdGoToBookmark, Name:="Activite"
Selection.TypeText Text:="L'activité de l'entreprise est jjjj"

Tout se passe bien sauf que mon Signet "Activite" est écrasé...
Comment remédier à cela ?



On s'y est tous fait prendre.

Une solution :
ActiveDocument.Bookmarks("Activite").Range.Text = _
"L'activité de l'entreprise est jjjj"

Et par prudence on met plutôt :

If ActiveDocument.Bookmarks.Exists("Activite") Then
ActiveDocument.Bookmarks("Activite").Range.Text = _
"L'activité de l'entreprise est jjjj"
else
msgbox "le signet 'Activite' n'existe pas"
end if

Ca ne corrige rien mais au moins on identifie tout de suite le pb
éventuel.

--
A+
Avatar
michdenis
Bonjour Geo,

| On s'y est tous fait prendre.
La dame veut savoir où est passé le signet à la fin de l'opération ?
Comment insérer le nouveau texte et conserver le signet ?

Serais-tu en train de nous en passer une vite ?
;-))
Avatar
Lulu la nantaise
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" a écrit dans le message de groupe de
discussion : #
Bonjour Geo,

| On s'y est tous fait prendre.
La dame veut savoir où est passé le signet à la fin de l'opération ?
Comment insérer le nouveau texte et conserver le signet ?

Serais-tu en train de nous en passer une vite ?
;-))







Avatar
michdenis
Bonjour Lulu,

Je te propose ceci :

Cette procédure remplace le texte d'un signet nommé toto.
En substituant le texte existant du signet, l'ancrage du signet
est supprimé. Il s'agit de créer un nouveau bookmark désignant
le nouveau texte inséré.

'--------------------------------------
Sub test()
Dim Texte As String, A As Integer, B As Integer
Dim T As String, Nom As String

'Le nouveau texte du signet nommé "toto"
Texte = "Tu parles d'un nouveau monde ?"

With ThisDocument
With .Bookmarks("toto")
Nom = .Name
A = .Start
B = .End
T = .Range
.Range.Text = Texte
End With
.Bookmarks.Add "toto", Range(A, A + Len(Texte))
End With
End Sub
'--------------------------------------



"Lulu la nantaise" a écrit dans le message de groupe de discussion :
OU#
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" a écrit dans le message de groupe de
discussion : #
Bonjour Geo,

| On s'y est tous fait prendre.
La dame veut savoir où est passé le signet à la fin de l'opération ?
Comment insérer le nouveau texte et conserver le signet ?

Serais-tu en train de nous en passer une vite ?
;-))







Avatar
Geo
Bonjour Lulu

C'est exactement ça : Comment insérer le nouveau texte et conserver le signet !



Nous sommes d'accord.

--
A+
Avatar
Lulu la nantaise
Ca marche pas :-(
Ca dit qu'il ne connait pas la fonction range...

"michdenis" a écrit dans le message de groupe de
discussion : u#
Bonjour Lulu,

Je te propose ceci :

Cette procédure remplace le texte d'un signet nommé toto.
En substituant le texte existant du signet, l'ancrage du signet
est supprimé. Il s'agit de créer un nouveau bookmark désignant
le nouveau texte inséré.

'--------------------------------------
Sub test()
Dim Texte As String, A As Integer, B As Integer
Dim T As String, Nom As String

'Le nouveau texte du signet nommé "toto"
Texte = "Tu parles d'un nouveau monde ?"

With ThisDocument
With .Bookmarks("toto")
Nom = .Name
A = .Start
B = .End
T = .Range
.Range.Text = Texte
End With
.Bookmarks.Add "toto", Range(A, A + Len(Texte))
End With
End Sub
'--------------------------------------



"Lulu la nantaise" a écrit dans le message de groupe
de discussion :
OU#
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" a écrit dans le message de groupe de
discussion : #
Bonjour Geo,

| On s'y est tous fait prendre.
La dame veut savoir où est passé le signet à la fin de l'opération ?
Comment insérer le nouveau texte et conserver le signet ?

Serais-tu en train de nous en passer une vite ?
;-))










Avatar
Lulu la nantaise
J'ai fait comme cela :

Sub test1()
Dim Texte As String, A As Integer, B As Integer
Dim T As String, Nom As String

'Le nouveau texte du signet nommé "toto"
Texte = "OK"

With ThisDocument
With .Bookmarks("toto")
Nom = .Name
A = .Start
B = .End
T = .Range
.Range.Text = Texte
End With

.Range(A, A + Len(Texte)).Select

.Bookmarks.Add Range:=Selection.Range, Name:="toto"


End With


End Sub

Comprends pas pourquoi ta macro fonctionne pas, ça ressemble vraiment....
Merci
Lulu

"Lulu la nantaise" a écrit dans le message de groupe de
discussion :
Ca marche pas :-(
Ca dit qu'il ne connait pas la fonction range...

"michdenis" a écrit dans le message de groupe de
discussion : u#
Bonjour Lulu,

Je te propose ceci :

Cette procédure remplace le texte d'un signet nommé toto.
En substituant le texte existant du signet, l'ancrage du signet
est supprimé. Il s'agit de créer un nouveau bookmark désignant
le nouveau texte inséré.

'--------------------------------------
Sub test()
Dim Texte As String, A As Integer, B As Integer
Dim T As String, Nom As String

'Le nouveau texte du signet nommé "toto"
Texte = "Tu parles d'un nouveau monde ?"

With ThisDocument
With .Bookmarks("toto")
Nom = .Name
A = .Start
B = .End
T = .Range
.Range.Text = Texte
End With
.Bookmarks.Add "toto", Range(A, A + Len(Texte))
End With
End Sub
'--------------------------------------



"Lulu la nantaise" a écrit dans le message de groupe
de discussion :
OU#
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" a écrit dans le message de groupe de
discussion : #
Bonjour Geo,

| On s'y est tous fait prendre.
La dame veut savoir où est passé le signet à la fin de l'opération ?
Comment insérer le nouveau texte et conserver le signet ?

Serais-tu en train de nous en passer une vite ?
;-))












Avatar
michdenis
J'ai testé la procédure sous Word 2007, Est-ce que cela
fonctionne sous d'autres versions, je ne saurais pas dire...
je ne connais pas suffisamment Word pour cela!

Peut être que tu aurais eu plus de succès si tu avais
ajouté un "Point (.)" devant l'expression suivante :
.Range(A, A + Len(Texte))

'-------------------------------------
Sub test()
Dim Texte As String, A As Integer, B As Integer
Dim T As String, Nom As String

'Le nouveau texte du signet nommé "toto"
Texte = "Tu ?"

With ThisDocument
With .Bookmarks("toto")
Nom = .Name
A = .Start
B = .End
T = .Range
.Range.Text = Texte
End With
.Bookmarks.Add Nom, .Range(A, A + Len(Texte))
End With
End Sub
'-------------------------------------




"Lulu la nantaise" a écrit dans le message de groupe de discussion :

J'ai fait comme cela :

Sub test1()
Dim Texte As String, A As Integer, B As Integer
Dim T As String, Nom As String

'Le nouveau texte du signet nommé "toto"
Texte = "OK"

With ThisDocument
With .Bookmarks("toto")
Nom = .Name
A = .Start
B = .End
T = .Range
.Range.Text = Texte
End With

.Range(A, A + Len(Texte)).Select

.Bookmarks.Add Range:=Selection.Range, Name:="toto"


End With


End Sub

Comprends pas pourquoi ta macro fonctionne pas, ça ressemble vraiment....
Merci
Lulu

"Lulu la nantaise" a écrit dans le message de groupe de
discussion :
Ca marche pas :-(
Ca dit qu'il ne connait pas la fonction range...

"michdenis" a écrit dans le message de groupe de
discussion : u#
Bonjour Lulu,

Je te propose ceci :

Cette procédure remplace le texte d'un signet nommé toto.
En substituant le texte existant du signet, l'ancrage du signet
est supprimé. Il s'agit de créer un nouveau bookmark désignant
le nouveau texte inséré.

'--------------------------------------
Sub test()
Dim Texte As String, A As Integer, B As Integer
Dim T As String, Nom As String

'Le nouveau texte du signet nommé "toto"
Texte = "Tu parles d'un nouveau monde ?"

With ThisDocument
With .Bookmarks("toto")
Nom = .Name
A = .Start
B = .End
T = .Range
.Range.Text = Texte
End With
.Bookmarks.Add "toto", Range(A, A + Len(Texte))
End With
End Sub
'--------------------------------------



"Lulu la nantaise" a écrit dans le message de groupe
de discussion :
OU#
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" a écrit dans le message de groupe de
discussion : #
Bonjour Geo,

| On s'y est tous fait prendre.
La dame veut savoir où est passé le signet à la fin de l'opération ?
Comment insérer le nouveau texte et conserver le signet ?

Serais-tu en train de nous en passer une vite ?
;-))












Avatar
Mima
Bonjour
sur la ligne :
.Bookmarks.Add "toto", Range(A, A + Len(Texte))
il manque le point renvoyant l'objet range à thisdocument...
Testé pour Word 2003
.Bookmarks.Add "toto", .Range(A, A + Len(Texte))



"Lulu la nantaise" a écrit dans le message de news:

Ca marche pas :-(
Ca dit qu'il ne connait pas la fonction range...

"michdenis" a écrit dans le message de groupe de
discussion : u#
Bonjour Lulu,

Je te propose ceci :

Cette procédure remplace le texte d'un signet nommé toto.
En substituant le texte existant du signet, l'ancrage du signet
est supprimé. Il s'agit de créer un nouveau bookmark désignant
le nouveau texte inséré.

'--------------------------------------
Sub test()
Dim Texte As String, A As Integer, B As Integer
Dim T As String, Nom As String

'Le nouveau texte du signet nommé "toto"
Texte = "Tu parles d'un nouveau monde ?"

With ThisDocument
With .Bookmarks("toto")
Nom = .Name
A = .Start
B = .End
T = .Range
.Range.Text = Texte
End With
.Bookmarks.Add "toto", Range(A, A + Len(Texte))
End With
End Sub
'--------------------------------------



"Lulu la nantaise" a écrit dans le message de groupe
de discussion :
OU#
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" a écrit dans le message de groupe de
discussion : #
Bonjour Geo,

| On s'y est tous fait prendre.
La dame veut savoir où est passé le signet à la fin de l'opération ?
Comment insérer le nouveau texte et conserver le signet ?

Serais-tu en train de nous en passer une vite ?
;-))