Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 afficher un msgbox si une plage de données est vide mais avec une condition

  • Initiateur de la discussion Initiateur de la discussion jhibon80
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jhibon80

XLDnaute Nouveau
bonjour,

j'ai besoin de faire afficher un msgbox si la plage de données allant de k6 à v6 est vide MAIS si A6 est non vide.

et répéter ceci pour chacune des lignes de mon tableau (dernière ligne n°90)

 
Bonjour Jhibon, bonjour le forum,

Peut-être comme ça :

VB:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet O
For I = 6 To DL 'boucle sur toutes les lignes I de 6 à DL
    'si la cellule en colonne A de la boucle n'est pas vide et le nombre de cellules vides des colonne K à V est égale à 12, message
    If O.Cells(I, "A").Value <> "" And Application.WorksheetFunction.CountBlank(O.Range(O.Cells(I, "K"), O.Cells(I, "V"))) = 12 Then MsgBox "Ligne " & I & " à completer !"
Next I 'prohaine ligne de la boucle
End Sub
 
Merci beaucoup Robert. puis je abuser encore?
ce message pourrait il apparaître lorsque l'on descend sur la ligne suivante.

en gros si en A6 je mets ma date et que je vais à la ligne du dessous sans avoir complété de K à V je veux que le message apparaisse.

je suis désolée je commence tout juste le VBA et je vois que c'est pas gagné!
 
Re,

C'est faisable mais il faut utiliser la macro événementielle Change. Pour pas perdre des heures à t'explique comment la placer, je préfèrerais que tu envoies ton fichier...
 
Merci Robert.
là le message s'affiche quand tu passes d'une cellule à une autre sur la ligne 6. je vais etre chiante mais je l'aurai voulu à la fin de la ligne quand tu veux passer à la ligne suivante et quand tu selectionnes dans le tableau par exemple A7.
en résumé bloquer toute action si K6:V6 sont vides.
 
bonjour Job75 => pour te répondre : au moins une.

Robert => super. juste une question pourquoi on passe à la dernière ligne? on peut pas rester sur la cellule de la ligne à compléter?
c'est juste une question 😉
 
Re,

Fichier joint et cette macro :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range, cible As Range
If Target.Row < 6 Then Exit Sub
For Each c In Range("A6", Range("A" & Rows.Count).End(xlUp)(6))
    If c <> "" And c.Row <> Target.Row Then
        Set cible = c(1, 11).Resize(, 12) 'colonnes K à V
        If Application.CountA(cible) = 0 Then
            Application.EnableEvents = False 'désactive les évènements
            cible.Select
            Application.EnableEvents = True 'réactive les évènements
            MsgBox cible.Address(0, 0) & " à renseigner..."
            Exit For
        End If
    End If
Next
End Sub
Pas de message quand la ligne sélectionnée est celle qui est concernée par le contrôle.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
209
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…