Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Probléme code VBA virgules

  • Initiateur de la discussion Initiateur de la discussion Yaniv
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Y

Yaniv

Guest
Bonjour svp je dispose du code suivant

Code:
Function FindLast(ByVal code As String) As Variant
 Dim pos As Integer
 Dim pos1 As Integer
 If code Like ("*@*") Then
   If code Like ("*,*") Then
   pos = InStr(code, "@")
   pos1 = InStr(code, ",")
 FindLast = RightNum(Mid(code, pos)) & "," & Val(Mid(code, pos1 + 1))
   Else: pos = InStr(code, "@")
         FindLast = RightNum(Mid(code, pos))
 End If
 Else: FindLast = ""
 End If
End Function

ce code me permet lorsque je dispose d un instrument financier de la forme
"1y10y @123,126 de me renvoyer les valeurs 123 et 126 et dans le cas ou il n y a pas de virgule de me renvoyer juste la valeur apres le @ toutefois j aimerais ameliore mon code afin de pouvoir egalement tenir compte du cas
ou mon instrument serait de la forme "1y10y @123,126,145" dc de pouvoir renvoyer les 3 valeur 123 126 et 145 , merci de votre aide je suis vraiment bloque
 
Re : Probléme code VBA virgules

Bonjour.
Pourquoi ceci ne suffirait-il pas ?
VB:
Function FindLast(ByVal Code As String) As Variant
If Code Like "*@*" Then FindLast = Split(Code, "@")(1) Else FindLast = ""
End Function
 
Re : Probléme code VBA virgules

Bonjour , dsl de repondre aussi tard mais jetais absent ce weekend.
Ce code ne pourrait pas marcher psk je ne connais pas la longueur de ma chaine de caractere(j ai donné un lmauvais exemple)
en fait je peux tres bien avoir le code suivant
"1y10y @123,156 126/456" dans ce cas je ne voudrais retirer que les valeurs 123,156
 
Re : Probléme code VBA virgules

Bonjour.
Mais logiquement selon ce que vous dites, quand il y a un seulement un slash au milieu, on est bien dans le cas ou il n y a pas de virgule et vous renvoyer juste cette valeur après le @ ?
VB:
Function FindLast(ByVal Code As String) As Variant
If Code Like "*@*" Then FindLast = Split(Split(Code, "@")(1), " ")(0) Else FindLast = ""
End Function
J'en doute cependant un peu car dans une autre discussion cela devait être interprété comme d'autres informations renvoyées par des fonctions FindBid et FindAsk !
Dans ce cas il suffirait d'ajouter cette instruction:
VB:
If FindLast Like "*/*" Then FindLast = ""
Mais c'est sans doute bien plus compliqué parce qu'en plus ces fonctions ne les interprètaient comme telles que si les valeurs en question étaient numériques. Tandis que là vous parlez juste de valeur après le @ de quelque nature qu'elle soit et on ne voit pas de raison d'y tester la présence de virgules puisque s'il n'y en a pas, il faut pareil à ce qu'il y a. La seule précision que vous avez apportée c'est qu'il ne faut plus ce qu'il y aurait à partir et au delà d'un espace.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
4
Affichages
975
mimich_88
M
K
Réponses
1
Affichages
894
Karakol
K
Réponses
8
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…