Connecter un lecteur réseau
Bonjour à tous,
Pour mon projet, j'ai un excel avec des macros qui créé automatiquement des dossiers sur le serveur de mon travail.
Plus précisément, cela copie un fichier .ppt vierge dans un dossier créé par la macro qui ira dans un dossier de travail "en cours". Ensuite, la macro renomme le dossier et le fichier créés (Via des textbox).
Le soucis, c'est que le nombre de caractère total du lien où ira le futur fichier est trop long et du coup ça me met un message d'erreur. Et surtout ça ne me créé pas le fichier.
Je ne peux pas mettre ce fichier ailleurs que dans ce dossier comportant plus de 10 dossiers consécutifs.
Je précise, j'ai Windows 7 car j'ai lu que Windows 10 est censé augmenter cette chaîne de caractère à plus de 260 (ou carrément supprimer cette limite).
Même pour ouvrir ce fichier, je ne peux pas car le nom du fichier est trop long (Voir photo en pièce jointe)
Par contre, j'arrive à ouvrir ce fichier seulement si je passe par un lecteur réseau qui "shinte" la 10aine de dossier.
Du coup dans ma macro, j'aimerai passer par un lecteur réseau. Pour cela il faudrait le créer mais avant il faudrait vérifier que la lettre de lecteur réseau ne soit pas déjà prise.
Avez-vous des pistes pour connecter un lecteur réseau ?
Merci
Bonjour,
Dans un monde idéal, il est préférable d'utiliser des noms courts.
Ceci teste si une lettre d'unité (un lecteur) existe.
De là, une boucle va trouver un retour "False" et connecter le lecteur.
Un msgbox pourrait t'aviser de la lettre que la boucle a réussi à connecter.
Private Sub Command1_Click()
MsgBox DisqueExiste("C")
MsgBox DisqueExiste("P")
End Sub
Function DisqueExiste(LettreDisque As String)
Set fso = CreateObject("Scripting.FileSystemObject")
DisqueExiste = fso.DriveExists(LettreDisque)
Set fso = Nothing
End FunctionAmuse-toi bien ...
ric
P.S. Il y a une pauvre oubliée venant des temps médiévaux informatiques... la lettre "B" qui est pratiquement toujours libre.
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonsoir,
Essayer ce code
Sub affecter_lecteur_réseau()
Dim fso As Object, wslan As Object
Dim lecteur As Variant, chemin As String
Set fso = CreateObject("Scripting.FileSystemObject")
lecteurs = Array("D:", "E:", "F:", "G:", "H:", "I:", "J:", "K:", "L:", "M:", "N:", "O:", "P:", "Q:", "R:", "S:", "T:", "U:", "V:", "W:", "X:", "Y:", "Z:")
For Each lecteur In lecteurs
If Not fso.DriveExists(lecteur) Then Exit For
Next lecteur
If lecteur = Empty Then Exit Sub
Set wslan = CreateObject("WScript.Network")
chemin = "\\serveur\répertoire"
wslan.MapNetworkDrive lecteur, chemin
End Sub