Retour a la ligne pour chaque message dans une MsgBox sur Excel
Résolu
summer
-
summer -
summer -
Bonjour,
Je me permet de venir ici, car j'ai regarder plusieurs forum et je n'arrive pas à trouver la solution a mon problème....
Je débute tout juste en VBA et j'ai commencer une macro qui me met une message box dès qu'il y a un évènement dans les 30 prochain jours.
Tout fonctionne bien, le truc c'est qu'il peut y avoir plusieurs évènement dans les 30 prochain jour et donc il m'affiche plusieurs message box à suivre, je préfèrerais que tout soit sur la même car je trouve ca plus lisible.
Je serais amener a rajouter des évènement au fur et a mesure, je ne peux donc pas prévoir combien il me faudra de ligne, il faudrait que ca s'inscrive dans une boucle. Mais je n'arrive pas a la faire ...
J'espère etre assez clair ^^'
Pour résumer j'aimerais avoir qu'une message box qui regroupe plusieurs info.
Voici mon VBA
Private Sub Workbook_Open()
'Pour chaque date de la colonne Date d'effet
For Each cellule In Range("G:G")
'Si une date est inférieur ou égale à aujourd'hui +30 jours alors affiche le texte de la cellule correspondante en colonne A
If cellule <= Date + 30 And cellule <> "" And cellule >= Date Then
MsgBox (cellule.Offset(0, -1).Value & " " & cellule.Offset(0, -5).Value & " au " & cellule.Offset(0, -3).Value), vbInformation = vbOKOnly, " Changement dans les 30 prochains jours"
Next
End Sub
Merci pour votre attention,
aidez moi please ! :)
Je me permet de venir ici, car j'ai regarder plusieurs forum et je n'arrive pas à trouver la solution a mon problème....
Je débute tout juste en VBA et j'ai commencer une macro qui me met une message box dès qu'il y a un évènement dans les 30 prochain jours.
Tout fonctionne bien, le truc c'est qu'il peut y avoir plusieurs évènement dans les 30 prochain jour et donc il m'affiche plusieurs message box à suivre, je préfèrerais que tout soit sur la même car je trouve ca plus lisible.
Je serais amener a rajouter des évènement au fur et a mesure, je ne peux donc pas prévoir combien il me faudra de ligne, il faudrait que ca s'inscrive dans une boucle. Mais je n'arrive pas a la faire ...
J'espère etre assez clair ^^'
Pour résumer j'aimerais avoir qu'une message box qui regroupe plusieurs info.
Voici mon VBA
Private Sub Workbook_Open()
'Pour chaque date de la colonne Date d'effet
For Each cellule In Range("G:G")
'Si une date est inférieur ou égale à aujourd'hui +30 jours alors affiche le texte de la cellule correspondante en colonne A
If cellule <= Date + 30 And cellule <> "" And cellule >= Date Then
MsgBox (cellule.Offset(0, -1).Value & " " & cellule.Offset(0, -5).Value & " au " & cellule.Offset(0, -3).Value), vbInformation = vbOKOnly, " Changement dans les 30 prochains jours"
Next
End Sub
Merci pour votre attention,
aidez moi please ! :)
A voir également:
- Vba msgbox retour à la ligne
- Retour à la ligne excel - Guide
- Partager photos en ligne - Guide
- Retour à la ligne google sheet ✓ - Forum Google Docs
- Notepad++ retour à la ligne ✓ - Forum Bureautique
- Paramètre de retour à la ligne automatique pour du texte dans une cellule Google - Forum Google Docs
2 réponses
Bonjour Summer, bonjour le forum,
peut-être comme ça :
À plus,
ThauTheme
peut-être comme ça :
Private Sub Workbook_Open() Dim MSG As String ''Pour chaque date de la colonne Date d'effet For Each cellule In Range("G:G") If cellule <= Date + 30 And cellule <> "" And cellule >= Date Then 'Si une date est inférieur ou égale à aujourd'hui +30 jours alors affiche le texte de la cellule correspondante en colonne A MSG = IIf(MSG = "", _ cellule.Offset(0, -1).Value & " " & cellule.Offset(0, -5).Value & " au " & cellule.Offset(0, -3).Value & " Changement dans les 30 prochains jours" & Chr(10), _ MSG & cellule.Offset(0, -1).Value & " " & cellule.Offset(0, -5).Value & " au " & cellule.Offset(0, -3).Value & " Changement dans les 30 prochains jours" & Chr(10)) End If Next MsgBox MSG, vbOKOnly End Sub
À plus,
ThauTheme
summer
J'essaye de suite..mais ca vient de faire planter mon fichier ^^
ThauTheme
Messages postés
1564
Statut
Membre
160
Désolé je me suis planté. J'ai corrigé le code.
summer
Merci, mais ca ne fonctionne pas car une fois le code rentrer mon fichier en répond plus...
ThauTheme
Messages postés
1564
Statut
Membre
160
Ben... Envoie le fichier !
summer
>
ThauTheme
Messages postés
1564
Statut
Membre
Je ne peux pas certaines données sont confidentielles
Bonjour a vous deux
Legeres modifs au code de Thauttheme:
Legeres modifs au code de Thauttheme:
Private Sub Workbook_Open() Dim MSG As String, Plage As Range, cellule As Range ''Pour chaque date de la colonne Date d'effet With Worksheets("feuil1") 'adapter nom de feuille derlig = .Range("G" & Rows.Count).End(xlUp).Row Set Plage = Range("G1:G" & derlig) End With For Each cellule In Plage If cellule <> "" And cellule >= Date And cellule <= Date + 30 Then 'Si une date est inférieur ou égale à aujourd'hui +30 jours alors affiche le texte de la cellule correspondante en colonne A MSG = IIf(MSG = "", cellule.Offset(0, -1).Value & " " & cellule.Offset(0, -5).Value & " au " & cellule.Offset(0, -3).Value & Chr(10), _ MSG & cellule.Offset(0, -1).Value & " " & cellule.Offset(0, -5).Value & " au " & cellule.Offset(0, -3).Value & Chr(10)) End If Next cellule MsgBox MSG, vbOKOnly, " Changement dans les 30 prochains jours" End Sub
Re,
Ben, je serai tente de vous dire de regarder les differences entre les deux codes, mais bon ....
Ben, je serai tente de vous dire de regarder les differences entre les deux codes, mais bon ....
'mise en memoire des cellules non vides colonne G pour temps d'execution plus court With Worksheets("feuil1") 'adapter nom de feuille derlig = .Range("G" & Rows.Count).End(xlUp).Row 'derniere cellule non vide Set Plage = Range("G1:G" & derlig) 'mise en memoire des cellules non vide End With For Each cellule In Plage 'boucle sur la place de cellule en memoire 'MSG: vos infos cellules, bouton, titre de la boite MsgBox MSG, vbOKOnly, " Changement dans les 30 prochains jours"