Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Tester plusieurs msgbox

RONIBO

XLDnaute Impliqué
Bonjour,

Je souhaite tester des Msgbox sur différent cellule, les cellules : B1, B3, B5 et B7

Actuellement j'utilise le code ci-dessous pour tester si les cellules en questions sont vides ou pas.

If [B1] = "" Then
MsgBox "Saisissez la civilité"
End If

Le souci c'est quand j'ai plusieurs cellules concernées vides, je souhaite obtenir qu'un msgbox en précisant les éléments manquants au lieu d'avoir plusieurs Msgbox pour chaque information manquante.

Exemple si B1 et B3 vide :

Il manque des informations :
Saisissez la civilité
Saisissez le nom



Merci d'avance.
 

Pièces jointes

  • Classeur1.xlsm
    15.5 KB · Affichages: 44

sousou

XLDnaute Barbatruc
Bonjour
essai si ce code te convient
Sub TestCellule()
tablecel = Array("b1", "b3", "b5", "b7")
messages = Array("Civilité", "Nom", "Prénom", "adresse")
For n = 0 To UBound(tablecel)
If Sheets(1).Range(tablecel(n)) = "" Then
Message = Message & messages(n) & Chr(13)
End If
Next
Message = "Vous devez saisir:" & Chr(13) & Message
MsgBox Message
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir RONIBO, sousou,

un essai avec ce code :
VB:
Sub TestCellule()
Dim s As String, i
    For Each i In Array(1, 3, 5, 7)
      If Cells(i, "b") = "" Then s = s & Space(4) & Cells(i, "a") & vbLf
    Next i
    If s <> "" Then MsgBox "Veuillez saisir le(s) champs :" & vbLf & s
End Sub
 

Pièces jointes

  • RONIBO- msgbox- v1.xlsm
    15.7 KB · Affichages: 38
Dernière édition:

RONIBO

XLDnaute Impliqué


J'ai "Option explicit" en haut

J'ai une erreur
 

RONIBO

XLDnaute Impliqué
Merci,

Tablecel et messages se sont des variant, je me trompe ?

Puis dernièrement, je viens de tester si toutes les cellules sont <> "" j'ai Un msgbox "Vous devez saisir"

Comment corriger se problème ?
 

RONIBO

XLDnaute Impliqué
je pense que c'est bon
Code:
Option Explicit
Sub TestCellule()
Dim Messages, TableCel
Dim N As Long
Dim Message As String
    TableCel = Array("A12", "G10", "b5", "b7")
    Messages = Array("Civilité", "Nom", "Prénom", "adresse")
    For N = 0 To UBound(TableCel)
        If Sheets(1).Range(TableCel(N)) = "" Then
            Message = Message & Messages(N) & Chr(13)
        End If
    Next
    If Message = "" Then Exit Sub
    Message = "Vous devez saisir :" & Chr(13) & Message
    MsgBox Message, vbInformation, "Champs incomplets"
End Sub

Merci encore à vous
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,
Une petite question, c'est possible de faire clignoter le champs vides?
Oui, c'est possible. il faut écrire du code, beaucoup de code pour pas grand chose. En plus, le clignotement, je n'aime pas.

Pourquoi ne pas passer par une MFC tout simplement ? MFC qui permettrait aussi de se passer du code de la MsgBox!
 

Pièces jointes

  • RONIBO- msgbox- v1a.xlsm
    14.5 KB · Affichages: 39

RONIBO

XLDnaute Impliqué
Je n'avais pas pensé au mfc, bien vu

Mais comment je lance la formule ?

Je souhaite l'appliquer juste avant d'enregistrer, vérifier si les champs sont complets puis une fois pleine, enregistrer
 

Discussions similaires

Réponses
7
Affichages
329
Réponses
1
Affichages
981
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…