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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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
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.
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
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
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
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.
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
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.
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
.../...
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
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