VBA-Saisie sans doublon

Le
Pierre.M
Bonsoir tous,

je bloque depuis un moment sur le petit probleme suivant :

Dans les colonnes F1 à O300 d'un tableau je dois remplir certaines
cellules avec des "0" ou des "1".
Je peux avoir plusieurs "0" dans chaque ligne mais un seul "1".

Comment (en VBA - oui, je sais, une validation de donnee serait bien
plus simple, mais ça ne m'arrange pas dans ce cas precis) ouvrir un
MsgBox si j'essaye de saisir un "1" alors qu'il y en a deja un dans la
meme ligne (colonne F a O, toujours) ?

J'ai essaye avec application.worksheetFunction.CountIf, mais je
n'arrive a rien de fonctionnel.

Quelqu'un aurait-il le temps de me depanner ?

Merci beaucoup et bonne soiree a tous.

Pierre.M
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #20456311
Bonjour.
Essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column Or Target.Row > 300 Then Exit Sub
If Application.CountIf(Range("F" & Target.Row, "O" & Target.Row),
1) > 1 Then
MsgBox "Erreur"
End If
End Sub

Cordialement.
Daniel

Bonsoir tous,

je bloque depuis un moment sur le petit probleme suivant :

Dans les colonnes F1 à O300 d'un tableau je dois remplir certaines cellules
avec des "0" ou des "1".
Je peux avoir plusieurs "0" dans chaque ligne mais un seul "1".

Comment (en VBA - oui, je sais, une validation de donnee serait bien plus
simple, mais ça ne m'arrange pas dans ce cas precis) ouvrir un MsgBox si
j'essaye de saisir un "1" alors qu'il y en a deja un dans la meme ligne
(colonne F a O, toujours) ?

J'ai essaye avec application.worksheetFunction.CountIf, mais je n'arrive a
rien de fonctionnel.

Quelqu'un aurait-il le temps de me depanner ?

Merci beaucoup et bonne soiree a tous.

Pierre.M


Pierre.M
Le #20456641
Merci Daniel, c'est exactement ce qu'il me fallait.

J'ai souvent du mal a definir la plage d'application de mes macros (un
truc en ActiveCell.("C1:F1") plutot que "F" & Target.Row... par
exemple). La, en fait, j'etais parti sur une macro avec For each
Cell... Next Cell.
Ta solution est bien plus simple (et surtout elle fonctionne !).

Merci encore et bonne soiree.

Pierre.M





On 2009-10-30 18:05:33 +0100, Daniel.C
Bonjour.
Essaie :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column Or Target.Row > 300 Then Exit Sub
If Application.CountIf(Range("F" & Target.Row, "O" & Target.Row),
1) > 1 Then
MsgBox "Erreur"
End If
End Sub

Cordialement.
Daniel

Bonsoir tous,

je bloque depuis un moment sur le petit probleme suivant :

Dans les colonnes F1 à O300 d'un tableau je dois remplir certaines
cellules avec des "0" ou des "1".
Je peux avoir plusieurs "0" dans chaque ligne mais un seul "1".

Comment (en VBA - oui, je sais, une validation de donnee serait bien
plus simple, mais ça ne m'arrange pas dans ce cas precis) ouvrir un
MsgBox si j'essaye de saisir un "1" alors qu'il y en a deja un dans la
meme ligne (colonne F a O, toujours) ?

J'ai essaye avec application.worksheetFunction.CountIf, mais je
n'arrive a rien de fonctionnel.

Quelqu'un aurait-il le temps de me depanner ?

Merci beaucoup et bonne soiree a tous.

Pierre.M




Publicité
Poster une réponse
Anonyme