1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| Sub MiseAjour()
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlSh As Excel.Worksheet
Dim sttemp As String, Ligne As Integer, MaListeDeSignets As Variant
'liste des signets qui correspond également au nombre de valeurs à récupérer
MaListeDeSignets = Array("Numéro", "Imputation", "Dénomination", "Adresse", "Tél", "Fax", "Courriel", "Agissant", "Intitulé", "Lieu", "Date", "Description", "Du", "Au", "A", "B", "C", "Frais", "Observations", "PhraseA", "SommeC", "Annulation") 'les signets supplémentaires doivent être ajoutés ici
' MON PROBLEME INTERVIENT ICI CAR J'AI ENTRÉ LE CHEMIN D'ACCES
Set xlApp = New Excel.Application
Set xlWb = xlApp.Workbooks.Open("C:\Documents and Settings\Pierre\Bureau\Engagement_Données")
Set xlSh = xlWb.Sheets(4)
'on boucle sur la liste
For Ligne = 0 To UBound(MaListeDeSignets) 'ubound sert à compter le nombre de valeur contenu dans la variable "MaListeDeSignets"
'on recupere les valeurs dans le fichier excel
sttemp = xlSh.Cells(Ligne + 1, 2)
'Trf du contenu de la cellule vers le signet
Call BookmarkNewValue(MaListeDeSignets(Ligne), sttemp)
Next
xlWb.Close
xlApp.Quit
Set xlWb = Nothing
Set xlApp = Nothing
End Sub
Sub BookmarkNewValue(ByVal NomSignet As String, ByVal NouvelleValeurSignet As String)
If ActiveDocument.Bookmarks.Exists(NomSignet) Then
ActiveDocument.Bookmarks(NomSignet).Select
ActiveDocument.Unprotect
Selection = NouvelleValeurSignet 'le bug est ici... le remplacement de la valeur supprime le signet
Selection.Bookmarks.Add Name:=NomSignet, Range:=Selection.Range
Selection.MoveRight Unit:=wdCharacter, Count:=1
ActiveDocument.Protect wdAllowOnlyFormFields
End If
End Sub |
Partager