Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Champs obligatoires

6 réponses
Avatar
PhilippeD1
Bonjour la communauté,

Je n'ai pas trouvé de ficelle répondant à mon interrogation, c'est pourquoi,
je vous formule ma question.
Est-il possible d'obliger un utilisateur à remplir les cellules de G8 à G20
et de G22 à G25 en mettant des valeurs de 0 inclus à l'infini (et au delà...)?
Si l'utilisateur oubli de saisir une valeur, un petit message serait le
bienvenu (Ex.: Andouille tu as encore oublié une valeur!!).
Tant que toutes les cellules (G8 à G20 et G22 à G25) n'ont pas de valeur
affectée, il est impossible de fermer le document.
Si cela est possible, je vous remercie de m'aiguiller fortement car mes
compétences en informatique s'arrêtent là ou les vôtres commencent...
MERCI d'avance.
A +

6 réponses

Avatar
ru-th
Salut

un exemple sur l'évenement fermeture de thisworkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If [COUNTBLANK(plage)] <> 0 Or [SUM(NOT(ISNUMBER(plage))*1)] <> 0 _
Or [sum(not(plage>=0)*1)] <> 0 Then
MsgBox "REMPLIR...."
Cancel = True
End If
End Sub

a+
rural thierry

"PhilippeD1" a écrit dans le message
de news:
Bonjour la communauté,

Je n'ai pas trouvé de ficelle répondant à mon interrogation, c'est
pourquoi,

je vous formule ma question.
Est-il possible d'obliger un utilisateur à remplir les cellules de G8 à
G20

et de G22 à G25 en mettant des valeurs de 0 inclus à l'infini (et au
delà...)?

Si l'utilisateur oubli de saisir une valeur, un petit message serait le
bienvenu (Ex.: Andouille tu as encore oublié une valeur!!).
Tant que toutes les cellules (G8 à G20 et G22 à G25) n'ont pas de valeur
affectée, il est impossible de fermer le document.
Si cela est possible, je vous remercie de m'aiguiller fortement car mes
compétences en informatique s'arrêtent là ou les vôtres commencent...
MERCI d'avance.
A +


Avatar
PhilippeD1
ça marche.
MERCI.



Salut

un exemple sur l'évenement fermeture de thisworkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If [COUNTBLANK(plage)] <> 0 Or [SUM(NOT(ISNUMBER(plage))*1)] <> 0 _
Or [sum(not(plage>=0)*1)] <> 0 Then
MsgBox "REMPLIR...."
Cancel = True
End If
End Sub

a+
rural thierry

"PhilippeD1" a écrit dans le message
de news:
Bonjour la communauté,

Je n'ai pas trouvé de ficelle répondant à mon interrogation, c'est
pourquoi,

je vous formule ma question.
Est-il possible d'obliger un utilisateur à remplir les cellules de G8 à
G20

et de G22 à G25 en mettant des valeurs de 0 inclus à l'infini (et au
delà...)?

Si l'utilisateur oubli de saisir une valeur, un petit message serait le
bienvenu (Ex.: Andouille tu as encore oublié une valeur!!).
Tant que toutes les cellules (G8 à G20 et G22 à G25) n'ont pas de valeur
affectée, il est impossible de fermer le document.
Si cela est possible, je vous remercie de m'aiguiller fortement car mes
compétences en informatique s'arrêtent là ou les vôtres commencent...
MERCI d'avance.
A +







Avatar
michdenis
Bonjour Philippe,

Et ceci : Adpate le nom de la feuille de la procédure.
à copier dans le thisworkbook de ton classeur.

'-----------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Rg As Range
With Worksheets("Feuil1")
.Activate
Set Rg = .Range("G8:G20,G22:G25")
If Application.CountA(Rg) <> 17 Then
Cancel = True
MsgBox "Une des cellules n'est pas renseignée"
Rg.Select
End If
End With

End Sub
'-----------------------------


Salutations!




"PhilippeD1" a écrit dans le message de news:

Bonjour la communauté,

