OVH Cloud OVH Cloud

Message de rappel si cellule colonne "A" non remplie

7 réponses
Avatar
jl Guitard
Bonjour
dans un tableau, je souhaiterai si une cellule des colonnes de B à Q et
remplie et que la cellule da la colonne "A" est vide avoir un message de
rappel m'indiquant que la saisie dans cette cellule est obligatoire.
Ex: si je saisie une donnée en C45 et que la cellule A45 est vide alors
message de rappel.
Merci d'avance à ceux qui ont une solution
bonne journée à tous

7 réponses

Avatar
Pascal Engelmajer
Salut,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plRef As Range 'plage d'action
Dim cell As Range ' cellule de la colonne A:A
dim lib as String
Dim lig As Integer
Set plRef = Sheets(1).Range("C:C")
Set lib = Range("A1").Text 'on suppose un libellé en A1
If Not Intersect(plRef, Target) Is Nothing Then
lig = Target.Row
Set cell = ActiveSheet.Rows(lig).Cells(1)
If Not (IsEmpty(Target) Or Target.Text = "") Then
If cell = "" Or IsEmpty(cell) Then
Target.Value = ""
cell.Select
MsgBox "La colonne " & lib & " doit être remplie (première
cellule de la ligne).", vbInformation, "Saisie"
End If
End If
End If
End Sub


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"jl Guitard" a écrit dans le message de news:

Bonjour
dans un tableau, je souhaiterai si une cellule des colonnes de B à Q et
remplie et que la cellule da la colonne "A" est vide avoir un message de
rappel m'indiquant que la saisie dans cette cellule est obligatoire.
Ex: si je saisie une donnée en C45 et que la cellule A45 est vide alors
message de rappel.
Merci d'avance à ceux qui ont une solution
bonne journée à tous




Avatar
Hello,

voici un bout de code à placer dans l'onglet de la feuille
concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column >= 2 And Target.Column <= 17 Then
If Cells(Target.Row, 1) = "" Then
MsgBox "Il faut une valeur dans la
Colonne 'A'", vbExclamation, "ERREUR"
End If
End If
End Sub

-----Message d'origine-----
Bonjour
dans un tableau, je souhaiterai si une cellule des
colonnes de B à Q et

remplie et que la cellule da la colonne "A" est vide
avoir un message de

rappel m'indiquant que la saisie dans cette cellule est
obligatoire.

Ex: si je saisie une donnée en C45 et que la cellule A45
est vide alors

message de rappel.
Merci d'avance à ceux qui ont une solution
bonne journée à tous


.



Avatar
jl Guitard
Bonjour,
merci pour les réponse mais j'ai 2 pb
j'ai pris la solution de anonymous

1-Si je sélectionne plusieurs cellules pour les effacer il m'affiche le msg
d'erreur 13
ça doit provenir de cette ligne If Target.Column >= 2 And Target.Column < 6 And Target.Value <> "" Then .....
2-il affiche aussi le msg " ERREUR" si je change d'onglet
J'ai modifié la macro pour qu'elle soit utilisable sur toutes les feuilles
mais j'ai ces 2 pb

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column >= 2 And Target.Column <= 6 And Target.Value <> "" Then
If Cells(Target.Row, 1) = "" Then
MsgBox "Il faut un nom d'usine dans la Colonne 'A'",
vbExclamation, "ERREUR"
Cells(Target.Row, 1).Select
End If
End If
End Sub

Si vous avez une idée merci d'avance
Bonne journée

a écrit dans le message de
news:ab1301c4366a$872bbb80$
Hello,

voici un bout de code à placer dans l'onglet de la feuille
concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column >= 2 And Target.Column <= 17 Then
If Cells(Target.Row, 1) = "" Then
MsgBox "Il faut une valeur dans la
Colonne 'A'", vbExclamation, "ERREUR"
End If
End If
End Sub

-----Message d'origine-----
Bonjour
dans un tableau, je souhaiterai si une cellule des
colonnes de B à Q et

remplie et que la cellule da la colonne "A" est vide
avoir un message de

rappel m'indiquant que la saisie dans cette cellule est
obligatoire.

Ex: si je saisie une donnée en C45 et que la cellule A45
est vide alors

message de rappel.
Merci d'avance à ceux qui ont une solution
bonne journée à tous


.



