inputbox : nbre caractères limité ? y compris titre ?

  • Initiateur de la discussion Initiateur de la discussion Sebast
  • 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 !

Sebast

XLDnaute Impliqué
Bonjour à toutes et à tous,

ma question porte sur une inputbox qui plante quand, semble-t-il, je rentre trop de texte.

Mes recherches d'info sont assez contradictoires, tantôt je lis qu'on a droit à 1024 caractères, tantôt 254
Malgré cela, pour m'en convaincre, j'ai additionné le nombre de caractères et je ne retrouve pas mes petits …
Doit-on tout inclure, y compris les blancs (passages à la ligne), le titre etc ?
Même en incluant, excluant les blancs, le titre etc., je ne m'y retrouve pas (voir feuille "Contrôle taille")

Quelqu'un peut-il me dire si je vois clair ou si mon code plante pour une autre raison ?

Merci d'avance

Sebast

Code:
Public Titel As String ' Public car dans le code grandeur nature sert ailleurs
Public Reponse As String

Sub Mon_code()

Dim M10 As String
Dim M11 As String
Dim M12 As String
Dim M13 As String
Dim M14 As String

Titel = "Super Titres1"
M10 = "Saisissez le type d'affichage trimestriel souhaité"
M11 = "(ne concerne que les tableaux comportant une synthèse trimestrielle)"
M12 = "Synthétique affiche les totaux trimestriels"
M13 = "Détaillé affiche les trimestres et les mois du dernier trimestre"
M14 = "Saisissez s pour" ' au-delà ça plante ... (normalement s pour synthétique etc.)

' --- cause do loop
Reponse = Empty

Do Until Reponse = "s" Or Reponse = "S" Or Reponse = "d" Or Reponse = "D"
        Reponse = _
        Application.InputBox(M10 + vbCrLf + vbCrLf + M11 + vbCrLf + vbCrLf + M12 + vbCrLf + M13 + vbCrLf + vbCrLf + M14, Titel, Type:=2)
Loop

End Sub
 

Pièces jointes

Re : inputbox : nbre caractères limité ? y compris titre ?

Bonjour Sebast,

il est évident que le code plante à cause d'un trop grand nombre de caractères dans le message de l'InputBox

la seule solution, réduire au maximum tout en gardant un message complet et compréhensible

à+
Philippe
 
Re : inputbox : nbre caractères limité ? y compris titre ?

Bonjour Sebast,

Avec ce code :

Code:
Sub test()
Dim n&, x$
n = 1022 'puis 1023, pour voir
x = InputBox("", "Titre", String(n, "a") & "B") 'n + 1 caractères
MsgBox Len(x)
End Sub
il est facile de voir que :

- le texte entré dans la zone de texte est limité à 1023 caractères, qu'il y ait un titre ou pas

- le texte renvoyé se limite à 254 caractères.

Edit : bonjour Philippe.

A+
 
Dernière édition:
Re : inputbox : nbre caractères limité ? y compris titre ?

Bonsoir Philippe, bonsoir job75,

merci pour vos réponses.
Je vais donc effectivement remanier le texte pour que ça fasse plus court ...

Cependant, malgré l'explication de job75, je ne comprends toujours pas : le texte de mon message peut aller jusqu'à 1023 ? pourtant j'en suis loin.
Pour moi, le x correspond à la réponse attendue via le do loop, soit "s" ou 'd', et pas le texte lui-même ...

à +

Sebast
 
Re : inputbox : nbre caractères limité ? y compris titre ?

Bonsoir à tous

Avec ce petit élagage cela semble fonctionner
(j'ai ajouté un Select Case pour l'exemple)
Code:
Public Titel As String ' Public car dans le code grandeur nature sert ailleurs
Public Reponse As String

Sub Mon_code()
Dim M10$, M11$, M12$, M13$, M14$
Titel = "Super Titres1"
M10 = "Saisir votre type d'affichage trimestriel"
M11 = "(relatif aux tableaux avec synthèse trimestrielle)"
M12 = "Synthétique: totaux trimestriels"
M13 = "Détaillé: trimestres et  mois du dernier trimestre"
M14 = "Saisir S ou D" ' au-delà ça plante ... (normalement s pour synthétique etc.)

Reponse = _
        Application.InputBox(M10 + vbCrLf + vbCrLf + M11 + vbCrLf + vbCrLf + M12 + vbCrLf + M13 + vbCrLf + vbCrLf + M14, Titel, "S", Type:=2)

Select Case UCase(Reponse)
Case "S"
MsgBox "vous avez choisi S"
Case "D"
MsgBox "vous avez choisi D"
Case Else
End
End Select
End Sub
 
Re : inputbox : nbre caractères limité ? y compris titre ?

Bonsoir Staple1600,

merci pour ta proposition, qui fonctionne parfaitement.
J'avais entre-temps adapté mon code mais ce que je ne comprends toujours pas, c'est quelle est la limite ?

Si 254 caractères, mon fichier feuille 'contrôle taille" montre que non car c'est avec le titre
Si 1024 non plus car j'en suis loin

Est-ce une question de version excel ?

je ne trouve rien chez Microsoft en la matière

Bonne soirée

Sebast
 
Re : inputbox : nbre caractères limité ? y compris titre ?

salut

avec 2010 et un complément du code de Staple (merci pour le boulot)
Code:
Option Explicit
Public Titre As String
Public Reponse As String
Sub Mon_code()
  Dim Msg$, l As Long
  Titre = "Super Titres1" & Application.Rept(".", 242) 'voir avec 243
   MsgBox Len(Titre), 64, "limite titre : "
  Msg = "Saisir votre type d'affichage trimestriel" & vbLf & _
          "(relatif aux tableaux avec synthèse trimestrielle)" & vbLf & _
          "Synthétique: totaux trimestriels" & vbLf & _
          "Détaillé: trimestres et  mois du dernier trimestre" & vbLf
  l = 241 - Len(Msg) 'voir avec 242
   Msg = Msg & Application.Rept(".", l) & vbLf & "Saisir S ou D"
  MsgBox Msg & vbLf & Len(Msg), 64, "limite texte :"
  Reponse = Application.InputBox(Msg, Titre, "S", 2)
  Select Case Reponse
    Case "S": MsgBox "vous avez choisi S"
    Case "D": MsgBox "vous avez choisi D"
    Case Else: MsgBox "Il faut respecter les consignes !", 16, "n'importe quoi..."
  End Select
End Sub
 
Re : inputbox : nbre caractères limité ? y compris titre ?

Re, hello JM, Si...

Ce que j'ai dit au post #3 est valable pour une InputBox, pas pour une Application.InputBox....

Avec une Application.InputBox de type 2 :

Code:
Sub test1()
Dim n&, x$
n = 254 'puis 255, pour voir...
x = Application.InputBox("", "Titre", String(n, "a") & "B", Type:=2) 'n + 1 caractères
MsgBox Len(x)
End Sub
la limite est de 255 caractères.

A+
 
Re : inputbox : nbre caractères limité ? y compris titre ?

Re, salut Si...,

merci pour vos précisions, je commence à assimiler ...

au passage, quelqu'un sait-il comment enlever la surbrillance sur la lettre dans la réponse ("S" par exemple) ?


à +
 
- 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

Discussions similaires

Réponses
2
Affichages
692
Retour