Message de rappel si cellule colonne "A" non remplie

Le
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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal Engelmajer
Le #1393259
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"
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




Le #1393258
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


.



jl Guitard
Le #1393255
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 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 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

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


.



Pascal Engelmajer
Le #1393253
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"
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

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 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

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


.







Pascal Engelmajer
Le #1393252
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" 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"
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


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 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

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


.











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

"Pascal Engelmajer" 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" 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.




jl Guitard
Le #1411771
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" news:
Merci beaucoup à Pascal Engelmajer
ça fonctionne pil poil
Bonne journée

"Pascal Engelmajer" 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" 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.








Publicité
Poster une réponse
Anonyme