Je n'ai pas trouvé de ficelle répondant à mon interrogation, c'est pourquoi,
je vous formule ma question.
Est-il possible d'obliger un utilisateur à remplir les cellules de G8 à G20
et de G22 à G25 en mettant des valeurs de 0 inclus à l'infini (et au delà...)?
Si l'utilisateur oubli de saisir une valeur, un petit message serait le
bienvenu (Ex.: Andouille tu as encore oublié une valeur!!).
Tant que toutes les cellules (G8 à G20 et G22 à G25) n'ont pas de valeur
affectée, il est impossible de fermer le document.
Si cela est possible, je vous remercie de m'aiguiller fortement car mes
compétences en informatique s'arrêtent là ou les vôtres commencent...
MERCI d'avance.
A +
Avatar
PhilippeD1
Bonjour Michdenis,

j'ai tenté en vain de re-travailler sur ton code. Si l'utilisateur ne
renseigne pas les cellules E 18 à E 20, il ne peut voir la feuil1.XlVeryHidden
E 18 Nom Donc MsgBox spécifique si cellule non renseignée,
E 19 Prénom Donc MsgBox spécifique si cellule non renseignée,
E 20 Fonction Donc MsgBox spécifique si cellule non renseignée.
Quand les trois cellules sont renseignées (sur feuille
"Introduction")l'utilisateur doit cliquer dans un CheckBox pour valider.
Voici THE code qui pose deux problèmes:
Les boites de dialogues apparaissent deux fois pour une cellule non
renseignée et,
Si les trois cellules sont correctement renseignées la feuil1 n'apparait
pas...

Private Sub CheckBox1_Click()
If Range("E18").Value = "" Then
MsgBox "Merci de compléter votre nom."
Cancel = True
End If
If Range("E19").Value = "" Then
MsgBox "Merci de renseigner votre prénom."
Cancel = True
End If
If Range("E20").Value = "" Then
MsgBox "Merci de remplir votre fonction."
Cancel = True
End If
Dim Rg As Range
With Worksheets("Introduction")
.Activate
Set Rg = .Range("E18:E20")
If Application.CountA(Rg) <> 17 Then
Cancel = True
CheckBox1.Value = 0
End If
End With
If CheckBox1.Value = 0 Then
Sheets("Feuil1").Visible = xlSheetVeryHidden
End If
End Sub

MERCI d'avance pour tes "lumières".



Bonjour Philippe,

Et ceci : Adpate le nom de la feuille de la procédure.
à copier dans le thisworkbook de ton classeur.

'-----------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Rg As Range
With Worksheets("Feuil1")
.Activate
Set Rg = .Range("G8:G20,G22:G25")
If Application.CountA(Rg) <> 17 Then
Cancel = True
MsgBox "Une des cellules n'est pas renseignée"
Rg.Select
End If
End With

End Sub
'-----------------------------


Salutations!




"PhilippeD1" a écrit dans le message de news:

Bonjour la communauté,

Je n'ai pas trouvé de ficelle répondant à mon interrogation, c'est pourquoi,
je vous formule ma question.
Est-il possible d'obliger un utilisateur à remplir les cellules de G8 à G20
et de G22 à G25 en mettant des valeurs de 0 inclus à l'infini (et au delà...)?
Si l'utilisateur oubli de saisir une valeur, un petit message serait le
bienvenu (Ex.: Andouille tu as encore oublié une valeur!!).
Tant que toutes les cellules (G8 à G20 et G22 à G25) n'ont pas de valeur
affectée, il est impossible de fermer le document.
Si cela est possible, je vous remercie de m'aiguiller fortement car mes
compétences en informatique s'arrêtent là ou les vôtres commencent...
MERCI d'avance.
A +





Avatar
michdenis
Bonjour Philippe,

Essaie quelque chose du genre... j'avoue être un peu larguer dans le cheminement de ta demande ...

Cette section dans le ThisWorkbook de ton classeur
'------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Rg As Range
With Worksheets("introduction")
.Activate
Set Rg = .Range("E18:E20")
If Application.CountA(Rg) <> 3 Then
Cancel = True
CheckBox1_Click
End If
End With

