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

vba - SendKeys "{F2}+{HOME}" à quoi ça sert ?

4 réponses
Avatar
twinley
Bonjour à tous,

Dans le sub ci dessous - détection de doublon - qui doit venir de chez
AV (?), je constate qu'elle fonctionne à merveille mais en pas à pas, je
ne comprend pas l'utilité de la ligne SendKeys "{F2}+{HOME}"
J'ai ajouté un End au code initial pour tout arrêter.

Quand je l'enlève, ça fonctionne aussi. Mystère.
A la main F2 met en édition et home envoi en début de ligne d'une
cellule qui ne contient rien.

Si une bonne âme a quelques explications pour ignare, Merci d'avance...




Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Selection.Count > 1 Then Exit Sub
If Intersect(zz, [A:A]) Is Nothing Or zz = "" Then Exit Sub
Set C = [A:A].Find(zz(1), zz(1))
If C.Address <> zz(1).Address Then
MsgBox "Nom de client déjà présent en " _
& C.Address, vbCritical, "Doublon !"
Application.EnableEvents = False
zz = "": zz.Select
Application.EnableEvents = True
SendKeys "{F2}+{HOME}"
End
End If
End Sub


--
à+twinley

4 réponses

Avatar
Jacques93
Bonjour twinley,

L'instruction SendKeys string[, wait] envoie une chaine de caratères
à la fenêtre active. Si tu es en pas à pas, cette chaine est donc
envoyée à l'éditeur VBA.
En exexcution 'normale' cela force le passage en modification de cellule.


Bonjour à tous,

Dans le sub ci dessous - détection de doublon - qui doit venir de chez
AV (?), je constate qu'elle fonctionne à merveille mais en pas à pas, je
ne comprend pas l'utilité de la ligne SendKeys "{F2}+{HOME}"
J'ai ajouté un End au code initial pour tout arrêter.

Quand je l'enlève, ça fonctionne aussi. Mystère.
A la main F2 met en édition et home envoi en début de ligne d'une
cellule qui ne contient rien.

Si une bonne âme a quelques explications pour ignare, Merci d'avance...




Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Selection.Count > 1 Then Exit Sub
If Intersect(zz, [A:A]) Is Nothing Or zz = "" Then Exit Sub
Set C = [A:A].Find(zz(1), zz(1))
If C.Address <> zz(1).Address Then
MsgBox "Nom de client déjà présent en " _
& C.Address, vbCritical, "Doublon !"
Application.EnableEvents = False
zz = "": zz.Select
Application.EnableEvents = True
SendKeys "{F2}+{HOME}"
End
End If
End Sub





--
Cordialement,

Jacques.

Avatar
twinley
Merci Jacques93

toutefois je ne comprend pas l'utilité de ce code dans la sub. Une
validation de modif, le curseur se place sur la première cell vide de la
colonne A.
Pour quel rôle ? De plus les sendkeys sont souvent évités.
En cas d'erreur peut être ?!
Que cette ligne soit là ou pas, cela fonctionne...
Tu me diras : "Ben si ça marche, ne fait pas ton rick, c'est pénible..."

:-D

à+twinley

Jacques93 wrote:
Bonjour twinley,

L'instruction SendKeys string[, wait] envoie une chaine de caratères à
la fenêtre active. Si tu es en pas à pas, cette chaine est donc envoyée
à l'éditeur VBA.
En exexcution 'normale' cela force le passage en modification de cellule.



Bonjour à tous,

Dans le sub ci dessous - détection de doublon - qui doit venir de chez
AV (?), je constate qu'elle fonctionne à merveille mais en pas à pas,
je ne comprend pas l'utilité de la ligne SendKeys "{F2}+{HOME}"
J'ai ajouté un End au code initial pour tout arrêter.

Quand je l'enlève, ça fonctionne aussi. Mystère.
A la main F2 met en édition et home envoi en début de ligne d'une
cellule qui ne contient rien.

Si une bonne âme a quelques explications pour ignare, Merci d'avance...




Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Selection.Count > 1 Then Exit Sub
If Intersect(zz, [A:A]) Is Nothing Or zz = "" Then Exit Sub
Set C = [A:A].Find(zz(1), zz(1))
If C.Address <> zz(1).Address Then
MsgBox "Nom de client déjà présent en " _
& C.Address, vbCritical, "Doublon !"
Application.EnableEvents = False
zz = "": zz.Select
Application.EnableEvents = True
SendKeys "{F2}+{HOME}"
End
End If
End Sub








