Etienne2323
XLDnaute Impliqué
Bonjour à tous,
j'aurais besoin une fois de plus de votre imagination de programmation. Je vous expose donc mon problème. Chaque trimestre, je reçois de différents gestionnaires les 10 titres majeurs que comporte chaque fond. Cette information me parvient comme suis :
En français :
Can. Housing Trust 4,55 15-12-2012
Prov. de l'Ontario 6,50 08-03-2029
Can. Housing Trust 3,550 15-09-2010
Prov. de l'Ontario 5,375 02-12-2012
Can. Housing Trust 4,60 15-09-2011
Bon trésor US 17-09-2008
Can. Housing Trust 4,60 15-09-2011
Banque Dev. Africaine 4,85 24-07-2012
Prov. de l'Ontario 8,100 08-09-2023
Can. Housing Trust 4,80 15-06-2012
En anglais :
Canada Housing Trst 4.550 Dec 15 12
Ontario Prov 6.500 Mar 08 29
Canada Housing Trst 3.550 Sep 15 10
Ontario Prov 5.375 Dec 02 12
Canada Housing Trst 4.600 Sep 15 11
United States Treas 7.625 Feb 15 25
Canada Housing Trst 4.600 Sep 15 11
African Dev Bk 4.850 Jul 24 12
Ontario Prov 8,100 Sep 08 23
Canada Housing Trst 4.800 Jun 15 12
Les rendements ne font pas parti de mon problème alors je vous les épargne.
La situation est donc la suivante :
Je dois séparer dans un tableau, par le biais d'une macro, les différentes informations contenues la dedans.
J'ai donc besoin d'une colonne "Titre", une colonne "Taux" et une colonne "Échéance" .
Ceci est un exemple pour des titres à revenus fixes, mais la même macro doit pouvoir fonctionner même s'il n'y a pas de taux ou d'échéance dans le cas par exemple d'actions canadiennes.
Vous auriez une piste ou une solution à me proposer ?
Je vous présente ci-bas le début de code que j'avais élaborer mais ce n'est pas ce qu'il y a de plus efficace. Je dois aussi préciser que je ne suis encore qu'un débutant de VB.
Sub Test()
For Row = 6 To 15
temp = ""
temp = Cells(Row, 17).Value
texte = ""
nombre = ""
For i = 1 To Len(temp)
c = Mid(temp, i, 1)
c3 = Mid(temp, i, 3)
c4 = Mid(temp, i, 4)
If c4 = "Jan " Or c4 = "Feb " Or c4 = "Mar " Or c4 = "Apr " Or c4 = "May " Or c4 = "Jun " Or c4 = "Jul " Or c4 = "Aug " Or c4 = "Sep " Or c4 = "Oct " Or c4 = "Nov " Or c4 = "Dec " Or c = "1" Or c = "2" Or c = "3" Or c = "4" Or c = "5" Or c = "6" Or c = "7" Or c = "8" Or c = "9" Or c = "0" Or c3 = " " Then
texte = Left(temp, i - 1)
nombre = Mid(temp, i)
GoTo fin
End If
Next i
If texte = "" And nombre = "" Then texte = temp
fin:
Cells(Row + 11, 6).Value = texte
Cells(Row + 11, 8).Value = nombre
Next Row
End sub
Merci à l'avance
Étienne
j'aurais besoin une fois de plus de votre imagination de programmation. Je vous expose donc mon problème. Chaque trimestre, je reçois de différents gestionnaires les 10 titres majeurs que comporte chaque fond. Cette information me parvient comme suis :
En français :
Can. Housing Trust 4,55 15-12-2012
Prov. de l'Ontario 6,50 08-03-2029
Can. Housing Trust 3,550 15-09-2010
Prov. de l'Ontario 5,375 02-12-2012
Can. Housing Trust 4,60 15-09-2011
Bon trésor US 17-09-2008
Can. Housing Trust 4,60 15-09-2011
Banque Dev. Africaine 4,85 24-07-2012
Prov. de l'Ontario 8,100 08-09-2023
Can. Housing Trust 4,80 15-06-2012
En anglais :
Canada Housing Trst 4.550 Dec 15 12
Ontario Prov 6.500 Mar 08 29
Canada Housing Trst 3.550 Sep 15 10
Ontario Prov 5.375 Dec 02 12
Canada Housing Trst 4.600 Sep 15 11
United States Treas 7.625 Feb 15 25
Canada Housing Trst 4.600 Sep 15 11
African Dev Bk 4.850 Jul 24 12
Ontario Prov 8,100 Sep 08 23
Canada Housing Trst 4.800 Jun 15 12
Les rendements ne font pas parti de mon problème alors je vous les épargne.
La situation est donc la suivante :
Je dois séparer dans un tableau, par le biais d'une macro, les différentes informations contenues la dedans.
J'ai donc besoin d'une colonne "Titre", une colonne "Taux" et une colonne "Échéance" .
Ceci est un exemple pour des titres à revenus fixes, mais la même macro doit pouvoir fonctionner même s'il n'y a pas de taux ou d'échéance dans le cas par exemple d'actions canadiennes.
Vous auriez une piste ou une solution à me proposer ?
Je vous présente ci-bas le début de code que j'avais élaborer mais ce n'est pas ce qu'il y a de plus efficace. Je dois aussi préciser que je ne suis encore qu'un débutant de VB.
Sub Test()
For Row = 6 To 15
temp = ""
temp = Cells(Row, 17).Value
texte = ""
nombre = ""
For i = 1 To Len(temp)
c = Mid(temp, i, 1)
c3 = Mid(temp, i, 3)
c4 = Mid(temp, i, 4)
If c4 = "Jan " Or c4 = "Feb " Or c4 = "Mar " Or c4 = "Apr " Or c4 = "May " Or c4 = "Jun " Or c4 = "Jul " Or c4 = "Aug " Or c4 = "Sep " Or c4 = "Oct " Or c4 = "Nov " Or c4 = "Dec " Or c = "1" Or c = "2" Or c = "3" Or c = "4" Or c = "5" Or c = "6" Or c = "7" Or c = "8" Or c = "9" Or c = "0" Or c3 = " " Then
texte = Left(temp, i - 1)
nombre = Mid(temp, i)
GoTo fin
End If
Next i
If texte = "" And nombre = "" Then texte = temp
fin:
Cells(Row + 11, 6).Value = texte
Cells(Row + 11, 8).Value = nombre
Next Row
End sub
Merci à l'avance
Étienne