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

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

  • Forum_29102014.xlsm
    18.1 KB · Affichages: 21

phlaurent55

Nous a quittés en 2020
Repose en paix
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
 

job75

XLDnaute Barbatruc
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:

Sebast

XLDnaute Impliqué
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
 

Staple1600

XLDnaute Barbatruc
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
 

Sebast

XLDnaute Impliqué
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
 

Si...

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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+
 

Sebast

XLDnaute Impliqué
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) ?


à +
 

Discussions similaires

Statistiques des forums

Discussions
313 020
Messages
2 094 433
Membres
106 024
dernier inscrit
Imado