Avatar
Jacques93
Bonjour twinley,

Si la ligne est là on passe en mode édition (curseur clignotant dans la
cellule). Si elle n'est pas la, la cellule est simplement sélectionnée).
Non ?

Merci Jacques93

toutefois je ne comprend pas l'utilité de ce code dans la sub. Une
validation de modif, le curseur se place sur la première cell vide de la
colonne A.
Pour quel rôle ? De plus les sendkeys sont souvent évités.
En cas d'erreur peut être ?!
Que cette ligne soit là ou pas, cela fonctionne...
Tu me diras : "Ben si ça marche, ne fait pas ton rick, c'est pénible..."

:-D

à+twinley

Jacques93 wrote:

Bonjour twinley,

L'instruction SendKeys string[, wait] envoie une chaine de caratères
à la fenêtre active. Si tu es en pas à pas, cette chaine est donc
envoyée à l'éditeur VBA.
En exexcution 'normale' cela force le passage en modification de cellule.



Bonjour à tous,

Dans le sub ci dessous - détection de doublon - qui doit venir de
chez AV (?), je constate qu'elle fonctionne à merveille mais en pas à
pas, je ne comprend pas l'utilité de la ligne SendKeys
"{F2}+{HOME}"
J'ai ajouté un End au code initial pour tout arrêter.

Quand je l'enlève, ça fonctionne aussi. Mystère.
A la main F2 met en édition et home envoi en début de ligne d'une
cellule qui ne contient rien.

Si une bonne âme a quelques explications pour ignare, Merci d'avance...




Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Selection.Count > 1 Then Exit Sub
If Intersect(zz, [A:A]) Is Nothing Or zz = "" Then Exit Sub
Set C = [A:A].Find(zz(1), zz(1))
If C.Address <> zz(1).Address Then
MsgBox "Nom de client déjà présent en " _
& C.Address, vbCritical, "Doublon !"
Application.EnableEvents = False
zz = "": zz.Select
Application.EnableEvents = True
SendKeys "{F2}+{HOME}"
End
End If
End Sub









--
Cordialement,

Jacques.



Avatar
twinley
.../...

oui, avec le code hyper concis d'AV, il y a des subtilités difficile à
saisir. Cela fait ce que tu dis. C'est une façon curieuse de positionner
le focus en fin de liste... Mais c'était pe dans le cahier des charges
de la question initiale.

Merci pour ton éclairage.

à+twinley

Jacques93 wrote:
Bonjour twinley,

Si la ligne est là on passe en mode édition (curseur clignotant dans la
cellule). Si elle n'est pas la, la cellule est simplement sélectionnée).
Non ?


Merci Jacques93

toutefois je ne comprend pas l'utilité de ce code dans la sub. Une
validation de modif, le curseur se place sur la première cell vide de
la colonne A.
Pour quel rôle ? De plus les sendkeys sont souvent évités.
En cas d'erreur peut être ?!
Que cette ligne soit là ou pas, cela fonctionne...
Tu me diras : "Ben si ça marche, ne fait pas ton rick, c'est pénible..."

:-D

à+twinley

Jacques93 wrote:

Bonjour twinley,

L'instruction SendKeys string[, wait] envoie une chaine de
caratères à la fenêtre active. Si tu es en pas à pas, cette chaine
est donc envoyée à l'éditeur VBA.
En exexcution 'normale' cela force le passage en modification de
cellule.



Bonjour à tous,

Dans le sub ci dessous - détection de doublon - qui doit venir de
chez AV (?), je constate qu'elle fonctionne à merveille mais en pas
à pas, je ne comprend pas l'utilité de la ligne SendKeys
"{F2}+{HOME}"
J'ai ajouté un End au code initial pour tout arrêter.

Quand je l'enlève, ça fonctionne aussi. Mystère.
A la main F2 met en édition et home envoi en début de ligne d'une
cellule qui ne contient rien.

Si une bonne âme a quelques explications pour ignare, Merci d'avance...




Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Selection.Count > 1 Then Exit Sub
If Intersect(zz, [A:A]) Is Nothing Or zz = "" Then Exit Sub
Set C = [A:A].Find(zz(1), zz(1))
If C.Address <> zz(1).Address Then
MsgBox "Nom de client déjà présent en " _
& C.Address, vbCritical, "Doublon !"
Application.EnableEvents = False
zz = "": zz.Select
Application.EnableEvents = True
SendKeys "{F2}+{HOME}"
End
End If
End Sub