MsgBox avec boucle qui énumère

Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   -  
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai pris le code de michel_m sur le forum (merci à lui) :

Sub enumerer()
fin = Range("A100").End(xlUp).Row
For cpt = 1 To fin
     Message = Message & Cells(cpt, "A") & vbLf
Next
MsgBox Message
End Sub


Je n'arrive pas à l'adapter avec une condition :

Private Sub Workbook_Open()

Dim DL As Long

DL = Cells(Application.Rows.Count, 1).End(xlUp).Row

For i = 1 To DL

If Range("A" & i).Value < 30 Then
MsgBox ("Attention, la valeur est supérieure à 30" & vbLf & vbLf & "-" & Cells(i, "B") & vbLf)
End If

Next i

End Sub


Là j'ai plusieurs MsgBox qui apparaissent alors que j'aurais voulu en avoir une seule qui énumère toutes les cellules (i, "B") concernées par la condition.

Merci d'avance.

Cordialement.

2 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Private Sub Workbook_Open()
    Dim DL As Long, Liste_Cell As String

    DL = Cells(Application.Rows.Count, 1).End(xlUp).Row
    For i = 1 To DL
        If Range("B" & i).Value < 30 Then
            Liste_Cell = Liste_Cell & "-" & Cells(i, "B") & vbLf
        End If
    Next i
    MsgBox ("Attention, la valeur est supérieure à 30" & vbLf & vbLf & Liste_Cell)
End Sub
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
Autre proposition affichant la liste des cellules de la colonne B > à 30 à la place des valeurs
Private Sub Workbook_Open()
    Dim DL As Long
    DL = Cells(Application.Rows.Count, 1).End(xlUp).Row
    Mes = ""
    For i = 1 To DL
        If Range("B" & i).Value > 30 Then Mes = Mes & Cells(i, 2).Address(RowAbsolute:=False, columnAbsolute:=False) & Chr(10)
    Next i
    MsgBox "Attention, la valeur dans les cellules suivantes est supérieure à 30" & vbLf & vbLf & Mes
End Sub

Cdlt
0
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Merci beaucoup pour vos 2 réponses. Je n'arrive pas à avoir certains mécanismes en VBA. J'ai du travail.... Par exemple, il était évident qu'il fallait intégrer une variable pour récupérer les données des lignes i mais il ne fallait surtout pas que la MsgBox fasse partie de la boucle.

Merci en tout cas.

Cordialement.
0