Je vais essayer d'=C3=AAtre clair (court, ce ne sera pas possible !) !
J'ai cr=C3=A9=C3=A9 un classeur mod=C3=A8le qui est install=C3=A9 sur des P=
C. L'utilisateur cr=C3=A9e un classeur qui est enregistr=C3=A9 sur un disqu=
e local : D, E ou autre.
Apr=C3=A8s transfert sur mon serveur (Lecteur I), je souhaite modifier le c=
omportement du fichier. Donc, gr=C3=A2ce aux macros magiques de Denis (qu'i=
l en soit une fois de plus remerci=C3=A9 !!!), je sais changer par VBA le c=
ode du classeur pour remplacer la lettre du disque par I :
Public Const Lecteur As String =3D "D:" devient
Public Const Lecteur As String =3D "I:"
et dans mon Workbook_Open, je fais =C3=A7=C3=A0 :
MsgBox Lecteur ' pour test
Call Change_Drive '------> je change la lettre
MsgBox Lecteur ' pour test
If Lecteur =3D "I:" Then
If InStr(ThisWorkbook.Path, "00 - A Transf=C3=A9rer") <> 0 Then
fais ci, fais =C3=A7a
Else
fais autre chose
End If
End If
En th=C3=A9orie, tout est bon..... Sauf qu'=C3=A0 la premi=C3=A8re ouvertur=
e sur le serveur, il se passe ceci :
le premier msgbox me donne bien "D", puis je change la lettre, le deuxi=C3=
=A8me msgbox me donne bien "I", donc en th=C3=A9orie je dois passer dans mo=
n test; sauf que non ! Si je sauvegarde et r=C3=A9ouvre le fichier tout est=
OK.
Ouf, enfin la question :
Comment forcer la macro =C3=A0 prendre en compte la modif en "direct live" =
?
Comment forcer la macro à prendre en compte la modif en "direct live" ?
Je n'ai pas la réponse mais je propose de lancer la compilation du VBA... Je sais le faire via une méthode dégueu de sendkeys (qui ne fonctionne pas à tous les coups bien entendu) mais je serais intéressé si une fonctionnalité plus propre existait -- JièL 1 ter et sé
Le 03/03/2017 à 11:02, ThierryP a écrit :
Bonjour le forum,
Hello tout seul
Comment forcer la macro à prendre en compte la modif en "direct live" ?
Je n'ai pas la réponse mais je propose de lancer la compilation du VBA...
Je sais le faire via une méthode dégueu de sendkeys (qui ne fonctionne
pas à tous les coups bien entendu) mais je serais intéressé si une
fonctionnalité plus propre existait
Comment forcer la macro à prendre en compte la modif en "direct live" ?
Je n'ai pas la réponse mais je propose de lancer la compilation du VBA... Je sais le faire via une méthode dégueu de sendkeys (qui ne fonctionne pas à tous les coups bien entendu) mais je serais intéressé si une fonctionnalité plus propre existait -- JièL 1 ter et sé
JièL
Le 03/03/2017 à 11:02, ThierryP a écrit :
Bonjour le forum,
Hello tout seul
Comment forcer la macro à prendre en compte la modif en "direct live" ?
Je n'ai pas la réponse mais je propose de lancer la compilation du VBA... Je sais le faire via une méthode dégueu de sendkeys (qui ne fonctionne pas à tous les coups bien entendu) mais je serais intéressé si une fonctionnalité plus propre existait -- JièL 1 ter et sé
Le 03/03/2017 à 11:02, ThierryP a écrit :
Bonjour le forum,
Hello tout seul
Comment forcer la macro à prendre en compte la modif en "direct live" ?
Je n'ai pas la réponse mais je propose de lancer la compilation du VBA...
Je sais le faire via une méthode dégueu de sendkeys (qui ne fonctionne
pas à tous les coups bien entendu) mais je serais intéressé si une
fonctionnalité plus propre existait
Comment forcer la macro à prendre en compte la modif en "direct live" ?
Je n'ai pas la réponse mais je propose de lancer la compilation du VBA... Je sais le faire via une méthode dégueu de sendkeys (qui ne fonctionne pas à tous les coups bien entendu) mais je serais intéressé si une fonctionnalité plus propre existait -- JièL 1 ter et sé
Bonjour, Si tu utilises une constante, par définition, tu ne peux pas modifier par "code" la valeur de cette constante. Ceci étant, emploie une variable et là tout est possible... voici un exemple : Dans un module standard, tu déclares la variable "Lecteur" comme suit : Public Lecteur As String '----------------------------------------------- Private Sub Workbook_Open() With ThisWorkbook 'Dans le cas où tu ouvres un classeur émanant d'un modèle, 'le fichier n'a pas de chemin... on doit faire ce test. 'La variable Lecteur représente toujours le chemin où est 'situé le fichier. If .Saved = True Then Lecteur = Left(.FullName, 1) End If End With '.../etc... End Sub '----------------------------------------------- Tu peux utiliser d'autres événements si tu veux définir cette variable lors d'un enregistrement... '------------------------------------------------ Private Sub Workbook_AfterSave(ByVal Success As Boolean) Lecteur = Left(ThisWorkbook.FullName, 1) End Sub '------------------------------------------------ MichD
Bonjour,
Si tu utilises une constante, par définition, tu ne peux pas modifier par
"code" la valeur de cette constante. Ceci étant, emploie une variable et là
tout est possible... voici un exemple :
Dans un module standard, tu déclares la variable "Lecteur" comme suit :
Public Lecteur As String
'-----------------------------------------------
Private Sub Workbook_Open()
With ThisWorkbook
'Dans le cas où tu ouvres un classeur émanant d'un modèle,
'le fichier n'a pas de chemin... on doit faire ce test.
'La variable Lecteur représente toujours le chemin où est
'situé le fichier.
If .Saved = True Then
Lecteur = Left(.FullName, 1)
End If
End With
'.../etc...
End Sub
'-----------------------------------------------
Tu peux utiliser d'autres événements si tu veux définir cette variable lors
d'un enregistrement...
'------------------------------------------------
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Lecteur = Left(ThisWorkbook.FullName, 1)
End Sub
'------------------------------------------------
Bonjour, Si tu utilises une constante, par définition, tu ne peux pas modifier par "code" la valeur de cette constante. Ceci étant, emploie une variable et là tout est possible... voici un exemple : Dans un module standard, tu déclares la variable "Lecteur" comme suit : Public Lecteur As String '----------------------------------------------- Private Sub Workbook_Open() With ThisWorkbook 'Dans le cas où tu ouvres un classeur émanant d'un modèle, 'le fichier n'a pas de chemin... on doit faire ce test. 'La variable Lecteur représente toujours le chemin où est 'situé le fichier. If .Saved = True Then Lecteur = Left(.FullName, 1) End If End With '.../etc... End Sub '----------------------------------------------- Tu peux utiliser d'autres événements si tu veux définir cette variable lors d'un enregistrement... '------------------------------------------------ Private Sub Workbook_AfterSave(ByVal Success As Boolean) Lecteur = Left(ThisWorkbook.FullName, 1) End Sub '------------------------------------------------ MichD
News.aioe.org
Bonjour, Si tu utilises une constante, par définition, tu ne peux pas modifier par "code" la valeur de cette constante. Ceci étant, emploie une variable et là tout est possible... voici un exemple : Dans un module standard, tu déclares la variable "Lecteur" comme suit : Public Lecteur As String '----------------------------------------------- Private Sub Workbook_Open() With ThisWorkbook 'Dans le cas où tu ouvres un classeur émanant d'un modèle, 'le fichier n'a pas de chemin... on doit faire ce test. 'La variable Lecteur représente toujours le chemin où est 'situé le fichier. If .Saved = True Then Lecteur = Left(.FullName, 1) End If End With '.../etc... End Sub '----------------------------------------------- Tu peux utiliser d'autres événements si tu veux définir cette variable lors d'un enregistrement... '------------------------------------------------ Private Sub Workbook_AfterSave(ByVal Success As Boolean) Lecteur = Left(ThisWorkbook.FullName, 1) End Sub '------------------------------------------------ MichD
Bonjour,
Si tu utilises une constante, par définition, tu ne peux pas modifier par
"code" la valeur de cette constante. Ceci étant, emploie une variable et là
tout est possible... voici un exemple :
Dans un module standard, tu déclares la variable "Lecteur" comme suit :
Public Lecteur As String
'-----------------------------------------------
Private Sub Workbook_Open()
With ThisWorkbook
'Dans le cas où tu ouvres un classeur émanant d'un modèle,
'le fichier n'a pas de chemin... on doit faire ce test.
'La variable Lecteur représente toujours le chemin où est
'situé le fichier.
If .Saved = True Then
Lecteur = Left(.FullName, 1)
End If
End With
'.../etc...
End Sub
'-----------------------------------------------
Tu peux utiliser d'autres événements si tu veux définir cette variable lors
d'un enregistrement...
'------------------------------------------------
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Lecteur = Left(ThisWorkbook.FullName, 1)
End Sub
'------------------------------------------------
Bonjour, Si tu utilises une constante, par définition, tu ne peux pas modifier par "code" la valeur de cette constante. Ceci étant, emploie une variable et là tout est possible... voici un exemple : Dans un module standard, tu déclares la variable "Lecteur" comme suit : Public Lecteur As String '----------------------------------------------- Private Sub Workbook_Open() With ThisWorkbook 'Dans le cas où tu ouvres un classeur émanant d'un modèle, 'le fichier n'a pas de chemin... on doit faire ce test. 'La variable Lecteur représente toujours le chemin où est 'situé le fichier. If .Saved = True Then Lecteur = Left(.FullName, 1) End If End With '.../etc... End Sub '----------------------------------------------- Tu peux utiliser d'autres événements si tu veux définir cette variable lors d'un enregistrement... '------------------------------------------------ Private Sub Workbook_AfterSave(ByVal Success As Boolean) Lecteur = Left(ThisWorkbook.FullName, 1) End Sub '------------------------------------------------ MichD
Quand tu enregistres ton classeur comme modèle, tu peux toujours créer un "NOM" de la collection "NAMES" ayant comme valeur la lettre du lecteur que tu prends le temps de masquer où tu sauvegardes ton fichier. Dans le Thisworkbook : '------------------------- Private Sub Workbook_AfterSave(ByVal Success As Boolean) ThisWorkbook.Names.Add "Lecteur", Left(ThisWorkbook.FullName, 1), Visible:úlse End Sub '------------------------- Pour retrouver la lettre représentant ce lecteur : x = Left(Replace(Names("Lecteur").Value, "=""", ""), 1) De toute manière, tu as déjà une solution... MichD
Quand tu enregistres ton classeur comme modèle, tu peux toujours créer un
"NOM" de la collection "NAMES" ayant comme valeur la lettre du lecteur que
tu prends le temps de masquer où tu sauvegardes ton fichier. Dans le
Thisworkbook :
'-------------------------
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
ThisWorkbook.Names.Add "Lecteur", Left(ThisWorkbook.FullName, 1),
Visible:úlse
End Sub
'-------------------------
Pour retrouver la lettre représentant ce lecteur :
x = Left(Replace(Names("Lecteur").Value, "=""", ""), 1)
Quand tu enregistres ton classeur comme modèle, tu peux toujours créer un "NOM" de la collection "NAMES" ayant comme valeur la lettre du lecteur que tu prends le temps de masquer où tu sauvegardes ton fichier. Dans le Thisworkbook : '------------------------- Private Sub Workbook_AfterSave(ByVal Success As Boolean) ThisWorkbook.Names.Add "Lecteur", Left(ThisWorkbook.FullName, 1), Visible:úlse End Sub '------------------------- Pour retrouver la lettre représentant ce lecteur : x = Left(Replace(Names("Lecteur").Value, "=""", ""), 1) De toute manière, tu as déjà une solution... MichD
News.aioe.org
Quand tu enregistres ton classeur comme modèle, tu peux toujours créer un "NOM" de la collection "NAMES" ayant comme valeur la lettre du lecteur que tu prends le temps de masquer où tu sauvegardes ton fichier. Dans le Thisworkbook : '------------------------- Private Sub Workbook_AfterSave(ByVal Success As Boolean) ThisWorkbook.Names.Add "Lecteur", Left(ThisWorkbook.FullName, 1), Visible:úlse End Sub '------------------------- Pour retrouver la lettre représentant ce lecteur : x = Left(Replace(Names("Lecteur").Value, "=""", ""), 1) De toute manière, tu as déjà une solution... MichD
Quand tu enregistres ton classeur comme modèle, tu peux toujours créer un
"NOM" de la collection "NAMES" ayant comme valeur la lettre du lecteur que
tu prends le temps de masquer où tu sauvegardes ton fichier. Dans le
Thisworkbook :
'-------------------------
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
ThisWorkbook.Names.Add "Lecteur", Left(ThisWorkbook.FullName, 1),
Visible:úlse
End Sub
'-------------------------
Pour retrouver la lettre représentant ce lecteur :
x = Left(Replace(Names("Lecteur").Value, "=""", ""), 1)
Quand tu enregistres ton classeur comme modèle, tu peux toujours créer un "NOM" de la collection "NAMES" ayant comme valeur la lettre du lecteur que tu prends le temps de masquer où tu sauvegardes ton fichier. Dans le Thisworkbook : '------------------------- Private Sub Workbook_AfterSave(ByVal Success As Boolean) ThisWorkbook.Names.Add "Lecteur", Left(ThisWorkbook.FullName, 1), Visible:úlse End Sub '------------------------- Pour retrouver la lettre représentant ce lecteur : x = Left(Replace(Names("Lecteur").Value, "=""", ""), 1) De toute manière, tu as déjà une solution... MichD