Retour a la ligne pour chaque message dans une MsgBox sur Excel
Résolu/Fermé
A voir également:
- Retour a la ligne pour chaque message dans une MsgBox sur Excel
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Retour à la ligne css - Forum CSS
- Formule excel - Guide
- Figer une ligne excel - Guide
2 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
Modifié par ThauTheme le 23/05/2016 à 16:14
Modifié par ThauTheme le 23/05/2016 à 16:14
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
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
24 mai 2016 à 09:35
24 mai 2016 à 09:35
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
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
>
summer
Modifié par f894009 le 24/05/2016 à 11:48
Modifié par f894009 le 24/05/2016 à 11:48
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"
23 mai 2016 à 16:13
23 mai 2016 à 16:15
23 mai 2016 à 16:16
23 mai 2016 à 16:19
23 mai 2016 à 16:21