IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Amelioration code VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 36
    Par défaut Amelioration code VBA
    Bonjour
    svp je dispose du code vba suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub ext_STRorCOL()
    Dim code As String
    Dim maturity As String
    Dim instrum As String
    Dim tenor As String
    Dim Last As String
    Dim pos1 As Integer
    Dim pos2 As Integer
    Dim pos3 As Integer
    code = "100m10y 20ws @123"
    pos1 = InStr(code, "m")
    maturity = Left(code, pos1)
    pos2 = InStr(pos1 + 1, code, "y")
    tenor = Trim(Mid(code, pos1 + 1, pos2 - pos1))
     pos3 = InStr(pos2 + 1, code, "wc") Or InStr(pos2 + 1, code, "ws")
    instrum = Mid(code, pos2 + 1, pos3 - pos2 + 1)
    pos1 = InStr(code, "@")
    Last = Mid(code, pos1 + 1)
    MsgBox "Maturite :" & maturity & vbLf & vbLf & " Tenor :" & tenor & vbLf & vbLf & "Instrument :" & instrum & vbLf & vbLf & "Last :" & Last
     
    End Sub

    j aimerais pouvoir l ameliorer afin de pouvoir extraire un chiffre tel que mon code serait de la forme
    code = "100m10y 20ws @123 vs 200" dc j aimerais extraire le chiffre qui vient apres le vs (ca peut etre n importee quel chiffre , entier , decimal....

    est ce que kk un ^pourrait m aider je vous prie

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Dim code As String
    Dim Split1
    Dim M As String
    code = "100m10y P10% @123"
    If InStr(code, "m") Then
        Split1 = Split(code, "m")
        maturity = Trim("" & Split1(0)) & "m"
        code = Trim("" & Split1(1))
    End If
    If InStr(code, "y") Then
        Split1 = Split(code, "y")
        tenor = Trim("" & Split1(0)) & "y"
        code = Trim("" & Split1(1))
    End If
    If InStr(UCase(code), "P") Then
        Split1 = Split(code, "P")
        M = "P" & Trim("" & Split1(1))
        If InStr(M, "@") Then
            Split1 = Split(M, "@")
     
             instrum = Trim("" & Split1(0))
           Last = Trim("" & Split1(1))
        End If
     
    End If
    MsgBox "Maturite :" & maturity & vbLf & vbLf & " Tenor :" & tenor & vbLf & vbLf & "Instrument :" & instrum & vbLf & vbLf & "Last :" & Last

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 36
    Par défaut
    rdurup merci beaucoup pour ton aide , en fait je voulais juste un peu de details , tu supprimes dans un premier temps tous les espaces via Trim
    ensuite tu split mon code de sorte a bien decomposer chaque membre, mais j ai pas tres bien compris pk y a autant de boucles conditionnels??

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je test toujours si la condition est rempli mai si tu est sur que le contenu ne change pas ou peut !
    De plus je fais un tableau par l’instruction Split (Varian) :
    Trim("" & Split1(0)) a pour objet effectivement de supprimer les espace mais aussi de convertir en string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim code As String
    Dim Split1
    Dim M As String
    code = "100m10y P10% @123"
    Split1 = Split(code, "m")
    maturity = Trim("" & Split1(0)) & "m"
    code = Trim("" & Split1(1))
    Split1 = Split(code, "y")
    tenor = Trim("" & Split1(0)) & "y"
    code = Trim("" & Split1(1))
    Split1 = Split(code, "@")
    instrum = Trim("" & Split1(0))
    Last = Trim("" & Split1(1))
    MsgBox "Maturite :" & maturity & vbLf & vbLf & " Tenor :" & tenor & vbLf & vbLf & "Instrument :" & instrum & vbLf & vbLf & "Last :" & Last

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ameliorer code VBA creation graphique
    Par Potzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/07/2010, 09h12
  2. Réponses: 2
    Dernier message: 27/10/2005, 15h51
  3. Réponses: 4
    Dernier message: 13/10/2005, 14h44
  4. Réponses: 3
    Dernier message: 06/09/2005, 10h27
  5. Comment creer une procédure stockée à partir d'un code VBA?
    Par Alcor020980 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo