Retour a la ligne dans un textbox.

D

DUCL44

Guest
BONJOUR @ TOUS

Voila mon probleme, Je suis en train de réalisé (grace a votre aide ) un programme dans lequel j'ai des texbox. Lorsque je rempli un texbox il me rempli une cellule défini.
Mais comment faire pour revenir a la ligne?
Lorsque l'on tape du texte dans une cellule pour revenir a la ligne il suffit de faire ALT+ENTREE
Qu est ce qu'il faut que je tape dans le texbox pour qu'il revienne a la ligne (dans la cellule defini)

Merci @ vous

DUCL
 
@

@+Thierry

Guest
=> DEMO UserForm TextBox Multiligne Retour à la ligne "Carré" dans dans Cellule

Re Bonjour DUCL44, Salut Ch'ti Minick et Le Forum

J'espere que la version Lien supprimé te donne entière satisfaction...

Bon sinon pour ton problème, oui c'est exactement comme Ch'ti Minick vient d'écrire, tu peux paramétrer ta TextBox avec la propriété Multiligne soit par la fenêtre propriété, soit par une instruction VBA comme ceci : TextBox1.MultiLine = True

Ensuite c'est toujour exactement comme Ch'ti Minick t'a dit Shift + Enter pour passer à la ligne en saisie dans la TextBox.

Mais ce que Ch'ti Minick t'a pas dit, c'est que lorsque ton programme va remplir une cellule en fonction de ce qui à été saisi dans une TextBox Multiligne, le Retour Charriot VBA "VbCrlf" va te faire un joli petit carré à chaque retour à la ligne... Pas très joli !!

La démo ci-jointe propose une solution à ce Ch'ti problème !!

Bonne Fin d'Aprèm
@+Thierry
 

Pièces jointes

  • USF_TextBox_Multilignes_Report.zip
    11.7 KB · Affichages: 344
J

JPH

Guest
Voilà je ne connais la méthode la plus orthodoxe que celle-ci pour définir la largeur d’une colonne par rapport à celle d’un « Text Box »
Je profite du forum et de ta question pour lancer un appel !!!
Dans ma méthode je me base sur la position « Left » de la cellule qui est à droite de la destination et par tâtonnement arriver à la bonne largeur.
Ainsi la cellule prend la même forme que le « Text Box », car la fonction « ColumnWidth » prend pour base la largeur de la police employée pour effectuer une conversion.
Donc en gros je procède ainsi :
Larg = largeur du text Box
Point de départ « Left » de la colonne cible plus larg.
J’ajoute +1 à chaque tour pour que « Left » de la colonne à droite se mette en position, en ajustant la colonne cible par le beau « ColumnWidth »
'-------------------
Sub essai()
Application.ScreenUpdating = False
lig = 1 '--- ligne de destination
col = 3 '--- colonne de destination
esp = Cells(lig, col).ColumnWidth
dep = Cells(lig, col).Left
larg = ActiveSheet.Shapes("Text Box 1").Width
texte = ActiveSheet.Shapes("Text Box 1").TextFrame.Characters.Text
gtxt = ActiveSheet.Shapes("Text Box 1").TextFrame.Characters.Font.Size
'--- cellule de destination ------------------------------------------
'ici c'est "C1"
For largeur = esp To esp + 100
If (dep + larg) < Cells(lig, col + 1).Left Then Exit For
Cells(lig, col).ColumnWidth = largeur
Next
'----
Cells(lig, col).HorizontalAlignment = xlGeneral
Cells(lig, col).VerticalAlignment = xlTop
Cells(lig, col).WrapText = True
Cells(lig, col).Font.Size = gtxt
Cells(lig, col) = texte
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • exemple.zip
    9.1 KB · Affichages: 87
  • exemple.zip
    9.1 KB · Affichages: 79
  • exemple.zip
    9.1 KB · Affichages: 79
D

DUCL44

Guest
Salut tous le monde

j'ai essayer le code de @+Thierry et je n'arrive pas a le faire fonctionner parfaitement. En effet mon textbox4 ne marche pas (marche mal plutot) et je ne sais pas pourquoi

