Cellules vides

Résolu
Bonjour à tous et déjà merci pour votre aide.
je suis novice dans le domaine, et bien évidement, mon niveau est assez faible.
j'ai fais pas mal de decherche afin d'essayer de trouver une solution à mon problème, mais je bloque.

j'ai une vingtaine de cellules sur ma feuille de calcul dont j'aimerai vérifier si elles sont vides.
si quelqu'un peut m'aider, se serait gentil
merci

5 réponses

  1. Modérateur
    Bonjour,

    Peux tu nous en dire plus sur ce que tu souhaites réellement?
    Veux tu :
    - vérifier si les 20 cellules sont TOUTES vides?
    - vérifier une par une si les 20 cellules sont vides et te prévenir de leur "vidité" au fur et à mesure?
    - etc...
    0
    1. Bonjour,

      VBA est-il nécessaire ???

      Une formule (éventuellement matricielle) du type =SI(ESTVIDE(....);...;...) ne suffit-elle pas ???
      0
      1. je suis déjà dans un petit programme VBA, je ne vois pas comment, c'est faisable en utilisant =SI(estvide....
        0
    2. En fait, si au moins une de ces cellules est vide, une msgbox s'ouvre pour me prévenir que j'ai oublié de remplir la cellule (pour remplir les cellules, plusieurs choix possibles, liste déroulante)
      il me faudrait avant d'appliquer la procédure principale, une fonction, procédure (excuse-moi pour les termes, je ne les connais pas encore très bien) qui vérifie si c'est vingt cellules ont bien été remplie.
      merci
      0
      1. Modérateur
        En exemple, une fonction et une procédure d'appel de cette fonction :
        Sub AppelFonction()
        Dim maplage As Range
        
        Set maplage = Range("A1:A10,F1,G3")
        If CellRemplies(maplage) <> "" Then MsgBox CellRemplies(maplage)
        End Sub
        
        Function CellRemplies(Plage As Range) As String
        Dim cel As Range
        
        For Each cel In Plage
            If cel = "" Then CellRemplies = CellRemplies & cel.Address & "," & Chr(10)
        Next
        If CellRemplies <> "" Then CellRemplies = "Les cellules suivantes sont vides : " & Chr(10) & CellRemplies
        End Function


        Cordialement,
        Franck P
        0
        1. un grand merci. c'est exactement ce dont j'avais besoin
          0
        2. Modérateur
          De rien
          A+
          0
        3. bonjour,
          je ne veux pas abuser, mais si je peux me permettre, j'ai une autre demande, une variante de la première.
          qu'est-ce que je devrais faire si je voudrais supprimer les lignes dont les cellules sont vides?
          Merci.
          0
        4. je pensais avoir trouvé mais j'ai crié victoire trop vite
          0
      2. Bonjour,

        Il faudrait que tu précises à partir quelle action le message apparaît !

        Une autre possibilité (sans boucle) :

        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim r As Range
           'remplacer B12:C18,D10 par la plage à verifier
          On Error Resume Next
          Set r = Range("B12:C18,D10").SpecialCells(xlCellTypeBlanks)
          On Error GoTo 0
          If Not r Is Nothing Then
            If r.Cells.Count > 1 Then
              MsgBox "Remplir les cellules " & r.Address(False, False)
            Else
              MsgBox "Remplir la cellule " & r.Address(False, False)
            End If
          End If
        End Sub
        0
        1. Pour info, j'ai recopié la procédure mais ça ne fonctionne pas.
          en fait, quand je veux executer le macro, il n'y en a pas.
          Est-ce que cela vient du fait que c'est une private sub, je nen sais rien?
          mais, j'ai une solution qui fonctionne donc un grand merci à tout les deux
          0
        2. Il faut copier cette procédure dans le module de la feuille, elle est déclenchée automatiquement par chaque modification de la feuille, ce qui n'est pas satisfaisant pendant le renseignement de la feuille d'où ma question concernant l'évènement de fin qui doit déclencher l'affichage.
          0
        3. effectivement, en la recopiant dans le module de la feuille, elle fonctionne (j'avais dis que j'étais novice. lol). de manière différente.
          je pense qu'elle me servia pour une autre application.
          merci pour vos solutions.
          A bientôt.
          0