Affichage d'un carré avec point d'interrogation avec Chr(10)

Essart

XLDnaute Junior
Bonjour à tous,

Dans un formulaire, en cochant sur la 1ère checkbox, j’alimente une combobox avec différentes lignes possibles.

Si je sélectionne deux fois de suite une ligne par la combobox ("Préselection"), je transferts alors deux lignes différentes de la combobox vers une textbox4.
mais entre la 1ère et la 2ème, par vba, je mets alors un Chr(10) pour aller à la ligne.

Si le changement de ligne se fait bien , cela affiche un carré avec point d'interrogation à la fin de la 1ère ligne.
Pourtant, mes formats de cellule/alignement ont bien "renvoyer à la ligne automatiquement" coché

Le remplacement de Chr(10) par Chr(13) ou VbCrLf ou VbNewLine ne change rien au problème....
pas plus que .WrapText = True
J'ai eu beau mettre de Cstr pour résoudre le problème mais que nenni !

Je n'ai rien trouvé sur le forum pour résoudre le problème qui est le même sous 2003 ou 2007...
j'ai juste trouvé cela :
https://www.excel-downloads.com/thr...-dinterrogation-suite-a-une-macro-vba.204380/
mais cela ne m'a pas avancé ...

Autre petit désagrément : quand je sélectionne la dernière feuille "Annexe" du fichier,
l'ordre des colonnes de la feuille, et du positionnement des pages s'inverse ....?
Y-a-t-il une raison .... et une solution ?

Je vous joins le fichier où j'ai enlevé beaucoup d'autres pages et modules et userform etc ...

Essart
 

Pièces jointes

  • Test_à_pb.xls
    269.5 KB · Affichages: 61

Victor21

XLDnaute Barbatruc
Re : Affichage d'un carré avec point d'interrogation avec Chr(10)

Bonjour, Essart, bonjour les Armorqueurs :)

Une chose à la fois. Je commence par la fin :
quand je sélectionne la dernière feuille "Annexe" du fichier,
l'ordre des colonnes de la feuille, et du positionnement des pages s'inverse ....?
Y-a-t-il une raison .... et une solution ?

La première réponse est oui : tripatouillage non maîtrisé dans les options. (Ce qui en soi est une bonne chose : elle prouve la curiosité de l'auteur ;) )
La deuxième réponse ets également oui : Outils, Options, International : Afficher la feuille active de droite à gauche après s'être placé sur la feuille "Annexe"
 

Essart

XLDnaute Junior
Re : Affichage d'un carré avec point d'interrogation avec Chr(10)

Bonjour Victor21,

Effectivement, la case était cochée, et le fait de la décocher à tout remis en ordre ...
Je ne connaissais pas cet onglet dans les options,et sait encore moins comment j'ai pu faire pour le cocher ...?

Bonne analyse !

Merci à toi

Essart
 

Essart

XLDnaute Junior
Re : Affichage d'un carré avec point d'interrogation avec Chr(10)

Re-bonjour,

J'ai simplifié le code du userform au maximum dans le fichier joint
où j'ai toujours le problème d'affichage d'un point d'interrogation
quand je clique dans la seule case à cocher,
que je fais des sélections multiples avec la combobox dessous,
et que je clique sur le bouton VALIDER,

la concaténation de données de la combobox transférée dans la feuille GENERALITES se fait toujours avec un point d'interrogation pour le retour chariot ...

en voici le code :

Je ne comprends vraiment pas où peut se situer le problème ...

Merci à tous

Essart

Public j As Integer
Private Sub Preselection_Change()
If Me.Preselection <> "" Then
If Me.TextBox4 = "" Then ' si aucune ligne déjà sélectionnée
Me.TextBox4 = CStr(Me.Preselection)
Else ' si une ligne déjà sélectionnée
Me.TextBox4 = CStr(Me.TextBox4) & Chr(10) & CStr(Me.Preselection)
' ou bien Chr(10) ou 13 ou ...
' Me.TextBox4 = CStr(Me.TextBox4) & vbNewLine & CStr(Me.Preselection)
End If
End If
End Sub

Private Sub bouton_valider_Click()
With Sheets("GENERALITES")
For j = 23 To 58
' mets dans la 1ère ligne vide de la feuille GENERALITES à partir du rang 23 en colonne 2
If .Cells(j, 2) = "" And .Cells(j - 1, 2) <> "" Then
.Cells(j, 2) = CStr(Me("TextBox4").Value)
.Cells(j, 2).WrapText = True
GoTo fin
End If
Next j
End With
fin:
Me("TextBox4").Value = ""
End Sub

Private Sub CheckBox1_Click()
With Sheets("Base_GENERALITES")
' alimente la combobox depuis la feuille Base_....
For j = 23 To 58
If .Cells(j, 2) <> "" And .Cells(j, 1) = 1 Then Generalite.Preselection.AddItem .Cells(j, 2).Value
Next j
End With
End Sub
 

Pièces jointes

  • Test_à_pb2.xls
    259 KB · Affichages: 48

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 459
Membres
103 547
dernier inscrit
matospi