End Sub
'------------------------


Attention : J'ai enlevé le mot "Private" dans la déclaration de
la procédure pour qu'elle soit accessible au ThisWorkbook.
'------------------------
Sub CheckBox1_Click()

Worksheets("introduction").Activate

With Range("E18")
If .Value = "" Then
MsgBox "Merci de compléter votre nom."
.Select
Exit Sub
End If
End With

With Range("E19")
If .Value = "" Then
MsgBox "Merci de compléter votre nom."
.Select
Exit Sub
End If
End With

With Range("E20")
If .Value = "" Then
MsgBox "Merci de compléter votre nom."
.Select
Exit Sub
End If
End With

If CheckBox1.Value = 0 Then
Sheets("Feuil1").Visible = xlSheetVeryHidden
End If
End Sub
'------------------------


Salutations!




"PhilippeD1" a écrit dans le message de news:

Bonjour Michdenis,

j'ai tenté en vain de re-travailler sur ton code. Si l'utilisateur ne
renseigne pas les cellules E 18 à E 20, il ne peut voir la feuil1.XlVeryHidden
E 18 Nom Donc MsgBox spécifique si cellule non renseignée,
E 19 Prénom Donc MsgBox spécifique si cellule non renseignée,
E 20 Fonction Donc MsgBox spécifique si cellule non renseignée.
Quand les trois cellules sont renseignées (sur feuille
"Introduction")l'utilisateur doit cliquer dans un CheckBox pour valider.
Voici THE code qui pose deux problèmes:
Les boites de dialogues apparaissent deux fois pour une cellule non
renseignée et,
Si les trois cellules sont correctement renseignées la feuil1 n'apparait
pas...

Private Sub CheckBox1_Click()
If Range("E18").Value = "" Then
MsgBox "Merci de compléter votre nom."
Cancel = True
End If
If Range("E19").Value = "" Then
MsgBox "Merci de renseigner votre prénom."
Cancel = True
End If
If Range("E20").Value = "" Then
MsgBox "Merci de remplir votre fonction."
Cancel = True
End If
Dim Rg As Range
With Worksheets("Introduction")
.Activate
Set Rg = .Range("E18:E20")
If Application.CountA(Rg) <> 17 Then
Cancel = True
CheckBox1.Value = 0
End If
End With
If CheckBox1.Value = 0 Then
Sheets("Feuil1").Visible = xlSheetVeryHidden
End If
End Sub

MERCI d'avance pour tes "lumières".



Bonjour Philippe,

Et ceci : Adpate le nom de la feuille de la procédure.
à copier dans le thisworkbook de ton classeur.

'-----------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Rg As Range
With Worksheets("Feuil1")
.Activate
Set Rg = .Range("G8:G20,G22:G25")
If Application.CountA(Rg) <> 17 Then
Cancel = True
MsgBox "Une des cellules n'est pas renseignée"
Rg.Select
End If
End With

End Sub
'-----------------------------


Salutations!




"PhilippeD1" a écrit dans le message de news:

Bonjour la communauté,

Je n'ai pas trouvé de ficelle répondant à mon interrogation, c'est pourquoi,
je vous formule ma question.
Est-il possible d'obliger un utilisateur à remplir les cellules de G8 à G20
et de G22 à G25 en mettant des valeurs de 0 inclus à l'infini (et au delà...)?
Si l'utilisateur oubli de saisir une valeur, un petit message serait le
bienvenu (Ex.: Andouille tu as encore oublié une valeur!!).
Tant que toutes les cellules (G8 à G20 et G22 à G25) n'ont pas de valeur
affectée, il est impossible de fermer le document.
Si cela est possible, je vous remercie de m'aiguiller fortement car mes
compétences en informatique s'arrêtent là ou les vôtres commencent...
MERCI d'avance.
A +





Avatar
PhilippeD1
bonjour Michdenis,

cette solution donne également un résultat qui me convient tout à fait.
Merci.
A +


Bonjour Philippe,

Essaie quelque chose du genre... j'avoue être un peu larguer dans le cheminement de ta demande ...

