[déplacé VB.NET -> VBA] Excel - Copie du contenu gauche/droit d'une comboBox dan [Résolu]

Messages postés
10
Date d'inscription
mardi 23 février 2010
Dernière intervention
4 mars 2010
- - Dernière réponse : cs_Oxydation
Messages postés
10
Date d'inscription
mardi 23 février 2010
Dernière intervention
4 mars 2010
- 24 févr. 2010 à 10:59
Bonjour à tous ,

Je code en Vba depuis peu, en réalité depuis le début de mon stage, je n'ai donc pas énormément de connaissances en la matière.Mon probléme : J'ai une combobox nommée très astucieusement ComboBox1 qui contient des données sous sous la forme " nombres/LETTRE/nombre(s), je précise que ces données sont recherchées automatiquement dans une feuille excel grâce à cette fonction :

Function init()
ComboBox1.Clear
Dim temp As String
Dim ok As Integer
ref = 0
i = 2
While Not IsEmpty(Feuil1.Cells(i, 2).Value)
If Feuil1.Cells(i, 63) = "X" Then
ComboBox1.AddItem Feuil1.Cells(i, 2).Value
End If
i = i + 1
Wend

J'appelle bien sûr cette fonction dans mon userform.

Private Sub UserForm_Initialize()
init
End Sub

Exemples de données dans la comBoBox1 : 4300987H1 ou encore 3799309H93 ou même 0673B5 voire même 4301390H14

Comme vous pouvez le voir le nombre de nombres (Hum...) avant la lettre n'est pas toujours identique, est pareil pour après la lettre.

Ce que je veux faire (attention les yeux) serait de copier la partie gauche de la combobox (c'est à dire tous les nombres AVANT la lettre, lettre non comprise) dans une textbox1, et la partie droite (lettre ET nombres après la lettre) dans une textbox2. Et donc je n'y arrive pas (ce qui semble assez logique sinon je n'aurait pas crée un sujet)
Si une ou même plusieurs personnes auraient la gentillesse de m'aider j'en serai ravi.

Merci d'avance
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
264
3
Merci
Bonjour,
1) si tout ce discours n'est finalement que pour arriver à extraiere de ta chaîne, séparément, les chiffres à gauche, la lettre au milieu et les chiffres derrière, voilà :
toto = "3799309H93"
mesnombresdevant = CStr(Val(toto))
malettre = Mid(toto, Len(mesnombresdevant) + 1, 1)
mesnombresderriere = Mid(toto, (Len(mesnombresdevant) + 2))
MsgBox mesnombresdevant & vbCrLf & malettre & vbCrLf & mesnombresderriere

tu fais ensuite (c'est ton affaire) ce que tu veux de ces 3 variables.
2) veux-tu s'il te plait faire attention au thème choisi pour ouvrir une discussion ? (c'est important).
Tu ne développes pas sous VB.Net, mais sous VBA

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
264
3
Merci
Bon...
Ce sera alors à peine un peu plus long

toto = "0799309H93"
mesnombresdevant = ""
For i = 1 To Len(toto)
  If Mid(toto, i, 1) Like "#" Then
    mesnombresdevant = mesnombresdevant & Mid(toto, i, 1)
  Else
    Exit For
  End If
Next
malettre = Mid(toto, Len(mesnombresdevant) + 1, 1)
mesnombresderriere = Mid(toto, (Len(mesnombresdevant) + 2))
MsgBox mesnombresdevant & vbCrLf & malettre & vbCrLf & mesnombresderriere

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
10
Date d'inscription
mardi 23 février 2010
Dernière intervention
4 mars 2010
0
Merci
Bonjour,

Merci beaucoup Ucfoutu pour ta réponse, cela fonctionne à merveille, sauf pour une référence (sur 3000 c'est dommage mais bon il faut que ce soit parfait ), c'est la référence "0670B3" qui pose probléme, en effet ma textbox1 devrait contenir "0670" et ma textbox2 "B3", or avec cette référence ma textbox1 reçoit "067" et ma textbox2 "0B3" je ne comprend pas pourquoi.

Merci encore pour ta réponse précédente et désolé pour le thème mal choisi j'étais pourtant persuadé d'avoir vhoisi Vba , mais j'ai dû faire une erreur, encore désolé.
Commenter la réponse de cs_Oxydation
Messages postés
10
Date d'inscription
mardi 23 février 2010
Dernière intervention
4 mars 2010
0
Merci
Waouh ! Cela fonctionne nickel ! Je te remercie mille fois pour ce code !


Je vais pouvoir continuer correctement mon projet, merci encore pour ton aide !
Commenter la réponse de cs_Oxydation

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.