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é
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


J'ai "Option explicit" en haut

J'ai une erreur :(
 

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! :rolleyes:
 

Pièces jointes

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

Discussions similaires

Réponses
7
Affichages
312
Réponses
1
Affichages
966

Statistiques des forums

Discussions
312 103
Messages
2 085 311
Membres
102 860
dernier inscrit
fredo67