[RESOLU] Transfert listbox date (inversion jour/mois)

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

cathodique

XLDnaute Barbatruc
Bonjour,🙂

Afin de mettre à jour une base de factures. Je voudrais utiliser une userform pour vérifier le total de chaque facture.

Je procède comme suit:
1- saisie les données dans des textboxs
2- clic sur bouton valider ---> transfert les textboxs dans la listbox
et dans textbox5=somme les montants (index colonne 3 de la listbox)
3- clic sur bouton suivant vide les textbox sauf la 1ère (code)
et ainsi de suite.

4- clic sur bouton transfert pour écrire données sur la feuille et c'est là que j'ai un problème
j'ai remarqué l'inversion du mois et du jour.

une autre question: comment formater les données de la listbox par exemple pour les montants avec le signe €

en vous remerciant par avance.
 

Pièces jointes

Bonjour.
La ListBox restant reprise à la fin comme source de donnée, ce que personnellement je préfère éviter de faire :
VB:
Private Sub Bt_transfert_Click()
Dim T(), L&
With Me.ListBox1
   T = .List
   For L = 0 To UBound(T, 1)
      T(L, 1) = CDate(T(L, 1))
      T(L, 3) = CCur(T(L, 3))
      Next L
   Worksheets("Feuil1").Range("A" & dl).Resize(.ListCount, .ColumnCount) = T
   End With
End Sub
 
Bonjour Dranreb🙂,

Comme à l'accoutumé, efficace.
De mon côté, mes vieillissants neurones m'ont trouvés ce code
VB:
Private Sub Bt_transfert_Click()
  Dim x As Integer, Nb_L_ListBox As Integer
With Me.ListBox1
   With Worksheets("feuil1")
  For x = 1 To Me.ListBox1.ListCount
  .Cells(x + dl, 1) = Me.ListBox1.List(x - 1, 0)
  .Cells(x + dl, 2) = CDate(Me.ListBox1.List(x - 1, 1))
  .Cells(x + dl, 5) = Me.ListBox1.List(x - 1, 1)
  .Cells(x + dl, 3) = Me.ListBox1.List(x - 1, 2)
  .Cells(x + dl, 4) = Me.ListBox1.List(x - 1, 3)
  .Cells(x + dl, 4).NumberFormat = "$#,##0.00_);($#,##0.00)"

  Next x
  End With

  End With
End Sub
ça a l'air de donner un bon résultat, mais je n'ai pas encore effectué plusieurs tests pour en être sûr à 100%.

Je teste ton code et reviens aux nouvelles.

Merci beaucoup😉
 
Veille à ce que ce soit bien une virgule qui a été utilisée comme séparateur décimal et non un point.
Effectivement, Dranreb le séparateur est bien un point (j'utilise le clavier numérique). Que faire alors, vraiment embêtant ces histoires avec les dates et les valeurs numériques.
Merci beaucoup.

edit: merci Dranreb, je pense avoir trouvé comme ci-dessous, j'espère ne pas avoir de mauvaises surprises.
T(L, 3) = CCur(Replace(T(L, 3), ".", ","))
 
Dernière édition:
Bonjour Chris24🙂,

En fait, je me suis rendu compte tardivement.
cette ligne plante -----> T(L, 3) = CCur(Replace(T(L, 3), ".", ",")) 'incompatibilité de type
car quelques fois, je n'ai pas le montant mais je dois entrer quand même les données.
du coup quand il n'y a pas de montant le code plante.

Je teste quand même ton code pour la textbox.

Merci beaucoup.
 
- 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
16
Affichages
842
Réponses
4
Affichages
155
Réponses
25
Affichages
1 K
Réponses
13
Affichages
734
Retour