Cellules vides

Résolu
cla2000 Messages postés 8 Statut Membre -  
cla2000 Messages postés 8 Statut Membre -
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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    VBA est-il nécessaire ???

    Une formule (éventuellement matricielle) du type =SI(ESTVIDE(....);...;...) ne suffit-elle pas ???
    0
    1. cla2000 Messages postés 8 Statut Membre
       
      je suis déjà dans un petit programme VBA, je ne vois pas comment, c'est faisable en utilisant =SI(estvide....
      0
  3. cla2000 Messages postés 8 Statut Membre
     
    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
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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. cla2000 Messages postés 8 Statut Membre
       
      un grand merci. c'est exactement ce dont j'avais besoin
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      De rien
      A+
      0
    3. cla2000 Messages postés 8 Statut Membre
       
      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. cla2000 Messages postés 8 Statut Membre
       
      je pensais avoir trouvé mais j'ai crié victoire trop vite
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    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. cla2000 Messages postés 8 Statut Membre
       
      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. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      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. cla2000 Messages postés 8 Statut Membre
       
      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