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

Ouverture d'un Userform des la première saisie dans une cellule

7 réponses
Avatar
berapard
Bonsoir =E0 tous,

Je souhaiterais pouvoir faire afficher un Userform (en fait une aide
par une liste de choix) si et d=E8s qu'une premi=E8re lettre est saisie
dans une cellule donn=E9e.

Cela est-il =E0 votre avis possible ?

Si c'est le cas c'est sans doute gr=E2ce =E0 une macro =E9v=E8nementielle
mais mes comp=E9tences limit=E9es ne m'ont permis que de faire
appara=EEtre ce Userform qu'apr=E8s un double clic, ce qui n'est pas
totalement satisfaisant !

Merci d'avance pour votre aide.

Philippe

7 réponses

Avatar
Pierre Fauconnier
Bonsoir

A ma connaissance, ce n'est pas possible... :-(


--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"berapard" a écrit dans le message de news:

Bonsoir à tous,

Je souhaiterais pouvoir faire afficher un Userform (en fait une aide
par une liste de choix) si et dès qu'une première lettre est saisie
dans une cellule donnée.

Cela est-il à votre avis possible ?

Si c'est le cas c'est sans doute grâce à une macro évènementielle
mais mes compétences limitées ne m'ont permis que de faire
apparaître ce Userform qu'après un double clic, ce qui n'est pas
totalement satisfaisant !

Merci d'avance pour votre aide.

Philippe
Avatar
Patrick Penet
Ceci marche pour moi :)

Sub SetKeyboard()
Dim x As Integer
Dim S As String

With Application
On Error Resume Next
For x = 1 To 255
S = Chr(x): .OnKey S, "ShowMyLovelyUF"
Next x
End With
End Sub

Cette sub doit être lancée dès l'ouverture
de l'application.

Cordialement
PP


"berapard" a écrit dans le message de news:
Bonsoir à tous,

Je souhaiterais pouvoir faire afficher un Userform (en fait une aide
par une liste de choix) si et dès qu'une première lettre est saisie
dans une cellule donnée.

Cela est-il à votre avis possible ?

Si c'est le cas c'est sans doute grâce à une macro évènementielle
mais mes compétences limitées ne m'ont permis que de faire
apparaître ce Userform qu'après un double clic, ce qui n'est pas
totalement satisfaisant !

Merci d'avance pour votre aide.

Philippe
Avatar
Patrick Penet
J'ai oublié qu'il faut bien sûr créer une sub

Sub ShowMyLovelyUF()
MyLovelyUF.Show
End Sub

si l'uf se nomme comme ça !!

PP

"Patrick Penet" a écrit dans le message de news: 451972ed$0$21151$
Ceci marche pour moi :)

Sub SetKeyboard()
Dim x As Integer
Dim S As String

With Application
On Error Resume Next
For x = 1 To 255
S = Chr(x): .OnKey S, "ShowMyLovelyUF"
Next x
End With
End Sub

Cette sub doit être lancée dès l'ouverture
de l'application.

Cordialement
PP


"berapard" a écrit dans le message de news:
Bonsoir à tous,

Je souhaiterais pouvoir faire afficher un Userform (en fait une aide
par une liste de choix) si et dès qu'une première lettre est saisie
dans une cellule donnée.

Cela est-il à votre avis possible ?

Si c'est le cas c'est sans doute grâce à une macro évènementielle
mais mes compétences limitées ne m'ont permis que de faire
apparaître ce Userform qu'après un double clic, ce qui n'est pas
totalement satisfaisant !

Merci d'avance pour votre aide.

Philippe




Avatar
Pierre Fauconnier
Salut Patrick...

