Nbre de caractères limité ds msgbox?
jim
-
YM -
YM -
Bonjour,
J'ai fais une macro pour ouvrir un msgbox. Cependant lorsque je tappe mes phrases a afficher dans ce msgbox dans le code, il y a un moment ou ca bloque. Y a t-il un nombre de catractères limité pour ces msgbox? Voici ma phrase est ce trop long ou je peux ajouter encore du contenu? Franchement il y a la place dans la box
Msg = Code Couleur :" & Chr(13) & "Fond blanc Police Gras rouge : Saisie manuelle" & Chr(13) & "Fond gris Police Noir non gras : Automatique" & Chr(13) & Chr(13) & " => Mois précédent et année en cours : Entrez le mois précédent et l'année en cours lors de ce mois (ex : 'novembre 2008' - respectez strictement l'orthographe)" & Chr(13) & Chr(13) & " => % de remplissage des sites : Entrez en début de chaque mois les indicateurs dans les cellules blanches du tableau" & Chr(13) & Chr(13) & "Graphiques associés : Le ou les graphiques de l'onglet de synthèse 'Archivage opérationnel' seront mis à jour automatiquement" & Chr(13) & Chr(13) & Chr(13) & "Si vous souhaitez modifier la feuille : Menu> Outils> Protection> Ôter la protection"
Jim
J'ai fais une macro pour ouvrir un msgbox. Cependant lorsque je tappe mes phrases a afficher dans ce msgbox dans le code, il y a un moment ou ca bloque. Y a t-il un nombre de catractères limité pour ces msgbox? Voici ma phrase est ce trop long ou je peux ajouter encore du contenu? Franchement il y a la place dans la box
Msg = Code Couleur :" & Chr(13) & "Fond blanc Police Gras rouge : Saisie manuelle" & Chr(13) & "Fond gris Police Noir non gras : Automatique" & Chr(13) & Chr(13) & " => Mois précédent et année en cours : Entrez le mois précédent et l'année en cours lors de ce mois (ex : 'novembre 2008' - respectez strictement l'orthographe)" & Chr(13) & Chr(13) & " => % de remplissage des sites : Entrez en début de chaque mois les indicateurs dans les cellules blanches du tableau" & Chr(13) & Chr(13) & "Graphiques associés : Le ou les graphiques de l'onglet de synthèse 'Archivage opérationnel' seront mis à jour automatiquement" & Chr(13) & Chr(13) & Chr(13) & "Si vous souhaitez modifier la feuille : Menu> Outils> Protection> Ôter la protection"
Jim
A voir également:
- Nbre de caractères limité ds msgbox?
- Caractères spéciaux - Guide
- Caracteres speciaux - Guide
- Caractères spéciaux mac - Guide
- Caractères ascii - Guide
- Exemple de mot de passe à 8 caractères - Guide
2 réponses
bonjour,
je n'apporte pas de réponse mais je me joins à ta question, je suis aussi embêté par cette limitation.
j'ai fait une macro qui fait choisir à l'utilisateur plusieurs fichiers.
et après la sélection, je fais apparaître une msgbox qui affiche la liste des fichiers sélectionnés.
ils s'affichent jusquà un certain point (et ça change selon la longueur des noms de fichier)
même en mettant le long texte dans une variable (de type string) et en appelant cette variable avec la msgbox, ça limite quand même
je suis donc moi aussi à la recherche d'une solution pour contourner cette limitation.
je n'apporte pas de réponse mais je me joins à ta question, je suis aussi embêté par cette limitation.
j'ai fait une macro qui fait choisir à l'utilisateur plusieurs fichiers.
et après la sélection, je fais apparaître une msgbox qui affiche la liste des fichiers sélectionnés.
ils s'affichent jusquà un certain point (et ça change selon la longueur des noms de fichier)
même en mettant le long texte dans une variable (de type string) et en appelant cette variable avec la msgbox, ça limite quand même
je suis donc moi aussi à la recherche d'une solution pour contourner cette limitation.
Bonjour,
Pour contourner le problème, on peut couper le texte en 2.
Pour ma part, ma Msgbox doit afficher un tableau.
Je remplis donc une chaine de caractères appelée "tablo" grâce à un parcours du tableau avec la variable i.
J'insère une condition dans cette boucle qui dit que tant que la longueur de ma chaine est infèrieure à 800 par exemple, la chaine continue de se remplir.
Passé cette limite, une autre chaine est utilisée, tablo2, qui se remplit à son tour.
A la fin du parcours du tableau, Msgbox affiche d'abord "tablo", puis, une fois cliqué sur OK, affiche tablo2.
On peut aller loin comme ça, mais ne pas oublier de tester si les chaines sont remplies, sinon msgbox affiche du vide.
L'explication par un exemple (le code n'est pas complet) :
Do While i < limite
tableau(i, 1) = Refstag
tableau(i, 2) = ![HTC]
tableau(i, 3) = ![HPC]
tableau(i, 4) = ![Tauxpresence]
If Len(tablo) < 800 Then
tablo = tablo & "--------------------------------------------------" & Chr(10)
tablo = tablo & tableau(i, 1) & " | " & tableau(i, 2) & " | " & tableau(i, 3) & " | " & tableau(i, 4) & "%" & Chr(10)
Else: tablo2 = tablo2 & "--------------------------------------------------" & Chr(10)
tablo2 = tablo2 & tableau(i, 1) & " | " & tableau(i, 2) & " | " & tableau(i, 3) & " | " & tableau(i, 4) & "%" & Chr(10)
End If
i = i + 1
Loop
Msgbox tablo
If tablo2 <> "" Then
Msgbox tablo2
End if
Ainsi l'utilisateur verra l'intégralité des données.
Pour contourner le problème, on peut couper le texte en 2.
Pour ma part, ma Msgbox doit afficher un tableau.
Je remplis donc une chaine de caractères appelée "tablo" grâce à un parcours du tableau avec la variable i.
J'insère une condition dans cette boucle qui dit que tant que la longueur de ma chaine est infèrieure à 800 par exemple, la chaine continue de se remplir.
Passé cette limite, une autre chaine est utilisée, tablo2, qui se remplit à son tour.
A la fin du parcours du tableau, Msgbox affiche d'abord "tablo", puis, une fois cliqué sur OK, affiche tablo2.
On peut aller loin comme ça, mais ne pas oublier de tester si les chaines sont remplies, sinon msgbox affiche du vide.
L'explication par un exemple (le code n'est pas complet) :
Do While i < limite
tableau(i, 1) = Refstag
tableau(i, 2) = ![HTC]
tableau(i, 3) = ![HPC]
tableau(i, 4) = ![Tauxpresence]
If Len(tablo) < 800 Then
tablo = tablo & "--------------------------------------------------" & Chr(10)
tablo = tablo & tableau(i, 1) & " | " & tableau(i, 2) & " | " & tableau(i, 3) & " | " & tableau(i, 4) & "%" & Chr(10)
Else: tablo2 = tablo2 & "--------------------------------------------------" & Chr(10)
tablo2 = tablo2 & tableau(i, 1) & " | " & tableau(i, 2) & " | " & tableau(i, 3) & " | " & tableau(i, 4) & "%" & Chr(10)
End If
i = i + 1
Loop
Msgbox tablo
If tablo2 <> "" Then
Msgbox tablo2
End if
Ainsi l'utilisateur verra l'intégralité des données.
bonjour Dliryc et merci pour ta réponse.
mais je cherchais (et je suppose que c'était aussi le cas de jim qui a démarré ce post) une solution pour tout afficher dans une seule message box.
je pense qu'il y a en effet une limitation du nombre de caractères, je vois que je peux en mettre 1024 au max, et les limitations Excel (et autres) sont toujours des puissances de 2, j'en conclue qu'on ne peut aller au delà de 1024 (tout comme le nombre de caractères dans les formules)
ceci dit, la solution que tu proposes est une bonne alternative.
mais je cherchais (et je suppose que c'était aussi le cas de jim qui a démarré ce post) une solution pour tout afficher dans une seule message box.
je pense qu'il y a en effet une limitation du nombre de caractères, je vois que je peux en mettre 1024 au max, et les limitations Excel (et autres) sont toujours des puissances de 2, j'en conclue qu'on ne peut aller au delà de 1024 (tout comme le nombre de caractères dans les formules)
ceci dit, la solution que tu proposes est une bonne alternative.