Cette section dans le ThisWorkbook de ton classeur
'------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Rg As Range
With Worksheets("introduction")
.Activate
Set Rg = .Range("E18:E20")
If Application.CountA(Rg) <> 3 Then
Cancel = True
CheckBox1_Click
End If
End With

End Sub
'------------------------


Attention : J'ai enlevé le mot "Private" dans la déclaration de
la procédure pour qu'elle soit accessible au ThisWorkbook.
'------------------------
Sub CheckBox1_Click()

Worksheets("introduction").Activate

With Range("E18")
If .Value = "" Then
MsgBox "Merci de compléter votre nom."
.Select
Exit Sub
End If
End With

With Range("E19")
If .Value = "" Then
MsgBox "Merci de compléter votre nom."
.Select
Exit Sub
End If
End With

With Range("E20")
If .Value = "" Then
MsgBox "Merci de compléter votre nom."
.Select
Exit Sub
End If
End With

If CheckBox1.Value = 0 Then
Sheets("Feuil1").Visible = xlSheetVeryHidden
End If
End Sub
'------------------------


Salutations!




"PhilippeD1" a écrit dans le message de news:

Bonjour Michdenis,

j'ai tenté en vain de re-travailler sur ton code. Si l'utilisateur ne
renseigne pas les cellules E 18 à E 20, il ne peut voir la feuil1.XlVeryHidden
E 18 Nom Donc MsgBox spécifique si cellule non renseignée,
E 19 Prénom Donc MsgBox spécifique si cellule non renseignée,
E 20 Fonction Donc MsgBox spécifique si cellule non renseignée.
Quand les trois cellules sont renseignées (sur feuille
"Introduction")l'utilisateur doit cliquer dans un CheckBox pour valider.
Voici THE code qui pose deux problèmes:
Les boites de dialogues apparaissent deux fois pour une cellule non
renseignée et,
Si les trois cellules sont correctement renseignées la feuil1 n'apparait
pas...

Private Sub CheckBox1_Click()
If Range("E18").Value = "" Then
MsgBox "Merci de compléter votre nom."
Cancel = True
End If
If Range("E19").Value = "" Then
MsgBox "Merci de renseigner votre prénom."
Cancel = True
End If
If Range("E20").Value = "" Then
MsgBox "Merci de remplir votre fonction."
Cancel = True
End If
Dim Rg As Range
With Worksheets("Introduction")
..Activate
Set Rg = .Range("E18:E20")
If Application.CountA(Rg) <> 17 Then
Cancel = True
CheckBox1.Value = 0
End If
End With
If CheckBox1.Value = 0 Then
Sheets("Feuil1").Visible = xlSheetVeryHidden
End If
End Sub

MERCI d'avance pour tes "lumières".



Bonjour Philippe,

Et ceci : Adpate le nom de la feuille de la procédure.
à copier dans le thisworkbook de ton classeur.

'-----------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Rg As Range
With Worksheets("Feuil1")
.Activate
Set Rg = .Range("G8:G20,G22:G25")
If Application.CountA(Rg) <> 17 Then
Cancel = True
MsgBox "Une des cellules n'est pas renseignée"
Rg.Select
End If
End With

End Sub
'-----------------------------


Salutations!




"PhilippeD1" a écrit dans le message de news:

Bonjour la communauté,

Je n'ai pas trouvé de ficelle répondant à mon interrogation, c'est pourquoi,
je vous formule ma question.
Est-il possible d'obliger un utilisateur à remplir les cellules de G8 à G20
et de G22 à G25 en mettant des valeurs de 0 inclus à l'infini (et au delà...)?
Si l'utilisateur oubli de saisir une valeur, un petit message serait le
bienvenu (Ex.: Andouille tu as encore oublié une valeur!!).
Tant que toutes les cellules (G8 à G20 et G22 à G25) n'ont pas de valeur
affectée, il est impossible de fermer le document.
Si cela est possible, je vous remercie de m'aiguiller fortement car mes
compétences en informatique s'arrêtent là ou les vôtres commencent...
MERCI d'avance.
A +