Plantage Macro (Excel2013) [Résolu/Fermé]

Signaler
Messages postés
90
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
1 novembre 2019
-
 jl00700 -
Bonjour,

Je rencontre un nouveau souci dont je n'arrive pas à me sortir...
Souhaitant contrôler les champs de mon formulaire avant de lancer ma macro, j'ai intégré en tête celle-ci le paramétrage suivant (trouvé au cours de mes recherches) :

Sub AlimentationBaseDonnées()
'
' AlimentationBaseDonnées Macro
' Transfert des champs du formulaire vers la Base de Données.
'

Dim Message As String
If Range("E7").Value = "" Then Message = Message & "Date_Opération" & vbLf
If Range("E9").Value = "" Then Message = Message & "Opération" & vbLf
If Range("E11").Value = "" Then Message = Message & "Catégorie" & vbLf
If Range("E13").Value = "" Then Message = Message & "Poste" & vbLf
If Range("E15").Value = "" Then Message = Message & "Libellé" & vbLf
If Range("E17").Value = "" Then Message = Message & "Support" & vbLf
If Range("E21").Value = "" Then Message = Message & "Montant"

Call MsgBox("Une ou des cellules obligatoires ne sont pas complétées:" & vbLf & Message, vbExclamation)


Sheets("Base").Visible = True
Sheets("Base").Activate
ActiveSheet.Unprotect "klmp"
Rows("7:7").Select


Cela ne fonctionne qu'à moitié car, si une/des cellule n'est pas complétée il affiche bien le message avec les zone à compléter.
Dès lors que je clique sur OK (S/fenêtre présentant le message), l'opération s'enregistre dans ma base sans autoriser la correction des cellules en anomalie.
Je cherche mais ne trouve pas comment corriger...
Que faire ???
Si le sujet vous inspire, je vous en remercie par avance.
Cordialement.
JL00700





2 réponses

Messages postés
1795
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
25 janvier 2020
520
Bonjour
Un eproposition
Après chaque test
If Range("E7").Value = "" Then Exit Sub
Messages postés
23231
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
26 janvier 2020
5 880
Bonjour,

ou bien remplacer ta ligne du msgbox par :
    If Message <> "" Then
        MsgBox "Une ou des cellules obligatoires ne sont pas complétées:" & vbLf & Message, vbExclamation
        Exit Sub
    End If

eric
Bonjour erilic,
Belle surprise de bon matin, cela fonctionne comme je l'entendais.
Encore merci à vous ainsi qu'à yclik.
Amicalement
jl00700