[VBA] Modifier le format dans un combobox

Bonjour à la commu'

Dans un souci d'esthétique et purement esthétique de mon code je souhaiterais savoir si il est possible de modifier le format d'une valeur d'un combobox.

Concrètement, j'ai 3 combobox dans lesquels je choisis une valeur. J'effectue ensuite une concaténation de ses 3 valeurs pour remplir un textbox

image

Pour arriver à ce résultat, voici une partie de mon code:

If Me.vrflan <> "" And Me.lantype = "" And Me.vlanlan = "" Then
Me.descriplan = "V" & Me.vrflan
ElseIf Me.vrflan <> "" And Me.lantype <> "" And Me.vlanlan = "" Then
Me.descriplan = "V" & Me.vrflan & "-" & Me.lantype
ElseIf Me.vrflan <> "" And Me.lantype <> "" And Me.vlanlan <> "" Then
Me.descriplan = "V" & Me.vrflan & "-" & Me.lantype & "-0" & Me.vlanlan '
Else
Me.descriplan = ""
End If

On constate que mon textbox (nommé descriplan) se compose de "V" puis de la valeur de ma première combo, puis de "-", puis de la valeur de sa seconde combo etc etc

Je souhaiterai afin d'épurer tout ce codage savoir si:

  1. il existe une possibilité de modifier le format de vlanlan.value actuellement codé sur 3 chiffres, j'aimerai qu'un 0 apparaisse (uniquement dans le textbox pas dans le combox) lorsque la valeur est insérée dans le textbox(cf: voir mon screen plus haut), j'ai essayé quelques lignes de codes sans succès probant notamment sur la partie sub vlanlan_afterupdate() et sur vlanlan_change()
  2. Je n'ai que peu d'espoir de voir cela possible (mais sait-on jamais) le format de la TEXTBOX est de la forme: V & combox1 & - & combox2 & -0 & combox3, existe t-il une possibilité de réduire tout ce charabia (je le disais en préambule, ce n'est qu'esthétique car le code fonction parfaitement à ce jour)

Merci à ceux qui prendont qqs instants pour étudier cette demande

Bonjour Sitting_bull

On ne fait pas d'esthétisme dans du code

Mais on peut optimiser (raccourcir) ce qui est possible

If Me.vrflan <> "" And Me.lantype <> "" And IsNumeric(Me.vlanlan) Then
  Me.descriplan = "V" & Me.vrflan & "-" & Me.lantype & Format(Val(Me.vlanlan),"-0000")
Else
  Me.descriplan = ""
End IF

On peut l'écrire aussi

If Me.vrflan <> "" And Me.lantype <> "" And IsNumeric(Me.vlanlan) Then
  Me.descriplan = "V" & Me.vrflan _
    & "-" & Me.lantype _
    & Format(Val(Me.vlanlan), "-0000")
Else
  Me.descriplan = ""
End If

A+

C'est mon côté rookie ça...employer esthétique ;-)

En tout cas merci, cela fonctionne comme un gant et m'aura permis de découvrir d'autres fonctionnalités.

@ Bientot

Bonjour

Pourquoi compliquer l’écriture* ? Avec des noms très courts, tester cette partie

Tx = ""
If C1 <> "" And C2 <> "" And IsNumeric(C3) Then _
   Tx = "V " & C1 & "-" & C2 & Format(C3, "-0000")

* les Me. sont superflus avec les macros écrites dans la page de code du formulaire

Remplacer, dans Tx, C1 par Format(C1,"000") si C1 ne contient que des valeurs numériques, non ?

Bonjour,
Soyons fou et simplifions encore un peu au détriment de la lisibilité et de la compréhension !...

t= ""
If a <> "" And b <> "" And IsNumeric(c) Then _
   T = "V " & a & "-" & b & Format(c, "-0000")

Cdlt.

Re,

Ordonc tu as mal choisi ton pseudo, mais l'autre était déjà pris "mafraise"

Car tu ne peux t'empêcher de la ramener

Développes comme tu veux, mais la solution était apportée, je clôture donc ce fil

Rechercher des sujets similaires à "vba modifier format combobox"