Astucieux, mais encore faut-il, dans la sub ShowMyLovelyUF, tester l'adresse
de la(les) cellule(s) de la(les) feuille(s) pour déterminer quelle(s)
est(sont) les cellules nécessitant l'ouverture du userform (voir demande de
Berapard), sinon, tu ne sauras plus rien saisir dans aucune cellule d'aucune
feuille... :-((

De plus, avec ce subterfuge, chaque pression sur une touche dans Excel
appelle la proc... Lourd, n'est-il pas??? ;-))

Ceci n'enlève rien au caractère astucieux de ta solution...


--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Patrick Penet" a écrit dans le message de
news: 451972ed$0$21151$
Ceci marche pour moi :)

Sub SetKeyboard()
Dim x As Integer
Dim S As String

With Application
On Error Resume Next
For x = 1 To 255
S = Chr(x): .OnKey S, "ShowMyLovelyUF"
Next x
End With
End Sub

Cette sub doit être lancée dès l'ouverture
de l'application.

Cordialement
PP


"berapard" a écrit dans le message de news:

Bonsoir à tous,

Je souhaiterais pouvoir faire afficher un Userform (en fait une aide
par une liste de choix) si et dès qu'une première lettre est saisie
dans une cellule donnée.

Cela est-il à votre avis possible ?

Si c'est le cas c'est sans doute grâce à une macro évènementielle
mais mes compétences limitées ne m'ont permis que de faire
apparaître ce Userform qu'après un double clic, ce qui n'est pas
totalement satisfaisant !

Merci d'avance pour votre aide.

Philippe




Avatar
Patrick Penet
Bien sûr c'est "brut de fonderie" comme on dit
par ici !!!, cela veut dire rudimentaire.

Dans la sub appelée il faut à l'évidence faire
les tests que tu suggères (feuille, cellule, etc).

Mais ce principe permet d'encadrer l'utilisateur
dans une application en reprogrammant le
clavier, je m'en sert dans les applics simples.

Cordialement.
PP



"Pierre Fauconnier" a écrit dans le message de news: %
Salut Patrick...

Astucieux, mais encore faut-il, dans la sub ShowMyLovelyUF, tester l'adresse de la(les) cellule(s) de la(les) feuille(s) pour
déterminer quelle(s) est(sont) les cellules nécessitant l'ouverture du userform (voir demande de Berapard), sinon, tu ne sauras
plus rien saisir dans aucune cellule d'aucune feuille... :-((

De plus, avec ce subterfuge, chaque pression sur une touche dans Excel appelle la proc... Lourd, n'est-il pas??? ;-))

Ceci n'enlève rien au caractère astucieux de ta solution...


--
Pierre Fauconnier () (Skype: pierre_fauconnier)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Patrick Penet" a écrit dans le message de news:
451972ed$0$21151$
Ceci marche pour moi :)

Sub SetKeyboard()
Dim x As Integer
Dim S As String

With Application
On Error Resume Next
For x = 1 To 255
S = Chr(x): .OnKey S, "ShowMyLovelyUF"
Next x
End With
End Sub

Cette sub doit être lancée dès l'ouverture
de l'application.

Cordialement
PP


"berapard" a écrit dans le message de news:
Bonsoir à tous,

Je souhaiterais pouvoir faire afficher un Userform (en fait une aide
par une liste de choix) si et dès qu'une première lettre est saisie
dans une cellule donnée.

Cela est-il à votre avis possible ?

Si c'est le cas c'est sans doute grâce à une macro évènementielle
mais mes compétences limitées ne m'ont permis que de faire
apparaître ce Userform qu'après un double clic, ce qui n'est pas
totalement satisfaisant !

Merci d'avance pour votre aide.

Philippe








Avatar
berapard
Bonjour,

Et merci pour cette procedure "brute de fonderie" qui répondre à mon
"cahier des charges".

Cependant, elle s'applique dans mon cas à tous les classeurs ouverts,
et bien qu'ayant intégrer son lancement dans un évenement, elle
s'applique quelle que soit la cellule active !?

Philippe


Bien sûr c'est "brut de fonderie" comme on dit
par ici !!!, cela veut dire rudimentaire.

Dans la sub appelée il faut à l'évidence faire
les tests que tu suggères (feuille, cellule, etc).

Mais ce principe permet d'encadrer l'utilisateur
dans une application en reprogrammant le
clavier, je m'en sert dans les applics simples.

Cordialement.
PP


Avatar
Patrick Penet
Pour faire les tests tu peux ajouter à ton gré :

If Not ActiveWorkBook.Name="MonClass" then Exit Sub
If Not ActiveSheet.Name="MaFeuil" then Exit Sub
If Not ActiveCell.Roww then Exit Sub
If Not ActiveCell.Roww then Exit Sub
If Not ActiveCell.Column=5 then Exit Sub

... à ton gré.

Cordialement.
PP


"berapard" a écrit dans le message de news:
Bonjour,

Et merci pour cette procedure "brute de fonderie" qui répondre à mon
"cahier des charges".

Cependant, elle s'applique dans mon cas à tous les classeurs ouverts,
et bien qu'ayant intégrer son lancement dans un évenement, elle
s'applique quelle que soit la cellule active !?

Philippe


Bien sûr c'est "brut de fonderie" comme on dit
par ici !!!, cela veut dire rudimentaire.

Dans la sub appelée il faut à l'évidence faire
les tests que tu suggères (feuille, cellule, etc).

Mais ce principe permet d'encadrer l'utilisateur
dans une application en reprogrammant le
clavier, je m'en sert dans les applics simples.

Cordialement.
PP