Bonjour Christèle,
J'ai pas tout saisi, mais ça pourrait ressembler à ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set g = Columns.Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If g.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & g.Address
End If
Else
Err = 0
End If
End If
End Sub
'----------------------
Salutations!
"christèle" a écrit dans le message de news:
Je cherche à obtenir un avertissement lorsqu'une nouvelle valeur saisie en
colonne D existe déjà dans cette colonne.
Dans l'objet Feuil1 de mon projet VBA j'ai saisi le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target <> Empty Then
j = ActiveCell.Row
For i = 1 To j - 1
If Cells(i, 4) = ActiveCell Then
MsgBox ("la valeur a déjà été saisie à la ligne : " & i )
End If
Next
End If
End Sub
Le code marche bien mais j'ai 3 problèmes :
1) La vérification ne se fait que lorsque je fais un copier/coller d'une des
valeurs de D ou lorsqu'après avoir saisi une valeur en D, je valide ma saisie
en cliquant sur le bouton Entrer (à gauche dans la barre de formule). Que
dois je faire pour que la vérification se fasse également lorsque je tape la
touche Entrée ou Tab ?
2) Lorsque je supprime une valeur, j'ai automatiquement un bogg. Comment
éviter cela ? (procédure d'erreur ? autre solution ?)
3)Je souhaiterais que la casse ne soit pas distinctive. Que la valeur saisie
en D soit en majuscule ou en minuscule, pour moi, il ne s'agit pas d'un
doublon. Comment faire pour qu'il en soit ainsi pour Excel ?
Merci
Christèle
Bonjour Christèle,
J'ai pas tout saisi, mais ça pourrait ressembler à ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set g = Columns.Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If g.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & g.Address
End If
Else
Err = 0
End If
End If
End Sub
'----------------------
Salutations!
"christèle" <christle@discussions.microsoft.com> a écrit dans le message de news:
4B5E6C96-F975-4094-B2F5-7B6BC46ABABB@microsoft.com...
Je cherche à obtenir un avertissement lorsqu'une nouvelle valeur saisie en
colonne D existe déjà dans cette colonne.
Dans l'objet Feuil1 de mon projet VBA j'ai saisi le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target <> Empty Then
j = ActiveCell.Row
For i = 1 To j - 1
If Cells(i, 4) = ActiveCell Then
MsgBox ("la valeur a déjà été saisie à la ligne : " & i )
End If
Next
End If
End Sub
Le code marche bien mais j'ai 3 problèmes :
1) La vérification ne se fait que lorsque je fais un copier/coller d'une des
valeurs de D ou lorsqu'après avoir saisi une valeur en D, je valide ma saisie
en cliquant sur le bouton Entrer (à gauche dans la barre de formule). Que
dois je faire pour que la vérification se fasse également lorsque je tape la
touche Entrée ou Tab ?
2) Lorsque je supprime une valeur, j'ai automatiquement un bogg. Comment
éviter cela ? (procédure d'erreur ? autre solution ?)
3)Je souhaiterais que la casse ne soit pas distinctive. Que la valeur saisie
en D soit en majuscule ou en minuscule, pour moi, il ne s'agit pas d'un
doublon. Comment faire pour qu'il en soit ainsi pour Excel ?
Merci
Christèle
Bonjour Christèle,
J'ai pas tout saisi, mais ça pourrait ressembler à ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set g = Columns.Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If g.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & g.Address
End If
Else
Err = 0
End If
End If
End Sub
'----------------------
Salutations!
"christèle" a écrit dans le message de news:
Je cherche à obtenir un avertissement lorsqu'une nouvelle valeur saisie en
colonne D existe déjà dans cette colonne.
Dans l'objet Feuil1 de mon projet VBA j'ai saisi le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target <> Empty Then
j = ActiveCell.Row
For i = 1 To j - 1
If Cells(i, 4) = ActiveCell Then
MsgBox ("la valeur a déjà été saisie à la ligne : " & i )
End If
Next
End If
End Sub
Le code marche bien mais j'ai 3 problèmes :
1) La vérification ne se fait que lorsque je fais un copier/coller d'une des
valeurs de D ou lorsqu'après avoir saisi une valeur en D, je valide ma saisie
en cliquant sur le bouton Entrer (à gauche dans la barre de formule). Que
dois je faire pour que la vérification se fasse également lorsque je tape la
touche Entrée ou Tab ?
2) Lorsque je supprime une valeur, j'ai automatiquement un bogg. Comment
éviter cela ? (procédure d'erreur ? autre solution ?)
3)Je souhaiterais que la casse ne soit pas distinctive. Que la valeur saisie
en D soit en majuscule ou en minuscule, pour moi, il ne s'agit pas d'un
doublon. Comment faire pour qu'il en soit ainsi pour Excel ?
Merci
Christèle
Bonjour Christèle,
J'ai pas tout saisi, mais ça pourrait ressembler à ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set g = Columns.Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If g.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & g.Address
End If
Else
Err = 0
End If
End If
End Sub
'----------------------
Salutations!
"christèle" a écrit dans le message de news:
Je cherche à obtenir un avertissement lorsqu'une nouvelle valeur saisie en
colonne D existe déjà dans cette colonne.
Dans l'objet Feuil1 de mon projet VBA j'ai saisi le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target <> Empty Then
j = ActiveCell.Row
For i = 1 To j - 1
If Cells(i, 4) = ActiveCell Then
MsgBox ("la valeur a déjà été saisie à la ligne : " & i )
End If
Next
End If
End Sub
Le code marche bien mais j'ai 3 problèmes :
1) La vérification ne se fait que lorsque je fais un copier/coller d'une des
valeurs de D ou lorsqu'après avoir saisi une valeur en D, je valide ma saisie
en cliquant sur le bouton Entrer (à gauche dans la barre de formule). Que
dois je faire pour que la vérification se fasse également lorsque je tape la
touche Entrée ou Tab ?
2) Lorsque je supprime une valeur, j'ai automatiquement un bogg. Comment
éviter cela ? (procédure d'erreur ? autre solution ?)
3)Je souhaiterais que la casse ne soit pas distinctive. Que la valeur saisie
en D soit en majuscule ou en minuscule, pour moi, il ne s'agit pas d'un
doublon. Comment faire pour qu'il en soit ainsi pour Excel ?
Merci
Christèle
Bonjour Christèle,
J'ai pas tout saisi, mais ça pourrait ressembler à ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set g = Columns.Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If g.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & g.Address
End If
Else
Err = 0
End If
End If
End Sub
'----------------------
Salutations!
"christèle" <christle@discussions.microsoft.com> a écrit dans le message de news:
4B5E6C96-F975-4094-B2F5-7B6BC46ABABB@microsoft.com...
Je cherche à obtenir un avertissement lorsqu'une nouvelle valeur saisie en
colonne D existe déjà dans cette colonne.
Dans l'objet Feuil1 de mon projet VBA j'ai saisi le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target <> Empty Then
j = ActiveCell.Row
For i = 1 To j - 1
If Cells(i, 4) = ActiveCell Then
MsgBox ("la valeur a déjà été saisie à la ligne : " & i )
End If
Next
End If
End Sub
Le code marche bien mais j'ai 3 problèmes :
1) La vérification ne se fait que lorsque je fais un copier/coller d'une des
valeurs de D ou lorsqu'après avoir saisi une valeur en D, je valide ma saisie
en cliquant sur le bouton Entrer (à gauche dans la barre de formule). Que
dois je faire pour que la vérification se fasse également lorsque je tape la
touche Entrée ou Tab ?
2) Lorsque je supprime une valeur, j'ai automatiquement un bogg. Comment
éviter cela ? (procédure d'erreur ? autre solution ?)
3)Je souhaiterais que la casse ne soit pas distinctive. Que la valeur saisie
en D soit en majuscule ou en minuscule, pour moi, il ne s'agit pas d'un
doublon. Comment faire pour qu'il en soit ainsi pour Excel ?
Merci
Christèle
Bonjour Christèle,
J'ai pas tout saisi, mais ça pourrait ressembler à ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set g = Columns.Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If g.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & g.Address
End If
Else
Err = 0
End If
End If
End Sub
'----------------------
Salutations!
"christèle" a écrit dans le message de news:
Je cherche à obtenir un avertissement lorsqu'une nouvelle valeur saisie en
colonne D existe déjà dans cette colonne.
Dans l'objet Feuil1 de mon projet VBA j'ai saisi le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target <> Empty Then
j = ActiveCell.Row
For i = 1 To j - 1
If Cells(i, 4) = ActiveCell Then
MsgBox ("la valeur a déjà été saisie à la ligne : " & i )
End If
Next
End If
End Sub
Le code marche bien mais j'ai 3 problèmes :
1) La vérification ne se fait que lorsque je fais un copier/coller d'une des
valeurs de D ou lorsqu'après avoir saisi une valeur en D, je valide ma saisie
en cliquant sur le bouton Entrer (à gauche dans la barre de formule). Que
dois je faire pour que la vérification se fasse également lorsque je tape la
touche Entrée ou Tab ?
2) Lorsque je supprime une valeur, j'ai automatiquement un bogg. Comment
éviter cela ? (procédure d'erreur ? autre solution ?)
3)Je souhaiterais que la casse ne soit pas distinctive. Que la valeur saisie
en D soit en majuscule ou en minuscule, pour moi, il ne s'agit pas d'un
doublon. Comment faire pour qu'il en soit ainsi pour Excel ?
Merci
Christèle
Bonjour Christèle,
Essaie ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim G As Range
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set G = Columns(4).Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If G.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & G.Offset(0, -2).Address _
& vbCrLf & "sa valeur est : " & G.Offset(0, -2).Value
End If
Else
Err = 0
End If
End If
Set G = Nothing
End Sub
'----------------------
Pour ce qui est de la bibliographie, il existe plusieurs bon livre pour expliquer VBA sous excel. Cela dépend de ton
niveau et de celui que tu voudrais obtenir.
Salutations!
"christèle" a écrit dans le message de news:
Merci beaucoup, ça marche même si mes explications étaient peu claires...
j'ai encore un autre soucis. Plutot qu'avoir l'adresse de la cellule doublon
j'aimerais extraire la valeur situé en colonne B de la ligne où se situe le
doublon. (si en d4, je saisis une valeur identique à celle en d4, j'aimerais
connaitre alors la valeur situé en d2). ça j'arrivais à l'obtenir avec ma
variable i : MsgBox ("la valeur a déjà été saisie à la ligne : " & i &
Chr(10) & "Valeur de la colonne B : " & Cells(i, 2).Value)
Je cherche aussi quelques références de livres sous Excel VBA qui me
permettront de mieux comprendre ce type d'événement, les fonctions dans les
userforms ... Merci. Christèle
"MichDenis" wrote:Bonjour Christèle,
J'ai pas tout saisi, mais ça pourrait ressembler à ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set g = Columns.Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If g.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & g.Address
End If
Else
Err = 0
End If
End If
End Sub
'----------------------
Salutations!
"christèle" a écrit dans le message de news:
Je cherche à obtenir un avertissement lorsqu'une nouvelle valeur saisie en
colonne D existe déjà dans cette colonne.
Dans l'objet Feuil1 de mon projet VBA j'ai saisi le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target <> Empty Then
j = ActiveCell.Row
For i = 1 To j - 1
If Cells(i, 4) = ActiveCell Then
MsgBox ("la valeur a déjà été saisie à la ligne : " & i )
End If
Next
End If
End Sub
Le code marche bien mais j'ai 3 problèmes :
1) La vérification ne se fait que lorsque je fais un copier/coller d'une des
valeurs de D ou lorsqu'après avoir saisi une valeur en D, je valide ma saisie
en cliquant sur le bouton Entrer (à gauche dans la barre de formule). Que
dois je faire pour que la vérification se fasse également lorsque je tape la
touche Entrée ou Tab ?
2) Lorsque je supprime une valeur, j'ai automatiquement un bogg. Comment
éviter cela ? (procédure d'erreur ? autre solution ?)
3)Je souhaiterais que la casse ne soit pas distinctive. Que la valeur saisie
en D soit en majuscule ou en minuscule, pour moi, il ne s'agit pas d'un
doublon. Comment faire pour qu'il en soit ainsi pour Excel ?
Merci
Christèle
Bonjour Christèle,
Essaie ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim G As Range
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set G = Columns(4).Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If G.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & G.Offset(0, -2).Address _
& vbCrLf & "sa valeur est : " & G.Offset(0, -2).Value
End If
Else
Err = 0
End If
End If
Set G = Nothing
End Sub
'----------------------
Pour ce qui est de la bibliographie, il existe plusieurs bon livre pour expliquer VBA sous excel. Cela dépend de ton
niveau et de celui que tu voudrais obtenir.
Salutations!
"christèle" <christle@discussions.microsoft.com> a écrit dans le message de news:
E6F21694-8F49-48AE-9C58-EDF224F9B99D@microsoft.com...
Merci beaucoup, ça marche même si mes explications étaient peu claires...
j'ai encore un autre soucis. Plutot qu'avoir l'adresse de la cellule doublon
j'aimerais extraire la valeur situé en colonne B de la ligne où se situe le
doublon. (si en d4, je saisis une valeur identique à celle en d4, j'aimerais
connaitre alors la valeur situé en d2). ça j'arrivais à l'obtenir avec ma
variable i : MsgBox ("la valeur a déjà été saisie à la ligne : " & i &
Chr(10) & "Valeur de la colonne B : " & Cells(i, 2).Value)
Je cherche aussi quelques références de livres sous Excel VBA qui me
permettront de mieux comprendre ce type d'événement, les fonctions dans les
userforms ... Merci. Christèle
"MichDenis" wrote:
Bonjour Christèle,
J'ai pas tout saisi, mais ça pourrait ressembler à ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set g = Columns.Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If g.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & g.Address
End If
Else
Err = 0
End If
End If
End Sub
'----------------------
Salutations!
"christèle" <christle@discussions.microsoft.com> a écrit dans le message de news:
4B5E6C96-F975-4094-B2F5-7B6BC46ABABB@microsoft.com...
Je cherche à obtenir un avertissement lorsqu'une nouvelle valeur saisie en
colonne D existe déjà dans cette colonne.
Dans l'objet Feuil1 de mon projet VBA j'ai saisi le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target <> Empty Then
j = ActiveCell.Row
For i = 1 To j - 1
If Cells(i, 4) = ActiveCell Then
MsgBox ("la valeur a déjà été saisie à la ligne : " & i )
End If
Next
End If
End Sub
Le code marche bien mais j'ai 3 problèmes :
1) La vérification ne se fait que lorsque je fais un copier/coller d'une des
valeurs de D ou lorsqu'après avoir saisi une valeur en D, je valide ma saisie
en cliquant sur le bouton Entrer (à gauche dans la barre de formule). Que
dois je faire pour que la vérification se fasse également lorsque je tape la
touche Entrée ou Tab ?
2) Lorsque je supprime une valeur, j'ai automatiquement un bogg. Comment
éviter cela ? (procédure d'erreur ? autre solution ?)
3)Je souhaiterais que la casse ne soit pas distinctive. Que la valeur saisie
en D soit en majuscule ou en minuscule, pour moi, il ne s'agit pas d'un
doublon. Comment faire pour qu'il en soit ainsi pour Excel ?
Merci
Christèle
Bonjour Christèle,
Essaie ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim G As Range
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set G = Columns(4).Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If G.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & G.Offset(0, -2).Address _
& vbCrLf & "sa valeur est : " & G.Offset(0, -2).Value
End If
Else
Err = 0
End If
End If
Set G = Nothing
End Sub
'----------------------
Pour ce qui est de la bibliographie, il existe plusieurs bon livre pour expliquer VBA sous excel. Cela dépend de ton
niveau et de celui que tu voudrais obtenir.
Salutations!
"christèle" a écrit dans le message de news:
Merci beaucoup, ça marche même si mes explications étaient peu claires...
j'ai encore un autre soucis. Plutot qu'avoir l'adresse de la cellule doublon
j'aimerais extraire la valeur situé en colonne B de la ligne où se situe le
doublon. (si en d4, je saisis une valeur identique à celle en d4, j'aimerais
connaitre alors la valeur situé en d2). ça j'arrivais à l'obtenir avec ma
variable i : MsgBox ("la valeur a déjà été saisie à la ligne : " & i &
Chr(10) & "Valeur de la colonne B : " & Cells(i, 2).Value)
Je cherche aussi quelques références de livres sous Excel VBA qui me
permettront de mieux comprendre ce type d'événement, les fonctions dans les
userforms ... Merci. Christèle
"MichDenis" wrote:Bonjour Christèle,
J'ai pas tout saisi, mais ça pourrait ressembler à ceci :
'----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 4 And Target <> Empty Then
Set g = Columns.Find(Target, Target, xlFormulas, xlWhole, , xlNext)
If Err = 0 Then
If g.Address <> Target.Address Then
MsgBox "Une donnée existe déjà à : " & g.Address
End If
Else
Err = 0
End If
End If
End Sub
'----------------------
Salutations!
"christèle" a écrit dans le message de news:
Je cherche à obtenir un avertissement lorsqu'une nouvelle valeur saisie en
colonne D existe déjà dans cette colonne.
Dans l'objet Feuil1 de mon projet VBA j'ai saisi le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target <> Empty Then
j = ActiveCell.Row
For i = 1 To j - 1
If Cells(i, 4) = ActiveCell Then
MsgBox ("la valeur a déjà été saisie à la ligne : " & i )
End If
Next
End If
End Sub
Le code marche bien mais j'ai 3 problèmes :
1) La vérification ne se fait que lorsque je fais un copier/coller d'une des
valeurs de D ou lorsqu'après avoir saisi une valeur en D, je valide ma saisie
en cliquant sur le bouton Entrer (à gauche dans la barre de formule). Que
dois je faire pour que la vérification se fasse également lorsque je tape la
touche Entrée ou Tab ?
2) Lorsque je supprime une valeur, j'ai automatiquement un bogg. Comment
éviter cela ? (procédure d'erreur ? autre solution ?)
3)Je souhaiterais que la casse ne soit pas distinctive. Que la valeur saisie
en D soit en majuscule ou en minuscule, pour moi, il ne s'agit pas d'un
doublon. Comment faire pour qu'il en soit ainsi pour Excel ?
Merci
Christèle