Sélectionner une plage de donnée

cris16 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
lermite222 Messages postés 9042 Statut Contributeur -
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
Configuration: Windows XP / Firefox 3.6

6 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  2. cris16 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    tu est tout à fait à côté de la plaque avec tes Select Case
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cris16 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci de ton conseil lermite. (je débute en VBA). si tu pouvais m'aider ce sera mieux!!

    Merci
    0
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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