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

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

  • Listbox.xlsm
    28.4 KB · Affichages: 34

Dranreb

XLDnaute Barbatruc
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
 

cathodique

XLDnaute Barbatruc
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;)
 

cathodique

XLDnaute Barbatruc
Voilà, je suis de retour aux nouvelles.

Incompatibilité de type si le nombre est décimal. Par contre, si c'est un entier le code ne plante pas.

sur cette ligne de code
T(L, 3) = CCur(T(L, 3))
 
Dernière édition:

cathodique

XLDnaute Barbatruc
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:

cathodique

XLDnaute Barbatruc
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.
 

Discussions similaires

Réponses
25
Affichages
603
Réponses
8
Affichages
299

Statistiques des forums

Discussions
311 721
Messages
2 081 927
Membres
101 842
dernier inscrit
seb0390