Msgbox variable trop longue

  • Initiateur de la discussion Initiateur de la discussion f.binderrsi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

f.binderrsi

Guest
Bonjour à tous,

Petite mise en situation:

J'ai crée une macro qui fait un enregistrer sous, avant l'arrêt de cette macro, j'affiche une msgbox qui contient le nom du fichier et son chemin d'accès

rep = MsgBox("Le fichier " & ActiveWorkbook.Name & " a été enregistrer dans le dossier :" & Chr(13) & Chr(13) & ActiveWorkbook.Path, vbOKOnly, "Chemin d'accés au nouveau rapport")

Mon problème est que si le chemin d'accès est trop long, la msgbox ne renvoie pas à la ligne, donc lorsque la msgbox s'affiche on ne voit pas l'intégralité du chemin d'accès. 🙁

attachment.php


Avez vous quelques idées??
 

Pièces jointes

  • msgbox.JPG
    msgbox.JPG
    14.1 KB · Affichages: 141
  • msgbox.JPG
    msgbox.JPG
    14.1 KB · Affichages: 147
  • msgbox.JPG
    msgbox.JPG
    14.1 KB · Affichages: 153
Re : Msgbox variable trop longue

Bonjour,
Dans ce cas, tu récupères le chemin au format DOS

Code:
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long


'Purpose     :  Converts a windows long path name into a short path name (8.3 format).
'Inputs      :  sFileName               The path to convert.
'Outputs     :  Converts a windows long path name into a short path name (8.3 format).
'Author      :  Andrew Baker
'Date        :  13/11/2002 10:16
'Example     :  Debug.Print GetShortPath("C:\Program Files\Microsoft Office\") returns C:\PROGRA~1\MICROS~1\
'Revisions   :

Public Function GetShortPath(sFileName As String) As String
    Dim lEnd As Long, sPath As String
    'Create buffer
    sPath = String$(256, 0)
    'Get short pathname
    lEnd = GetShortPathName(sFileName, sPath, Len(sPath))
    'Return result
    GetShortPath = Left$(sPath, lEnd)
End Function
Sub Test()
    MsgBox GetShortPath(ActiveWorkbook.Path)
End Sub
 
Re : Msgbox variable trop longue

Merci pour cette réponse renauder, je l'ai testé et ça marche très bien cependant le chemin d'accès n'est pas très lisible pour des débutants en informatique.
En fait l'application que je développe aura un usage professionnel et les personnes qui vont l'utiliser n'ont pas forcément un niveau informatique très élevé.
Je souhaite donc conserver le chemin d'accès au format windows.
 
Re : Msgbox variable trop longue

Bonjopuor



Une piste à creuser (faute de mieux)
Tu peux jouer comme tu veux avec le chemin (enfin avec sa string)
Code:
Sub test()
Dim fp
Dim cheminbidon$
cheminbidon = "C:\Users\ABC\DEF\GHI\JKL\MNO\PQR"
'fp = Split(ActiveWorkbook.Path, "\") 'avec un vrai chemin
fp = Split(cheminbidon, "\") 'pour tester
MsgBox UBound(fp)
For i = 0 To 5
sfp = sfp & fp(i) & "\"
Next
MsgBox sfp & Chr(13) & vbTab & fp(6) & "\" & fp(7)
End Sub
 
Re : Msgbox variable trop longue

Bonsoir à tous,

Le problème ne vient pas à mon avis de MsgBox mais de la propriété Path qui ne retourne pas la totalité du chemin d'accès. Ca devrait marcher avec la propriété FullName.

PS : pour un usage prof. il vaut mieux écrire
rep = MsgBox("Le fichier " & ActiveWorkbook.Name & " a été enregistré dans le dossier :" & Chr(13) & Chr(13) & ActiveWorkbook.FullName, vbOKOnly, "Chemin d'accés au nouveau rapport")

Bon courage

Caillou
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

H
Réponses
6
Affichages
1 K
HOUDY
H
C
Réponses
2
Affichages
2 K
C
J
Réponses
2
Affichages
6 K
jl456
J
N
  • Question Question
Réponses
5
Affichages
3 K
K
Réponses
6
Affichages
2 K
unrender
U
L
Réponses
3
Affichages
1 K
Retour