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=E9 avec Donn=E9es / Validation mais si les cellules ne sont pas
contig=FCes =E7a ne fonctionne pas. Est-ce que vous pourriez m'indiquer
comment faire en VBA svp ?
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
garnote
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
a écrit dans le message de news: 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 !
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
<nuit6@romandie.com> a écrit dans le message de news: a56d6cd3-e05a-47a5-9564-a87e9d8b3670@j32g2000yqn.googlegroups.com...
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 ?
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
a écrit dans le message de news: 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
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 !!!
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
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
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 !
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
"nuit6@romandie.com" 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 ?
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 ?