Avatar
Pascal Engelmajer
Salut,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plRef As Range 'plage d'action
Dim cell As Range ' cellule de la colonne A:A
Dim lib As String
Dim lig As Integer
Set plRef = Sheets(1).Range("C:C")
lib = Range("A1").Text 'on suppose un libellé en A1
If Not Intersect(plRef, Target) Is Nothing Then
lig = Target.Row
Set cell = ActiveSheet.Rows(lig).Cells(1)
If Not (IsEmpty(Target) Or Target.Text = "") Then
If cell = "" Or IsEmpty(cell) Then
Target.Value = ""
cell.Select
MsgBox "La colonne " & lib & " doit être remplie (première
cellule de la ligne).", vbInformation, "Saisie"
End If
End If
End If
End Sub

ne provoque pas d'erreur après rectification ligne :

Set lib = Range("A1").Text 'on suppose un libellé en A1en
lib = Range("A1").Text 'on suppose un libellé en A1


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"jl Guitard" a écrit dans le message de news:

Bonjour,
merci pour les réponse mais j'ai 2 pb
j'ai pris la solution de anonymous

1-Si je sélectionne plusieurs cellules pour les effacer il m'affiche le
msg

d'erreur 13
ça doit provenir de cette ligne If Target.Column >= 2 And Target.Column
< > 6 And Target.Value <> "" Then .....

2-il affiche aussi le msg " ERREUR" si je change d'onglet
J'ai modifié la macro pour qu'elle soit utilisable sur toutes les feuilles
mais j'ai ces 2 pb

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)

If Target.Column >= 2 And Target.Column <= 6 And Target.Value <> ""
Then

If Cells(Target.Row, 1) = "" Then
MsgBox "Il faut un nom d'usine dans la Colonne 'A'",
vbExclamation, "ERREUR"
Cells(Target.Row, 1).Select
End If
End If
End Sub

Si vous avez une idée merci d'avance
Bonne journée

a écrit dans le message de
news:ab1301c4366a$872bbb80$
Hello,

voici un bout de code à placer dans l'onglet de la feuille
concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column >= 2 And Target.Column <= 17 Then
If Cells(Target.Row, 1) = "" Then
MsgBox "Il faut une valeur dans la
Colonne 'A'", vbExclamation, "ERREUR"
End If
End If
End Sub

-----Message d'origine-----
Bonjour
dans un tableau, je souhaiterai si une cellule des
colonnes de B à Q et

remplie et que la cellule da la colonne "A" est vide
avoir un message de

rappel m'indiquant que la saisie dans cette cellule est
obligatoire.

Ex: si je saisie une donnée en C45 et que la cellule A45
est vide alors

message de rappel.
Merci d'avance à ceux qui ont une solution
bonne journée à tous


.







Avatar
Pascal Engelmajer
Et avec Activesheet au lieu de Sheets(1) ça marche sur toutes les feuilles

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Pascal Engelmajer" a écrit dans le
message de news: Ofq#
Salut,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plRef As Range 'plage d'action
Dim cell As Range ' cellule de la colonne A:A
Dim lib As String
Dim lig As Integer
Set plRef = Sheets(1).Range("C:C")
lib = Range("A1").Text 'on suppose un libellé en A1
If Not Intersect(plRef, Target) Is Nothing Then
lig = Target.Row
Set cell = ActiveSheet.Rows(lig).Cells(1)
If Not (IsEmpty(Target) Or Target.Text = "") Then
If cell = "" Or IsEmpty(cell) Then
Target.Value = ""
cell.Select
MsgBox "La colonne " & lib & " doit être remplie
(première

cellule de la ligne).", vbInformation, "Saisie"
End If
End If
End If
End Sub

ne provoque pas d'erreur après rectification ligne :

Set lib = Range("A1").Text 'on suppose un libellé en A1en
lib = Range("A1").Text 'on suppose un libellé en A1


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"jl Guitard" a écrit dans le message de news:

Bonjour,
merci pour les réponse mais j'ai 2 pb
j'ai pris la solution de anonymous

1-Si je sélectionne plusieurs cellules pour les effacer il m'affiche le
msg

d'erreur 13
ça doit provenir de cette ligne If Target.Column >= 2 And
Target.Column


< > > 6 And Target.Value <> "" Then .....
2-il affiche aussi le msg " ERREUR" si je change d'onglet
J'ai modifié la macro pour qu'elle soit utilisable sur toutes les
feuilles


