VBA : récupérer la dernière ligne d'un commentaire

Le
Jean-Luc GARNIER
Bonjour,

J'ai dans un tableau réprésentant un planning une colonne où la case est
commentée (statut en cours). Ces commentaires sont de la forme:

20/11 : ETS v1 received
21/11 : created on demand from DDahan, target = G+
22/01 : ETS v2 received
25/01 : ETS v3 received
31/01 : transfer BR -> EP
12/02 : ETS v4 received
13/02 : M8 1.0 delivered to TMalia

A chaque nouvelle entrée, je passe à la ligne.

Mon besoin: récupérer la DERNIERE ligne de chaque commentaire afin de
déterminer si la date (partielle) inscrite au début de la ligne est comprise
dans la semaine courante. Ensuite, je fais une extraction de la ligne après
les ':' et je produis un rapport hebdomadaire HTML automatisé sur le statut
de chaque tâche du planning : seul le commentaire concernant la semaine en
cours est pris en compte

Belle idée, mais peu de technique ! :-)

J'ai bien pensé utilisé InStrRev, mais comment lui faire détecter un retour
chariot ?

Merci d'avance pour toute aide !

--
Jean-Luc, Auriol, FRANCE
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #4228601
bonjour Jean-Luc,

exemple si le commentaire est en cellule A1

Sub Macro1()
x = Len(Range("A1").Comment.Text)
For i = x To 1 Step -1
If Mid(Range("A1").Comment.Text, i, 1) = ":" Then
Exit For
End If
Next
commentaire = Right(Range("A1").Comment.Text, x - i - 1)
LaDate = "'" & Mid(Range("A1").Comment.Text, i - 6, 5)
End Sub

isabelle

Bonjour,

J'ai dans un tableau réprésentant un planning une colonne où la case est
commentée (statut en cours). Ces commentaires sont de la forme:

20/11 : ETS v1 received
21/11 : created on demand from DDahan, target = G+
22/01 : ETS v2 received
25/01 : ETS v3 received
31/01 : transfer BR -> EP
12/02 : ETS v4 received
13/02 : M8 1.0 delivered to TMalia

A chaque nouvelle entrée, je passe à la ligne.

Mon besoin: récupérer la DERNIERE ligne de chaque commentaire afin de
déterminer si la date (partielle) inscrite au début de la ligne est comprise
dans la semaine courante. Ensuite, je fais une extraction de la ligne après
les ':' et je produis un rapport hebdomadaire HTML automatisé sur le statut
de chaque tâche du planning : seul le commentaire concernant la semaine en
cours est pris en compte...

Belle idée, mais peu de technique ! :-)

J'ai bien pensé utilisé InStrRev, mais comment lui faire détecter un retour
chariot ?

Merci d'avance pour toute aide !



JB
Le #4228551
Bonjour,

c = [A1].Comment.Text
pp = InStrRev(c, ":")
Cmt = Mid(c, pp + 1) ' commentaire
psl = InStrRev(c, Chr(10), pp)
dt = Mid(c, psl + 1, pp - psl - 1) ' date

Sous forme de fonction:

Function Cmt(x As Range)
c = x.Comment.Text
pp = InStrRev(c, ":")
Cmt = Trim(Mid(c, pp + 1))
End Function

Function dt(x As Range)
c = x.Comment.Text
pp = InStrRev(c, ":")
psl = InStrRev(c, Chr(10), pp)
dt = Mid(c, psl + 1, pp - psl - 1)
End Function

JB


On 5 mar, 15:13, Jean-Luc GARNIER wrote:
Bonjour,

J'ai dans un tableau réprésentant un planning une colonne où la cas e est
commentée (statut en cours). Ces commentaires sont de la forme:

20/11 : ETS v1 received
21/11 : created on demand from DDahan, target = G+
22/01 : ETS v2 received
25/01 : ETS v3 received
31/01 : transfer BR -> EP
12/02 : ETS v4 received
13/02 : M8 1.0 delivered to TMalia

A chaque nouvelle entrée, je passe à la ligne.

Mon besoin: récupérer la DERNIERE ligne de chaque commentaire afin de
déterminer si la date (partielle) inscrite au début de la ligne est c omprise
dans la semaine courante. Ensuite, je fais une extraction de la ligne apr ès
les ':' et je produis un rapport hebdomadaire HTML automatisé sur le st atut
de chaque tâche du planning : seul le commentaire concernant la semaine en
cours est pris en compte...

Belle idée, mais peu de technique ! :-)

J'ai bien pensé utilisé InStrRev, mais comment lui faire détecter u n retour
chariot ?

Merci d'avance pour toute aide !

--
Jean-Luc, Auriol, FRANCE


Jean-Luc GARNIER
Le #4226181
Merci à toutes et à tous, cela marche nickel !

--
Jean-Luc, Auriol, FRANCE


"JB" wrote:

Bonjour,

c = [A1].Comment.Text
pp = InStrRev(c, ":")
Cmt = Mid(c, pp + 1) ' commentaire
psl = InStrRev(c, Chr(10), pp)
dt = Mid(c, psl + 1, pp - psl - 1) ' date

Sous forme de fonction:

Function Cmt(x As Range)
c = x.Comment.Text
pp = InStrRev(c, ":")
Cmt = Trim(Mid(c, pp + 1))
End Function

Function dt(x As Range)
c = x.Comment.Text
pp = InStrRev(c, ":")
psl = InStrRev(c, Chr(10), pp)
dt = Mid(c, psl + 1, pp - psl - 1)
End Function

JB


On 5 mar, 15:13, Jean-Luc GARNIER wrote:
Bonjour,

J'ai dans un tableau réprésentant un planning une colonne où la case est
commentée (statut en cours). Ces commentaires sont de la forme:

20/11 : ETS v1 received
21/11 : created on demand from DDahan, target = G+
22/01 : ETS v2 received
25/01 : ETS v3 received
31/01 : transfer BR -> EP
12/02 : ETS v4 received
13/02 : M8 1.0 delivered to TMalia

A chaque nouvelle entrée, je passe à la ligne.

Mon besoin: récupérer la DERNIERE ligne de chaque commentaire afin de
déterminer si la date (partielle) inscrite au début de la ligne est comprise
dans la semaine courante. Ensuite, je fais une extraction de la ligne après
les ':' et je produis un rapport hebdomadaire HTML automatisé sur le statut
de chaque tâche du planning : seul le commentaire concernant la semaine en
cours est pris en compte...

Belle idée, mais peu de technique ! :-)

J'ai bien pensé utilisé InStrRev, mais comment lui faire détecter un retour
chariot ?

Merci d'avance pour toute aide !

--
Jean-Luc, Auriol, FRANCE







Publicité
Poster une réponse
Anonyme