Pb de conditions sur une macro
boukroux
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
je suis une petite novice en excel et j'aimerai mettre une condition sous une macro "enregistrement" activée par un bouton.
en effet j'ai un tableau regroupant des risques cotés par une fréquence et une maitrise.
si qqun change la frequence ou la maitrise sans avoir rempli la case action correspondante de la ligne je voudrais qu'il ne puisse pas enregistrer le fichier et que le message "veuillez remplir les details de l'action" s'affiche
pour cela j'ai essaye de faire ceci:
End Sub
Sub enregistrer()
If Range("$E8").Value = "" Or Range("$L8").Value = "" And Range("$R8").Value <> "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
Range("$R8").Value = ""
' enregistrer Macro
' Macro enregistrée le 31/03/2008 par valenza
'
'
ActiveWorkbook.Save
End Sub Bonjour,
mais ca ne marche pas comme je voudrais, ca m'affiche le message que la case action soit remplie ou pas et ca ne m'enregistre rien ...
voila mon petit souci, si qqun peut m'aider ce serait avec un prd merci
je suis une petite novice en excel et j'aimerai mettre une condition sous une macro "enregistrement" activée par un bouton.
en effet j'ai un tableau regroupant des risques cotés par une fréquence et une maitrise.
si qqun change la frequence ou la maitrise sans avoir rempli la case action correspondante de la ligne je voudrais qu'il ne puisse pas enregistrer le fichier et que le message "veuillez remplir les details de l'action" s'affiche
pour cela j'ai essaye de faire ceci:
End Sub
Sub enregistrer()
If Range("$E8").Value = "" Or Range("$L8").Value = "" And Range("$R8").Value <> "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
Range("$R8").Value = ""
' enregistrer Macro
' Macro enregistrée le 31/03/2008 par valenza
'
'
ActiveWorkbook.Save
End Sub Bonjour,
mais ca ne marche pas comme je voudrais, ca m'affiche le message que la case action soit remplie ou pas et ca ne m'enregistre rien ...
voila mon petit souci, si qqun peut m'aider ce serait avec un prd merci
A voir également:
- Pb de conditions sur une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Excel récupérer couleur cellule sans macro ✓ - Forum Bureautique
- Mise en forme conditionnelle excel plusieurs conditions - Guide
3 réponses
Bonjour,
Si E8 -> fréquence et L8 -> maitrise (ou l'inverse)
Sub enregistrer()
If (Range("$E8").Value <> "" Or Range("$L8").Value <> "") And Range("$R8").Value = "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
Range("$R8").Value = ""
ActiveWorkbook.Save
End Sub
A+.
Si E8 -> fréquence et L8 -> maitrise (ou l'inverse)
Sub enregistrer()
If (Range("$E8").Value <> "" Or Range("$L8").Value <> "") And Range("$R8").Value = "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
Range("$R8").Value = ""
ActiveWorkbook.Save
End Sub
A+.
Bonjour,
Tu te mélange les pinceaux dans l'ordre des sub.
Tu ne peu pas imbtiqué des SUB
End Sub
Sub enregistrer()
If Range("$E8").Value = "" Or Range("$L8").Value = "" And Range("$R8").Value <> "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
Range("$R8").Value = ""
' enregistrer Macro
' Macro enregistrée le 31/03/2008 par valenza
'
'
ActiveWorkbook.Save
End Sub Bonjour,
A Faire....
Sub enregistrer()
'Pour les conditions
'Si E8 est vide et que R8 n'est pas vide = message
'Si L8 est vide et que R8 n'est pas vide = message
If (Range("$E8").Value = "" Or Range("$L8").Value = "") And Range("$R8").Value <> "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
ActiveWorkbook.Save
End Sub
Tu te mélange les pinceaux dans l'ordre des sub.
Tu ne peu pas imbtiqué des SUB
End Sub
Sub enregistrer()
If Range("$E8").Value = "" Or Range("$L8").Value = "" And Range("$R8").Value <> "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
Range("$R8").Value = ""
' enregistrer Macro
' Macro enregistrée le 31/03/2008 par valenza
'
'
ActiveWorkbook.Save
End Sub Bonjour,
A Faire....
Sub enregistrer()
'Pour les conditions
'Si E8 est vide et que R8 n'est pas vide = message
'Si L8 est vide et que R8 n'est pas vide = message
If (Range("$E8").Value = "" Or Range("$L8").Value = "") And Range("$R8").Value <> "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
ActiveWorkbook.Save
End Sub
Bon, si j'ai compris les 3 cellules doivent contenir quelque chose ?... si oui, changer la ligne
If Range("$E8").Value = "" Or Range("$L8").Value = "" OR Range("$R8").Value = "" Then
Si une des deux cellules E8 et L8 peuvent être vide....
If (Range("$E8").Value = "" and Range("$L8").Value = "") OR Range("$R8").Value = "" Then
A+
If Range("$E8").Value = "" Or Range("$L8").Value = "" OR Range("$R8").Value = "" Then
Si une des deux cellules E8 et L8 peuvent être vide....
If (Range("$E8").Value = "" and Range("$L8").Value = "") OR Range("$R8").Value = "" Then
A+
Tu ne m'embète pas du tout...
Mais tu aurrais du expliquer les conditions plutôt..
Cette fois-ci c'est la bonne, je l'ai testé.
Je ne sais pas avec quoi tu appel la macro ? moi j'ai mis un bouton 'Formulaire' (pas commandBouton, ca marche pas)
Pour que ca foncrionne sur toutes les lignes..
Dans un module global..
Option Explicit
Public ADR As Long
Sub Bouton2_QuandClic()
Sheets("Feuil1").Activate
If (Cells(ADR, 5).Value = "" And Cells(ADR, 12).Value = "") Or Cells(ADR, 18).Value = "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
ActiveWorkbook.Save
End Sub
Dans le module de Feuil1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ADR = Target.Row
End Sub
Pour que cela fonctionne il faut sélectionner la ligne JUSTE AVANT D'APPELLER LA MACRO
Bon, je crois que ca ira
A+
Mais tu aurrais du expliquer les conditions plutôt..
Cette fois-ci c'est la bonne, je l'ai testé.
Je ne sais pas avec quoi tu appel la macro ? moi j'ai mis un bouton 'Formulaire' (pas commandBouton, ca marche pas)
Pour que ca foncrionne sur toutes les lignes..
Dans un module global..
Option Explicit
Public ADR As Long
Sub Bouton2_QuandClic()
Sheets("Feuil1").Activate
If (Cells(ADR, 5).Value = "" And Cells(ADR, 12).Value = "") Or Cells(ADR, 18).Value = "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
ActiveWorkbook.Save
End Sub
Dans le module de Feuil1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ADR = Target.Row
End Sub
Pour que cela fonctionne il faut sélectionner la ligne JUSTE AVANT D'APPELLER LA MACRO
Bon, je crois que ca ira
A+
ca enregistre meme si la case R8 est vide et le message ne s'affiche pas
je te remets ce que 'jai copier coller
Sub enregistrer()
If (Range("$E8").Value <> "" Or Range("$L8").Value <> "") And Range("$R8").Value = "" Then
MsgBox "Veuillez remplir l'action"
Exit Sub
End If
Range("$R8").Value = ""
ActiveWorkbook.Save
End Sub
merci encore