mais j'ai ces 2 pb

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)

If Target.Column >= 2 And Target.Column <= 6 And Target.Value <> ""
Then

If Cells(Target.Row, 1) = "" Then
MsgBox "Il faut un nom d'usine dans la Colonne 'A'",
vbExclamation, "ERREUR"
Cells(Target.Row, 1).Select
End If
End If
End Sub

Si vous avez une idée merci d'avance
Bonne journée

a écrit dans le message de
news:ab1301c4366a$872bbb80$
Hello,

voici un bout de code à placer dans l'onglet de la feuille
concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column >= 2 And Target.Column <= 17 Then
If Cells(Target.Row, 1) = "" Then
MsgBox "Il faut une valeur dans la
Colonne 'A'", vbExclamation, "ERREUR"
End If
End If
End Sub

-----Message d'origine-----
Bonjour
dans un tableau, je souhaiterai si une cellule des
colonnes de B à Q et

remplie et que la cellule da la colonne "A" est vide
avoir un message de

rappel m'indiquant que la saisie dans cette cellule est
obligatoire.

Ex: si je saisie une donnée en C45 et que la cellule A45
est vide alors

message de rappel.
Merci d'avance à ceux qui ont une solution
bonne journée à tous


.











Avatar
jl Guitard
Merci beaucoup à Pascal Engelmajer
ça fonctionne pil poil
Bonne journée

"Pascal Engelmajer" a écrit dans le
message de news:%23KZB%
Et avec Activesheet au lieu de Sheets(1) ça marche sur toutes les feuilles

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Pascal Engelmajer" a écrit dans le
message de news: Ofq#
Salut,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plRef As Range 'plage d'action
Dim cell As Range ' cellule de la colonne A:A
Dim lib As String
Dim lig As Integer
Set plRef = Sheets(1).Range("C:C")
lib = Range("A1").Text 'on suppose un libellé en A1
If Not Intersect(plRef, Target) Is Nothing Then
lig = Target.Row
Set cell = ActiveSheet.Rows(lig).Cells(1)
If Not (IsEmpty(Target) Or Target.Text = "") Then
If cell = "" Or IsEmpty(cell) Then
Target.Value = ""
cell.Select
MsgBox "La colonne " & lib & " doit être remplie
(première

cellule de la ligne).", vbInformation, "Saisie"
End If
End If
End If
End Sub

ne provoque pas d'erreur après rectification ligne :

Set lib = Range("A1").Text 'on suppose un libellé en A1en
lib = Range("A1").Text 'on suppose un libellé en A1


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.




Avatar
jl Guitard
Il semble que j'ai parlé trop vite....
Si je remplace Set plRef = Activesheet .Range("C:C")
par Set plRef = Activesheet .Columns("B:F")
lorsque je change d'onglet il m'affiche le msgbox
Pourquoi ca marche dans le 1 cas et pas dans le second ?????
J'ai mis ma procédure dans
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
merci d'avance



"jl Guitard" a écrit dans le message de
news:
Merci beaucoup à Pascal Engelmajer
ça fonctionne pil poil
Bonne journée

"Pascal Engelmajer" a écrit dans le
message de news:%23KZB%
Et avec Activesheet au lieu de Sheets(1) ça marche sur toutes les
feuilles



--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Pascal Engelmajer" a écrit dans le
message de news: Ofq#
Salut,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plRef As Range 'plage d'action
Dim cell As Range ' cellule de la colonne A:A
Dim lib As String
Dim lig As Integer
Set plRef = Sheets(1).Range("C:C")
lib = Range("A1").Text 'on suppose un libellé en A1
If Not Intersect(plRef, Target) Is Nothing Then
lig = Target.Row
Set cell = ActiveSheet.Rows(lig).Cells(1)
If Not (IsEmpty(Target) Or Target.Text = "") Then
If cell = "" Or IsEmpty(cell) Then
Target.Value = ""
cell.Select
MsgBox "La colonne " & lib & " doit être remplie
(première

cellule de la ligne).", vbInformation, "Saisie"
End If
End If
End If
End Sub

ne provoque pas d'erreur après rectification ligne :

Set lib = Range("A1").Text 'on suppose un libellé en A1en
lib = Range("A1").Text 'on suppose un libellé en A1


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.