OVH Cloud OVH Cloud

macro sur les cellules

5 réponses
Avatar
rick
bjr,

cette macro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Union(Range("D:D"), Range("E:E"), Range("H:H"),
Range("I:I"), Range("P:P"))) Is Nothing Then Exit Sub
If Range("D" & Target.Row).Value = "" Or Range("E" & Target.Row).Value = ""
Or Range("H" & Target.Row).Value = "" _
Or Range("I" & Target.Row).Value = "" Or Range("P" & Target.Row).Value = ""
Then
MsgBox ("Vous devez saisir ce champ obligatoirement")
End If

elle me permet de saisir un champ dans les colonnes correspondantes,est t'il
possible lorsque le champ est saisi ne plus afficher ce message box
car il s'affiche toujours?

merci d'avance

5 réponses

Avatar
rick
as t'on la possibilité de commencer d'afficher le msgbox qu'a compter de la
ligne 15

merci

bjr,

cette macro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Union(Range("D:D"), Range("E:E"), Range("H:H"),
Range("I:I"), Range("P:P"))) Is Nothing Then Exit Sub
If Range("D" & Target.Row).Value = "" Or Range("E" & Target.Row).Value = ""
Or Range("H" & Target.Row).Value = "" _
Or Range("I" & Target.Row).Value = "" Or Range("P" & Target.Row).Value = ""
Then
MsgBox ("Vous devez saisir ce champ obligatoirement")
End If

elle me permet de saisir un champ dans les colonnes correspondantes,est t'il
possible lorsque le champ est saisi ne plus afficher ce message box
car il s'affiche toujours?

merci d'avance


Avatar
Clément Marcotte
Le OR en VB - VBA est un Ou logique. Il suffit qu'une des conditions
soit vraie pour que le IF soit vrai.

Réécris ton bloc if en conséquence.

--
On apprend pas à un vieux singe à faire des grimaces
"rick" a écrit dans le message de
news:
bjr,

cette macro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Union(Range("D:D"), Range("E:E"),
Range("H:H"),

Range("I:I"), Range("P:P"))) Is Nothing Then Exit Sub
If Range("D" & Target.Row).Value = "" Or Range("E" &
Target.Row).Value = ""

Or Range("H" & Target.Row).Value = "" _
Or Range("I" & Target.Row).Value = "" Or Range("P" &
Target.Row).Value = ""

Then
MsgBox ("Vous devez saisir ce champ obligatoirement")
End If

elle me permet de saisir un champ dans les colonnes
correspondantes,est t'il

possible lorsque le champ est saisi ne plus afficher ce message box
car il s'affiche toujours?

merci d'avance


Avatar
rick
oui je sais clement, le ou est un ou logique.

mais si la cellule A ou une autre qui n'est pas defini dans le code est
selectionné, j'ai quand meme ce message box.

c'est ce que je ne comprend pas


Le OR en VB - VBA est un Ou logique. Il suffit qu'une des conditions
soit vraie pour que le IF soit vrai.

Réécris ton bloc if en conséquence.

--
On apprend pas à un vieux singe à faire des grimaces
"rick" a écrit dans le message de
news:
bjr,

cette macro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Union(Range("D:D"), Range("E:E"),
Range("H:H"),

Range("I:I"), Range("P:P"))) Is Nothing Then Exit Sub
If Range("D" & Target.Row).Value = "" Or Range("E" &
Target.Row).Value = ""

Or Range("H" & Target.Row).Value = "" _
Or Range("I" & Target.Row).Value = "" Or Range("P" &
Target.Row).Value = ""

Then
MsgBox ("Vous devez saisir ce champ obligatoirement")
End If

elle me permet de saisir un champ dans les colonnes
correspondantes,est t'il

possible lorsque le champ est saisi ne plus afficher ce message box
car il s'affiche toujours?

merci d'avance






Avatar
Clément Marcotte
Quand tu es en colonne a, Target.row est égal à 1.

Donc:

tu testes d1, a1, h1, i1, p1 etc...

Comme tu commences à la ligne 15...



--
On apprend pas à un vieux singe à faire des grimaces
"rick" a écrit dans le message de
news:
oui je sais clement, le ou est un ou logique.

mais si la cellule A ou une autre qui n'est pas defini dans le code
est

selectionné, j'ai quand meme ce message box.

c'est ce que je ne comprend pas


Le OR en VB - VBA est un Ou logique. Il suffit qu'une des
conditions


soit vraie pour que le IF soit vrai.

Réécris ton bloc if en conséquence.

--
On apprend pas à un vieux singe à faire des grimaces
"rick" a écrit dans le message de
news:
bjr,

cette macro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Union(Range("D:D"), Range("E:E"),
Range("H:H"),

Range("I:I"), Range("P:P"))) Is Nothing Then Exit Sub
If Range("D" & Target.Row).Value = "" Or Range("E" &
Target.Row).Value = ""

Or Range("H" & Target.Row).Value = "" _
Or Range("I" & Target.Row).Value = "" Or Range("P" &
Target.Row).Value = ""

Then
MsgBox ("Vous devez saisir ce champ obligatoirement")
End If

elle me permet de saisir un champ dans les colonnes
correspondantes,est t'il

possible lorsque le champ est saisi ne plus afficher ce message
box



car il s'affiche toujours?

merci d'avance








Avatar
rick
non A1 n'est pas dans mon code,
je ne comprend pas


Quand tu es en colonne a, Target.row est égal à 1.

Donc:

tu testes d1, a1, h1, i1, p1 etc...

Comme tu commences à la ligne 15...



--
On apprend pas à un vieux singe à faire des grimaces
"rick" a écrit dans le message de
news:
oui je sais clement, le ou est un ou logique.

mais si la cellule A ou une autre qui n'est pas defini dans le code
est

selectionné, j'ai quand meme ce message box.

c'est ce que je ne comprend pas


Le OR en VB - VBA est un Ou logique. Il suffit qu'une des
conditions


soit vraie pour que le IF soit vrai.

Réécris ton bloc if en conséquence.

--
On apprend pas à un vieux singe à faire des grimaces
"rick" a écrit dans le message de
news:
bjr,

cette macro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Union(Range("D:D"), Range("E:E"),
Range("H:H"),

Range("I:I"), Range("P:P"))) Is Nothing Then Exit Sub
If Range("D" & Target.Row).Value = "" Or Range("E" &
Target.Row).Value = ""

Or Range("H" & Target.Row).Value = "" _
Or Range("I" & Target.Row).Value = "" Or Range("P" &
Target.Row).Value = ""

Then
MsgBox ("Vous devez saisir ce champ obligatoirement")
End If

elle me permet de saisir un champ dans les colonnes
correspondantes,est t'il

possible lorsque le champ est saisi ne plus afficher ce message
box



car il s'affiche toujours?

merci d'avance