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)

upload_2018-6-26_14-38-15.png
 
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é!
 
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.
 
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
208
Retour