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

Trouver la lettre d'un lecteur dans un fichier "neuf"

21 réponses
Avatar
ThierryP
Bonjour le forum,

Une question un peu rh=C3=A9torique, qui n'avait pas de r=C3=A9ponse il y a=
quelques ann=C3=A9es
en arri=C3=A8re ! Peut-=C3=AAtre les choses ont-elles =C3=A9volu=C3=A9...

J'ai un fichier mod=C3=A8le install=C3=A9 sur plusieurs ordinateurs portabl=
es et =C3=A9galement sur un mappage r=C3=A9seau.

En cr=C3=A9ant un nouveau fichier depuis le mod=C3=A8le, y a-t-il un moyen =
de conna=C3=AEtre la lettre de lecteur (=C3=A0 part =C3=A9num=C3=A9rer tout=
l'alphabet avec un test d'erreur) ?

Merci d'avance

ThierryP

10 réponses

1 2 3
Avatar
isabelle
bonjour ThierryP,
j'ai trouvé seulement l'emplacement par default
lecteur = Left(Application.TemplatesPath, 1)
en connaissant le nom du modèle tu peut vérifier s'il est présent sur ce lecteur
Sub test()
Dim filePath As Strin
lecteur = Left(Application.TemplatesPath, 1)
filePath = GetTemplatePath(lecteur, "MyTemplate.xltx")
Debug.Print filePath
End Sub
Function GetTemplatePath(drive As String, templateName As String) As String
Dim cmd As String, result As String
cmd = "CMD /C DIR """ & drive & ":*" & templateName & """ /S /B /A:-D"
On Error Resume Next
result = Split(CreateObject("WScript.Shell").Exec(cmd).StdOut.ReadAll,
vbCrLf)(0)
On Error GoTo 0
If InStr(result, "") Then
GetTemplatePath = Left(result, InStrRev(result, ""))
Else
GetTemplatePath = vbNullString
End If
End Function
isabelle
Le 2017-02-10 à 05:26, ThierryP a écrit :
Bonjour Isabelle,
Malheureusement, ta formule me renvoie uniquement le dossier par défaut indiqué dans les options d'Excel.
J'espérais vaguement qu'avec les progrès de Microsoft (non, je plaisante !!) il serait possible de connaître l'emplacement d'origine du modèle .xltm utilisé.
Merci de t'intéresser à mon (petit) souci ;o)
ThierryP
Avatar
JièL
Mon petit grain de sel
Le 10/02/2017 à 15:05, MichD a écrit :
Cette ligne de code "If Success = True Then" devrait plutôt s'écrire
ainsi :
"If Success = True And FirstTime = 1 Then"

ou encore
If Success And FirstTime = 1 Then
Parce que avant de vérifier la condition, celle ci est évalué et ensuite
comparé à ce qui est derrière le donc, si Success contient True c'est un peu comme si on écrivait
If True = True Then
Pour les extras fainéants, on pourrait presque écrire
If Success And FirstTime Then
à condition que firstime ne soit qu'un drapeau qui pendait la valeur 0
ou autre chose car 0 = False et autre chose = true :-)
--
JièL fainéant de première
Avatar
MichD
En passant, lorsque tu crées un NOM, tu peux le rendre non accessible dans la fenêtre des
"NOMS" dans l'interface de calcul empêchant l'usager de supprimer volontairement ou
involontairement le NOM qui va générer une erreur!
IL s'agit d'utiliser le paramètre "visible" comme ceci :
Names.Add Name:="toto", Visible:úlse
MichD
Avatar
MichD
"If Success = True And FirstTime = 1 Then"

ou encore
If Success And FirstTime = 1 Then
OU encore :
If Success * FirstTime = 1 Then
(2 caractères en moins) ;-)
Merci Jiel, je connais cette syntaxe. Mais comme les réponses s'adressent pas seulement à une
personne, la syntaxe longue permet au maximum de gens de suivre les échanges plus facilement.
MichD
Avatar
ThierryP
Bonjour JièL,
Toi aussi tu es dans l'humour du vendredi après-midi.... "un drapeau q ui pendait" c'est pas du VBA çà !!
Bon week-end, je crois qu'il s'impose ;o))
ThierryP
Mon petit grain de sel

"""
à condition que firstime ne soit qu'un drapeau qui pendait la valeur 0
--
JièL fainéant de première
Avatar
ThierryP
Décidément infatigable !!
Effectivement c'est une bonne idée.... les utilisateurs font parfois d es choses étranges !
En tous cas, le froid d'outre-mare n'engourdit pas les neurones (et ça vaut pour Isabelle aussi !!)
Merci,
ThierryP
Avatar
MichD
If Success * FirstTime = 1 Then
devrait plutôt s'écrire : If Success * FirstTime = -1 Then
Car la valeur de true en VBA est égale à -1
MichD
Avatar
ThierryP
Re-bonjour Isabelle,
Je vais tester ta proposition dès que possible (le week-end approche ! )
Si ça continue, je vais avoir plus de solutions que de problèmes !!!!!!
C'est çà le MPFE :-))
Bon week-end,
ThierryP
Avatar
JièL
Le 10/02/2017 à 16:56, MichD a écrit :
If Success * FirstTime = 1 Then
devrait plutôt s'écrire : If Success * FirstTime = -1 Then

En fait ça n'a aucune importance, c'est juste différent de faux, donc de 0.
donc :
If Success * FirstTime Then
c'est moi k'a la plus courte, na :-)
Ceci dit, ça devient un peu compliqué à lire :-)
--
Jièl plikécon
Avatar
JièL
Le 09/02/2017 à 19:09, MichD a écrit :
Je ne travaille pas à réseau

Qu'importe, tu peux faire comme si avec toi même
Avec l'explorateur, clic droit sur un dossier, Propriétés, onglet
Partage, bouton Partage avancé, coche "Partager ce dossier" et donne lui
éventuellement un nom.
(nb : le partage simple (ou "Partage avec") est une galère)
Va dans Réseau, choisi ton PC, tu devrais voir ton partage et donc
"Connecter un lecteur réseau" en faisant un clic droit dessus
--
JièL ray zo t'heurt
1 2 3