Bon ce sera plus clair avec la piece jointe.

Merci jph de ta réponse, mais j'ai pas eu le temps de tester. ( J'ai tellement (grace aux réponses du forum) de chose a tester et a comprendre.)

Merci a tous

@+

DUCL
 

Pièces jointes

  • retouralaligne.zip
    12.9 KB · Affichages: 85
  • retouralaligne.zip
    12.9 KB · Affichages: 84
  • retouralaligne.zip
    12.9 KB · Affichages: 97
@

@+Thierry

Guest
Bonsoir DUCL44, JPH, le Forum


Héhéhé il me semble que je te fais des post pour rien Ducl !!!

Private Sub CommandButton1_Click()
Sheets("feuil1").Select
Dim LeTexte As String
LeTexte = TextBox4
LeTexte = Application.WorksheetFunction.Substitute(LeTexte, vbCrLf, Chr(10))
ActiveCell.Value = LeTexte'pourquoi l'active ? !!!
End Sub

Non non non et non !!!


Pas de SELECT !!!!!!!!!!!!!!!!!!!! sivouplé !!! revoir déjà mes posts pour toi !!

Ensuite on parlait de saisie en TextBox avec retour à la ligne dans ce fil, et bien sûr (comme d'hab) je fournis une démos qui remplie déjà la TextBox automatiquement (pour les feignants qui veulent pas taper !!)...

Mais c'est cette partie du code au dessus (et seulement celle_ci) qui t'interresse pour supprimer le caractère Retour Chariot... pas besoin de reprendre absolument Tout le code !!! (lol)

Pour JPH, j'ai survolé ton code, qui finalement n'est pas vraiment dans le sujet du fil..... Mais en tout cas il marche ;-) !! je suppose qu'il y a bien un moyen de faire plus direct que de passer par tout ceci, mais c'est très prise de tête à cette heure ci !! (euf juste en passant moi je balancerais à cette heure-ci un EntireRow.AutoFit suivi d'un EntireColumn.AutoFit.....)

Just a thing :
With Cells(lig, col)
.blah blah blah....
.Blah blah bli....

Mais sinon, je vais faire un gros dodo !!

Bonne nuit à vous tous et toutes
@+Thierry
 
@

@+Thierry

Guest
Bonsoir DUCL

En attendant toujours des nouvelles de Lien supprimé vu que t'avais pas le temps........

pour ta mise à jour de cellule c'est pour pas sorcier ?

Voici le principe de base :

Private Sub CommandButton1_Click()
Dim LeTexte As String
LeTexte = TextBox4
LeTexte = Application.WorksheetFunction.Substitute(LeTexte, vbCrLf, Chr(10))
Sheets("Feuil1").Range("A1") = LeTexte
End Sub

....
Bonne Nuit
@+Thierry
 
D

DUCL44

Guest
Salut @+thierry et tous le forum

J'ai bien entré le code que tu m'as donné. Le texte revient bien a la ligne lorsque je valide sans les carrés. En revanche la hauteur de la cellule ne s'adapte pas a la hauteur. Si je tape 111 dans le texbox 1 et 222 dans le textbox 2, lorsque je valide j'ai bien dans la cellule
111
222 (Mais ici il faut que je relimite la cellule moi meme pour voir 222 : -( )

Je suis sur que c'est une connerie de rien du tout. Enfin c pas grave je cherche.

En ce qui concerne le "ca" (les combobox qui défilent lorsque l'on tape le code ou ancien code ) je regarde ce soir mais j'ai peur que ce soit compliqué pour moi qui débute (mais bon je regarde, je test et de toute facon qui ne tente rien n'a rien, et en plus sa me fera surement progresser :))

@+ tous le monde et merci

DUCL
 
V

Vériland

Guest
bonsoir les gens de ce fil

je pense que tu peux faire en sorte qu'excel ajuste automatiquement la hauteur de ligne ou de la colonne selon la valeur qui s'inscrira dans la cellule...

dans ce cas faire :

format/ligne/ajustement automatique

Idem pour colonne éventuellement...

A+Veriland.gif
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87