Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Validation automatique d'une cellule lors de la saisie d'une valeur

5 réponses
Avatar
Steven
Bonjour @ toutes et tous,


Je souhaiterai pouvoir valider automatiquement une cellule apres avoir saisi
une valeur basé sur un caractère.

En clair je voudrais que l'utilisateur ne soit pas obligé d'appuyer sur
"Entrée" pour valider la cellule et passer à la cellule suivante.

Merci de l'aide que vous pourrez m'apporter.

Steven

PS : Enlevez le NOSPAM pour me répondre en PV

5 réponses

Avatar
AV
Ca me semble impossible !

AV
Avatar
Steven
Bonjour AV,

AV wrote:
Ca me semble impossible !


Merci même si cela ne me satisfait pas du tout :(

Y aurait-il une solution en passant par le VB ??

AV
Steven


Avatar
Paul V.
Bonjour,

Même en VBA cela me semble impossible tel quel comme le disait Alain.
Tant que "enter" n'est pas activé ( ou une fleche de déplacement, etc) ,
Excel est en mode introduction et en attente.
Seule solution à mon sens, passer par un formulaire de saisie en VBA mais on
est parti pour construire une usine à gaz là ou un seule touche de clavier
fait très bien l'affaire.
A+

Paul V

Steven wrote:
Bonjour AV,

AV wrote:
Ca me semble impossible !


Merci même si cela ne me satisfait pas du tout :(

Y aurait-il une solution en passant par le VB ??

AV
Steven




Avatar
Steven
Bonsoir Paul,

Paul V. wrote:
Bonjour,

Même en VBA cela me semble impossible tel quel comme le disait Alain.
Tant que "enter" n'est pas activé ( ou une fleche de déplacement,
etc) , Excel est en mode introduction et en attente.
Seule solution à mon sens, passer par un formulaire de saisie en VBA
mais on est parti pour construire une usine à gaz là ou un seule
touche de clavier fait très bien l'affaire.


Merci bien de votre réponse.
C'est sûr que c'est une usine à gaz... :(

A+


Cordialement

Paul V


Steven

Avatar
Benead
Salut Steven,

Un exemple qui fonctionne en passant par un TextBox :

1) Dans la barre d'outils "Commande", tu créée un TextBox nommé TextBox1 que tu place sur ta feuille
2) Tu copies le code suivant dans un module standard et tu l'exécutes (il ne te servira qu'une fois) :

' ***************************************
Sub InitMaTextBox()
With ActiveSheet.OLEObjects("TextBox1")
.Left = ActiveCell.Left
.Top = ActiveCell.Top
.Width = ActiveCell.Width
.Height = ActiveCell.Height
With .Object
.MaxLength = 1
.BackColor = RGB(0, 255, 255)
.SelectionMargin = False
End With
End With
End Sub
' ***************************************

3) Dans le module de la feuille tu copie ce code :

' ******************************
Option Explicit
Public CellActive As Range

Private Sub TextBox1_Change()
If Len(TextBox1.Value) >= 1 Then _
Range(ActiveSheet.OLEObjects(1).TopLeftCell.Address).Offset(0, 1).Activate
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then CellActive.Offset(1, 0).Activate
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not CellActive Is Nothing Then CellActive = TextBox1.Value
If Intersect(Target, Columns(3)) Is Nothing Or Target.Count <> 1 Then
TextBox1.Visible = False
Set CellActive = Nothing
Else
With TextBox1
.Value = Target.Value
.Visible = True
.Top = Target.Top
.Left = Target.Left
.Width = Target.Width
.Height = Target.Height * 1.5
End With
If Left$(Application.Version, 1) = "8" Then TextBox1.Select
ActiveSheet.TextBox1.Activate
Set CellActive = Target
End If
End Sub

' ***************************************

Le TextBox ne s'affiche que dans la colonne "C".
Tu peux modifier le numéro de la colonne sur cette ligne :
If Intersect(Target, Columns(3))

D'autre part ."MaxLength = 1" détermine le nombre de caractères à autoriser.


A+
Benead
Bretagne
Xl97
-------- ;-)

Steven a écrit:
Bonsoir Paul,

Paul V. wrote:

Bonjour,

Même en VBA cela me semble impossible tel quel comme le disait Alain.
Tant que "enter" n'est pas activé ( ou une fleche de déplacement,
etc) , Excel est en mode introduction et en attente.
Seule solution à mon sens, passer par un formulaire de saisie en VBA
mais on est parti pour construire une usine à gaz là ou un seule
touche de clavier fait très bien l'affaire.



Merci bien de votre réponse.
C'est sûr que c'est une usine à gaz... :(


A+



Cordialement


Paul V



Steven