Microsoft 365 Userform avec combobox

JBL07

XLDnaute Occasionnel
Bonjour à tous !

Je fais appel à nouveau à vos compétences..
Voici un classeur de suivi bancaire, épuré au max car l'original est plus complexe
J'ai souhaité insérer un userform pour faciliter la saisie des nouvelles écritures

Il y a donc un bouton/macro "Saisie" qui ouvre une nouvelle ligne de tableau vierge en Ligne 10, dans laquelle les infos saisis dans le Userform doivent s'implémenter
Et un bouton/macro " Chrono" qui après saisie retrie le tableau chronologiquement et remets en ordre la colonne Q qui m'indique le solde

Je rencontre 2 soucis :

- les 2 combo avec listes dépendantes ( Catégories dont dépend S/Catégorie ) n'affichent pas les listes ( qui se trouvent dans la feuille BD2 ), donc je ne peux pas saisir toutes mes infos
_ Si je saisi de nouvelles données en ligne 10 avec le Userform, la saisie générée ne s'inclue pas dans le tri "Chrono", et se place en haut du tableau, faussant tout

Pour finir, je souhaiterais que les 2 cellules débit / crédit affiche et valide des sommes directement dans le format monétaire

Voilà, ça fait beaucoup, mais je suis dessus depuis des heures sans parvenir à régler le tout... si qq se sent de coder ça pour moi, ce serait super
Merc par avance de vos réponses !
 

Pièces jointes

  • Comptes - 7.xlsm
    930.1 KB · Affichages: 64
Solution
re
bonjour
si tu réfléchi une seconde tu te rend compte qu'il y a ( entre autres) erreur dans le raisonnement
comment tu peux vouloir nourrir N et O alors que l'un est débit l'autre crédit
du fait dans ta saisie tu est obligé de mettre "0" dans l'un ou dans l'autre selon un achat ou une entrée:rolleyes:
je parle même pas du non contrôle de la validité de la date :rolleyes: et j'en passe et des meilleures ailleurs dans le code aussi

le raisonnement n'a rien a voir avec vba soit on fait les choses dans le bon sens soit on le fait pas dans le bon sens et là c'est le crach bien évidement
VB:
Private Sub CBValider_Click()
    If Not IsDate(TextBox4) Or Len(TextBox4) < 10 Then MsgBox "la date n'est pas valide": Exit Sub
    If MsgBox("La...

JBL07

XLDnaute Occasionnel
Ah oui, ça fonctionne !! Merci Chalet53 :)

Quand à mon histoire de tri, on dirait que, bien que le format dans les cellules du tableau soit bien en date et monétaire, les 2 données injectées via le userform ne sont pas correctes et créent le bug, et du coup ne sont pas inclus
 

CHALET53

XLDnaute Barbatruc
Essaie comme ça dans ton pgm de mise à jour

Private Sub CBValider_Click()

If MsgBox("La nouvelle saisie est-elle confirmée ?", vbYesNo, "demande confirmation de saise") = vbYes Then

Sheets("Ecritures").Select


Range("B10").Value = TextBox4
Range("E10").Value = CboComptes
Range("F10").Value = CboCatégories
Range("G10").Value = CboSousCat
Range("I10").Value = TextBox1
Range("L10").Value = CboModePaie
Range("N10").Value = Format(TextBox2, "0.00")
Range("O10").Value = Format(TextBox5, "0.00")


End If

Unload Me
FMSaisie.Show vbModeless

End Sub
 

JBL07

XLDnaute Occasionnel
J' ai carrément fait :
Range("N10").Value = Format(TextBox2, "0.00" & " " & "€")
Range("O10").Value = Format(TextBox5, "0.00" & " " & "€")
Et ça fonctionne nickel

Par contre pour la date, j'ai tenté sur le principe :

Range("B10").Value = Format(TextBox4, "DD/MM/YYYY")

Et ça ne marche pas - Mon format n'est pas ok ?
 

JBL07

XLDnaute Occasionnel
Ah bah je vais tester !
Il ne me reste plus qu'une chose à trouver, c'est appliquer le add in "Date Picker" directement dans la zone texte date du userform ( mais je ne sais pas si c'est faisable ), et faire que le curseur passe directement de champ en champ de saisie dans ce userform :)
Un grand merci en tout cas !
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 136
Membres
112 667
dernier inscrit
foyoman