Bonjour à tous,
Voici mon souci.
Sous windows 2000, jai un classeur excel qui reprend les références de documents word sous forme dindex.
Ce classeur contient environ 10 000 références (donc impossible de faire des liens).
Je voudrais, lorsque je me trouve sur une cellule reprenant le nom dun document que celui-ci souvre dans word par une macro VBA.
Là où ça se complique, cest que la référence est constituée ainsi :
Les deux premiers chiffres représentent lannée détablissement du document (exemple 05 pour 2005)
Les deux chiffres suivants représentent le mois (exemple 04 pour avril)
Les deux ou trois lettres suivantes représentent les initiales de la personne à lorigine du document (exemple XX)
Les deux derniers chiffres représentent le numéro de chrono du document (exemple 01)
Le nom du document est donc par exemple 0504XX01.doc
Pour faciliter le classement de ces documents, nous avons des répertoires constitués de la manière suivante :
w:\Groupe\Filiales\123\
puis un répertoire pour lannée de 2001 à 2005 (exemple 2005)
puis un répertoire pour le mois de janvier à décembre reprenant lannée (exemple 05.04 pour avril 2005)
Je souhaite donc que la macro permette daller ouvrir le fichier word en retrouvant le chemin par rapport à la cellule active dexcel.
Dautre part, les fichiers antérieurs à 2001 sont stockés sur un CDROM toujours en place dans mon lecteur. Je souhaiterai que pour les fichiers ayant une référence commençant par une année inférieure à 01, la macro aille chercher sur le CDROM.
Je me suis déjà attelée au premier problème (fichiers présents sur W:\) et voilà ma macro. Seulement, le programme ne reconnaît pas ma variable comme un chemin de fichier. Comment faire ?
Sub essaisof()
Dim annéedudoc As String
Dim moisdudoc As String
Dim refdudoc As String
Dim annéecompletedudoc As String
Dim annéemoisdudoc As String
Dim cheminouverture1
Dim cheminouverture2
annéedudoc = Mid(ActiveCell.Value, 1, 2)
moisdudoc = "." & Mid(ActiveCell.Value, 3, 2)
refdudoc = ActiveCell.Value & ".doc"
annéecompletedudoc = "20" & annéedudoc
annéemoisdudoc = "\" & annéedudoc & moisdudoc
refdudoc = "\" & ActiveCell.Value & ".doc"
cheminouverture1 = "W:\Groupe\Filiales\123\"
cheminouverture2 = cheminouverture1 & annéecompletedudoc & annéemoisdudoc & refdudoc
MsgBox cheminouverture2
'Cette MsgBox me permet de constater que le chemin est correct.
On Error Resume Next
Set objWord = GetObject(, "Word.Application" )
If objWord Is Nothing Then
Set objWord = CreateObject("Word.Application" )
End If
On Error GoTo 0
objWord.Visible = True
objWord.Documents.Open Filename = cheminouverture2
'et cest là que ça plante ! ! !
End Sub
Jai essayé plusieurs autres choses (shell, déclarer une fonction Dir ect
) mais rien ne marche.
Merci de votre aide.
PS : je débute en VBA
Message édité par sof112 le 07-04-2005 à 13:38:21