=>Fredox
Juste pour infos
C'est possible
J'ai cela en stock dans mes archives.
Mais j'attends de savoir qu'est le concept du projet avant d'aller fouiller dans mes tiroirs.
Sur ce la bonne nuit.
c'est donc le dossier pour les données publiques utilisées par les programmes ;
c'est valable pour mon Windows 7, et je sais que c'est pareil pour les versions
de Windows qui ont suivi : 8.0 ; 8.1 ; 10.
comme Staple, je ne vois pas bien à quoi ça peut servir vu que c'est pareil
sur tous les PC ! mébon, voici quand même un fichier joint.
fais Ctrl e ➯ tu as ce que tu veux en C5 :
VB:
Option Explicit
Sub Essai()
Dim chn$, lng As Byte
chn = [B5]: lng = Len(chn)
If lng < 12 Then Exit Sub
chn = Mid$(chn, 10)
[C5] = Environ$(Left$(chn, lng - 11))
End Sub
note que ce code VBA marchera aussi pour une autre variable d'environnement.
Function executeEnviron(cel As String)
executeEnviron= ""
If Left(cel, 9) = "Environ(""" Then executeEnviron = Environ(Split(Split(cel, "Environ(""")(1), Chr(34))(0))
End Function
Ce que fait l'exemple ci-dessous
1) La cellule contient une ligne de code VBA
2) Cette ligne est exécutée par VBE NB: Tout contenu VBA dans la cellule sera exécuté.
Maintenant reste le questionnement posé dans le message#3.
tu as mis en A1 une instruction VBA valide : ok ; mais comment as-tu fait
pour exécuter le code VBA qui est dans la cellule A1 ?
si tu as simplement copié l'instruction dans une sub, ça compte pas !
le but est bien d'exécuter le code de A1 ; donc l'instruction de la sub
doit utiliser la cellule A1, et pas une copie du code VBA !
soan
Relis mon message
C'est VBE qui éxécute ce qu'il y a dans la cellule
(Aucun copier/coller)
Et comme indiqué dans mon 1er message, j'avais cela dans mes archives.
Mais si j'ai mal interprété la question de Fredox, alors ta proposition et celle de patricktoulon suffiront.
« C'est VBE qui éxécute ce qu'il y a dans la cellule »
pour moi, Excel interprète et exécute les formules qu'il y a dans les cellules ;
mais VBE n'exécute pas le contenu des cellules ; et par exemple, si y'a une
fonction Excel que VBE connaît pas, VBE doit utiliser WorksheetFunction
pour y arriver ! il y a aussi Evaluate(), mais ça sert pas pour du code VBA,
tout au plus pour du code de macros Excel4.
tu n'as pas indiqué comment VBE exécute l'instruction en cellule A1 !
alors comment ? si t'as une méthode, je suis preneur ! y'a bien Shell,
mais ça peut pas servir ici, car le retour de Shell est l'ID de l'appli qui
est lancée, ça retourne pas la valeur d'une variable d'environnement.
@Fredox : bonjour, j'suis très content qu't'aies l'embarras du choix !
(mieux vaut trop de solutions que pas assez ! )
=>soan
Je n'ai indiqué pas comment parce que j'attends toujours la réponse à ma question.
(Question posée à Fredox dans le message#5)
Quel est le but le manœuvre?
Si c'est ce que je viens de supputer alors voir mon précédent message.
j'ai vu le code VBA de ton post #11 ; bien sûr, c'est facile, et j'sais le faire aussi !
mais ton code VBA n'utilise pas en paramètre la cellule A1 ! j'en profite pour
dire ceci @Fredox : ça aurait été bien plus simple si A1 contenait seulement
« ALLUSERSPROFILE » et pas « Environ("ALLUSERSPROFILE") » !
c'est pour ça que le code VBA de @patricktoulon et le mien enlèvent tout
ce qu'il y a en trop : on garde seulement "ALLUSERSPROFILE" puis on
l'utilise avec l'instruction VBA Environ() ou Environ$() ; cette instruction
n'est donc pas celle qui est écrite en cellule A1 !
Donc je suppute, puisque Fredox n'a toujours pas répondu précisément sur le contexte et le pourquoi.
Donc il s'agit uniquement d'une question relative à ENVIRON
alors ce que j'évoquais avoir dans mes archives aura à vocation à rester dans mes archives.
Et si il s'agit de lister les variables d'Environ, inutile de les stocker au préalable dans des cellules (comme semble l'avoir fait Fredox)
ah oui, j'ai compris ! tu as volontairement proposé un code VBA
qui est complètement indépendant de la cellule A1 ; tu as tout
à fait raison ! c'est c'que j'aurais fait aussi dès l'départ !
mais il semble que @Fredox part d'un fichier où c'est comme
il l'a décrit ; et que les cellules de la colonne A1 doivent être
utilisées ; même si on on comprend pas bien pourquoi c'est
comme ça ; peut-être que Fredox a eu ce fichier tel que, que
c'est pas lui qui l'a fait, et qu'il doive l'utiliser ainsi ?
(moi aussi, j'suis curieux du contexte et du pourquoi !)