formater des valeurs issues d'un Array : dates, nombre, monnaie

  • Initiateur de la discussion Initiateur de la discussion lodam
  • 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 !

lodam

XLDnaute Occasionnel
bonsoir

J'ai créé une liste avec mes valeurs d'un userform de saisie avec un array pour gérer les formats
Le problème est que pour certaines valeurs, le format de sortie n'est pas bon.
Par exemple : le numéro de client (num_client) est collé dans la feuille "Dossiers" sous la forme TEXTE alors qu'il devrait être en format NOMBRE
J'ai essayé avec format, general, cdbl, val mais ça ne donne pas le résultat escompté
Auriez-vous une idée ?*
d'avance merci
--------------------------------------
code :
liste = Array("ref", "num_client", "adr1", "cp", "ille", "date")
MesFormats = Array(Val(ref), Format(num_client.Value, "#,##0.00"), "general", "general", "general", "dd/mm/yy")

derlin = Sheets("dossiers").Range("A65536").End(xlUp).Row + 1

For n = 0 To UBound(liste)
With Sheets("dossiers").Cells(derlin, n + 1)
.Value = Dossier.Controls(liste(n))
.NumberFormat = MesFormats(n)
End With
Next n
 
Re : formater des valeurs issues d'un Array : dates, nombre, monnaie

bonjour lodam

A tester:

Code:
Sub test()
liste = Array("ref", "num_client", "adr1", "cp", "ille", "date")
MesFormats = Array("general", "0", "#,##0.00", "general", "general", "general", "dd/mm/yy")

derlin = Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1

For n = 0 To UBound(liste)
With Sheets("dossiers").Cells(derlin, n + 1)
If n = 0 Then
 .Value = Val(Dossier.Controls(liste(n)))
Else
 .Value = Dossier.Controls(liste(n))
End If
.NumberFormat = MesFormats(n)
End With
Next n
End Sub
 
Re : formater des valeurs issues d'un Array : dates, nombre, monnaie

Ah pierrejean, merci d'être venu à ma rescousse!
Cela marche parfaitement !

En problème supplémentaire, pour la date, la valeur collée est de la forme 'date + heure'
Il s'agit dans mon userform de choisir une date par un DataPicker mais malgré l'indication dans "MesFormats" du format "dd/mm/yy", j'ai par exemple :
"14/06/08 14:59:14"

Du coup, je vais essayer avec la formule que tu m'as donnée :

If n = 0 Then
.Value = Val(Dossier.Controls(liste(n)))
Elseif n=5
.value=format(Dossier.Controls(liste(n)), "dd/mm/yy")
else
.Value = Dossier.Controls(liste(n))
..............

je vais tester
encore merci !
lodam
 
Re : formater des valeurs issues d'un Array : dates, nombre, monnaie

et bien ça marche bien.
Merci encore pierrejean

Reste plus qu'à trouver comment mettre en forme les données dans la listbox car je souhaiterais que dans la listbox puissent apparaître les sigles "€" ou autres
Je vais chercher dans le forum
Bonne soirée
lodam
 
- 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

Discussions similaires

Réponses
2
Affichages
1 K
Retour