Sélectionner une plage de donnée

Fermé
cris16 Messages postés 9 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 22 mars 2010 - 1 mars 2010 à 16:00
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 3 mars 2010 à 17:08
Bonjour,

Je souhaite vérifier si dans la plage de B3 à B14 une case est vide. le programme ci-dessous me signal une erreur. J'ai besoin de votre aide.

If (Range("B3:B14"))>0 Then
Select Case MsgBox("", vbExclamation, "Erreur")
End Select

Else

Merci

6 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 193
1 mars 2010 à 17:33
Bonjour,
Je me demande bien dans quel application tu est ?
si c'est bien du VBA...
    Dim C as range
    For Each C in Range("B3:B14")
        If C="" then MsgBox  "La cellule " & C.Address & "'est vide"
   Next C

A+
0
cris16 Messages postés 9 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 22 mars 2010
2 mars 2010 à 15:46
merci lermite,

effectivement je n'ai pas précisé en quel language je voulais faire mon code. Donc tu as bien supposé car c'est en VBA!!
Sinon le code que tu m'as donné marche très bien sauf que ça controle les cases une à une. Ce n'ai pas possible de les controler en une seul fois??

voici le code que j'ai tapé: peut on l'améliorer??

If Range("B3") > 0 And _
Range("B4") > 0 And _
Range("B5") > 0 And _
Range("B6") > 0 And _
Range("B7") > 0 And _
Range("B8") > 0 And _
Range("B9") > 0 And _
Range("B10") > 0 And _
Range("B11") > 0 And _
Range("B12") > 0 And _
Range("B13") > 0 And _
Range("B14") > 0 Then


Select Case MsgBox("Fin de l'année.", vbExclamation, "Erreur")
End Select

Else

Select Case MsgBox("Etes-vous sûr de vouloir valider le mois?", vbQuestion + vbYesNo)

Case vbYes
Select Case MsgBox("Avez-vous enregistré sous le mois de " & Range("A" & i), vbQuestion + vbYesNo)
Case vbYes

Range("B" & i & ":F" & i).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False



Case vbNo
Sheets("feuil1").Select
Range("A1").Select
End Select
Case vbNo
Sheets("feuil1").Select
Range("A1").Select
End Select
End If


Merci!!!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 15 mars 2023 2 712
2 mars 2010 à 16:15
Salut,
La méthode de lermitte222 est certainement la plus simple et la plus rapide. Si elle ne te convient pas tu peux faire également ceci :

Dim Ligne As Integer
Dim result As String, valeur As String
Ligne = WorksheetFunction.CountBlank(Range("B3:B14"))
If Ligne > 0 Then
result = MsgBox("Etes vous sur de vouloir valider le mois?", vbYesNo)
If result = vbYes Then
valeur = Range("A" & i) 'à condition d'avoir définit "i" avant !!!!!!!!!
MsgBox ("Avez-vous enregistré sous le mois de " & valeur)

etc etc...
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 193
2 mars 2010 à 22:31
tu est tout à fait à côté de la plaque avec tes Select Case
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cris16 Messages postés 9 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 22 mars 2010
3 mars 2010 à 15:37
Merci de ton conseil lermite. (je débute en VBA). si tu pouvais m'aider ce sera mieux!!

Merci
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 193
3 mars 2010 à 17:08
Beh t'aider.... Je t'ai donné une solution et en plus tu en a eu une deuxième, que veux-tu de plus. ?
0