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

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 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 :mad:
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

Discussions similaires

Statistiques des forums

Discussions
314 631
Messages
2 111 391
Membres
111 120
dernier inscrit
Barthelemius