Supprimer un dossier variable

zapp56 -  
 zapp56 -
Bonjour,

Je travaille sur VBA-Excel et j'ai un paramètre qui permet aux utilisateurs de l'application de définir le dossier d'enregistrement de ma base de données.
Le chemin d'accès peut être un dossier simple ou un dossier contenant des sous-dossiers, et dont le(s) nom(s) sont également définis par l'utilisateur.
Autrement dit, je peux avoir :
"c:\placard\base.xls"
Comme je peux avoir :
"c:\Turlututu\Chapeau\Pointu\base.xls"

J'ai réussi à déplacer le fichier "base.xls", et je souhaite donc supprimer le dossier "racine" ("c:\Turlututu\") ainsi que tous les sous-répertoires.
J'ai entendu parler des API et du Runtime Scripting mais je ne sais pas les faire fonctionner. De plus, je ne suis pas sûr que tous mes utilisateurs aient cette lib sur leur système.
Y aurait-il un moyen plus simple de détecter le dossier racine et de le supprimer ? Merci d'avance.
A voir également:

1 réponse

Utilisateur anonyme
 
Bonjour,

si j'ai bien compris, une fois que tu as déplacé le fichier base.xls
de "c:\Turlututu\Chapeau\Pointu\base.xls" vers "c:\placard\base.xls" tu veux supprimer "c:\Turlututu\"?

Si c'est bien cela, pour le déplacement du dois avoir 2 string qui contiennent les 2 chemins.
Pour celle qui contient le chemin d'origine, tu fait une recherche de la position du deuxième \ Instr et ensuite tu coupes ce string à l'index en question avec Left par exemple.
0
zapp56
 
Merci de ta réponse. Alors effectivement, j'ai bien deux chemins :
:: prevpath, le chemin à supprimer
:: foldpath, le nouveau chemin

Pardonnez mon idiotie, mais je n'ai jamais compris comment utiliser les fonctions de chaînes. Un petit exemple rapide s'il vous plaît ?
0
Utilisateur anonyme > zapp56
 
Un exemple y'en a un à chacune des pages que je t'ai données....
0
Utilisateur anonyme > Utilisateur anonyme
 
Allé je suis sympa ce soir
    Dim texte As String
    texte = "Texte ou je vais chercher le caractère  \ mais pas le premier le deuxième qui est là \, voilà."
    
    Dim index As String
    index = InStr(texte, "\")
    Dim index2 As String
    index2 = InStr(index + 1, texte, "\")
    
    Dim texteAvantSlash As String
    texteAvantSlash = Left(texte, index2 - 1)
0
zapp56
 
Ok je comprends mieux. Merci :)
0