Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 TextBox ajout texte dans cellule : clic sur entrée pour sortir

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous

Au clic sur la cellule D4 : TextBox1 s'ouvre et je peux saisir un commentaire.
Ce commentaire, au clic sur entrée s'ajoute dans la cellule devant le texte déjà existant.

Ca fonctionne sans souci (grâce à Gérard )

Ce qui me turlupine :
1 - Si j'ai saisi un texte dans TextBox1, 1 seul clic sur entrée valide et ferme l'UserForm,
2 - Si je n'ai pas saisi de texte, il me faut 2 clic sur entrée pour en sortir.

Sauriez-vous comment sortir avec 1 seul clic sur entrée si je n'ai pas saisi de texte dans TextBox1 ?
C'est pas bien gênant mais quand même lol

En cas, je joins le fichier test seul le test TextBox1 est concerné.
Un grand merci à tous,
 

Pièces jointes

  • texte ajout ds cellule.xlsm
    35.3 KB · Affichages: 4

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour Lionel


Essaie ceci :
VB:
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then Unload Job75
End Sub
Bonne journée
@+ Eric c
 

Usine à gaz

XLDnaute Barbatruc
Re-Compris, il suffit d'ajouter un SendKeys (de Gérard ) dans le code d'initialisation :
VB:
Private Sub UserForm_Initialize()
CreateObject("wscript.shell").SendKeys "{ENTER}"
'hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
'"X", "D") & "Frame", Me.Caption)
'SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
End Sub
Ci joint fichier qui fonctionne comme je le souhaite...
 

Pièces jointes

  • texte ajout ds cellule.xlsm
    36.1 KB · Affichages: 2

job75

XLDnaute Barbatruc
Bonjour Lionel, Eric C,

Pour que la touche <Entrée> ferme toujours l'UserForm il suffit de mettre le focus dans TextBox1 :
VB:
Private Sub UserForm_Initialize()
TextBox1.SetFocus
End Sub
A+
 

Pièces jointes

  • texte ajout ds cellule.xlsm
    39.9 KB · Affichages: 2

Usine à gaz

XLDnaute Barbatruc
Bonjour Gérard
Merci d'être là et j'espère que tu vas de mieux en mieux
TextBox1.SetFocus : Je ne connaissais pas
Merci, c'est nickel aussi et c'est peut-être mieux d'éviter le CreateObject("wscript.shell").SendKeys "{ENTER}"
 

Usine à gaz

XLDnaute Barbatruc
Bonjour Eric C ; Bonjour Gérard, Bonjour le Forum

Je reviens sur ce fil car j'ai un besoin que je n'avais pas prévu
Le code fonctionne nickel bien
Voici le besoin qui m'est apparu :
Si la colonne E de la ligne active contient "Date", je voudrais que TextBox1 ne s'affiche pas et que "Cells(ActiveCell.Row, 5) soit directement activée"

J'ai fait pas mal de tests "dans toutes les positions" lol. je n'y suis pas arrivé.
Voilà le code que j'ai gardé :
VB:
Private Sub UserForm_Initialize()
If Cells(ActiveCell.Row, 5) = 0 Then
Exit Sub
Else
hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
X, "D") & "Frame", Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
TextBox1.SetFocus
End If
End Sub
Auriez-vous le bon code ?
En cas, je joins le fichier test et je continue mes élucubrations.....
Un grand merci à vous
 

Pièces jointes

  • texte ajout ds cellule4.xlsm
    34.1 KB · Affichages: 2

Usine à gaz

XLDnaute Barbatruc
LOL : je m'améliore. je pense avoir trouvé :
VB:
Private Sub UserForm_Activate()
If Cells(ActiveCell.Row, 5) <> 0 Then
Unload Job75
Exit Sub
End If
End Sub
Voici en pièce jointe le fichier qui semble fonctionner.

Petite question : je vois passer TextBox1 est-ilk possible de "ne pas le voir passer" ? lol
Merci à tous
 

Pièces jointes

  • texte ajout ds cellule4.xlsm
    27.4 KB · Affichages: 1

Usine à gaz

XLDnaute Barbatruc
Bon, j'ai trouvé cette fois-ci comme il faut je crois lol
Il ne faut pas coder dans l'UserForm mais dans la feuille tout simplement.
Voici le bon fichier en pièce jointe
 

Pièces jointes

  • texte ajout ds cellule4 bon.xlsm
    27.8 KB · Affichages: 3

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…