Suppression des signets

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Geo
Le #20987071
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+
michdenis
Le #20987281
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 ?
;-))
Lulu la nantaise
Le #20987951
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" 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 ?
;-))







michdenis
Le #20988051
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" OU#
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" 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 ?
;-))







Geo
Le #20989201
Bonjour Lulu

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



Nous sommes d'accord.

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

"michdenis" 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" de discussion :
OU#
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" 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 ?
;-))










Lulu la nantaise
Le #20990951
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" discussion :
Ca marche pas :-(
Ca dit qu'il ne connait pas la fonction range...

"michdenis" 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" de discussion :
OU#
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" 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 ?
;-))












michdenis
Le #20991821
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"
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" discussion :
Ca marche pas :-(
Ca dit qu'il ne connait pas la fonction range...

"michdenis" 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" de discussion :
OU#
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" 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 ?
;-))












Mima
Le #21005601
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"
Ca marche pas :-(
Ca dit qu'il ne connait pas la fonction range...

"michdenis" 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" de discussion :
OU#
C'est exactement ça : Comment insérer le nouveau texte et conserver le
signet !
Merci beaucoup,
Lulu

"michdenis" 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 ?
;-))












Publicité
Poster une réponse
Anonyme