Validation de données

Le
nuit6
Bonjour à tous,

J'utilise Excel 2003.
Dans une feuille j'ai 3 colonnes.
Pour chaque ligne seule une colonne doit pouvoir recevoir une valeur,
par ex :

3 vide vide
vide 3 vide
vide vide 3

J'ai essayé avec Données / Validation mais si les cellules ne sont pas
contigües ça ne fonctionne pas. Est-ce que vous pourriez m'indiquer
comment faire en VBA svp ?

Merci d'avance pour vos réponses !
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
garnote
Le #17987071
Salut,

Supposons que la plage concernée est A1:C10.
Avec cette macro de feuille, tu ne pourras pas entrer
plus d'une valeur sur une même ligne.
Fais un clic droit sur l'onglet, un clic gauche sur "Visualiser le code"
et colle cette macro sur la feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
Set ici = Range("A1:C10")
If Not Intersect(Target, ici) Is Nothing And Target.Count = 1 Then
ligne = Target.Row
If Application.CountA(ici.Rows(ligne)) > 1 Then Target = ""
End If
End Sub

Serge




Bonjour à tous,

J'utilise Excel 2003.
Dans une feuille j'ai 3 colonnes.
Pour chaque ligne seule une colonne doit pouvoir recevoir une valeur,
par ex :

3 vide vide
vide 3 vide
vide vide 3

J'ai essayé avec Données / Validation mais si les cellules ne sont pas
contigües ça ne fonctionne pas. Est-ce que vous pourriez m'indiquer
comment faire en VBA svp ?

Merci d'avance pour vos réponses !
FFO
Le #17987671
Salut à toi

Dans le VBA de la feuille (Touche ALT et F11 simultanée) mets ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target <> "" Then
Range("A" & Target.Row).Activate
Range("A" & Target.Row).EntireRow.Find(What:="*", After:=Range("A" &
Target.Row), LookIn:=xlValues).Activate
Trouvé = ActiveCell.Address
Range("A" & Target.Row).EntireRow.FindNext(After:¬tiveCell).Activate
If ActiveCell.Address <> Trouvé Then
Target.Value = ""
MsgBox ("Une cellule est déjà saisie sur cette ligne")
End If
End If
End Sub

Tu ne pourras saisir par lignes que dans une seule cellule

Celà devrait convenir
Dis moi !!!
Papyjac
Le #18001381
Bonjour nuit6

Oui, tu peux utiliser la fonction validation :
1. Il faut mettre une validation par colonne
2. Il faut utiliser une formule (Choix Personnalisé)

La formule doit rendre vrai sir les données sous valide, et faux dans le cas
contraire

Bon courage

--
Papyjac


"" a écrit :

Bonjour à tous,

J'utilise Excel 2003.
Dans une feuille j'ai 3 colonnes.
Pour chaque ligne seule une colonne doit pouvoir recevoir une valeur,
par ex :

3 vide vide
vide 3 vide
vide vide 3

J'ai essayé avec Données / Validation mais si les cellules ne sont pas
contigües ça ne fonctionne pas. Est-ce que vous pourriez m'indiquer
comment faire en VBA svp ?

Merci d'avance pour vos réponses !



Publicité
Poster une réponse
Anonyme