Microsoft 365 Code VBA pour un Formulaire

Philippe17

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous,

Je voudrais de l'aide svp,
j'ai créé un formulaire pour créer des lignes automatiquement dans mon fichier « Journal », pour la saisie des opérations, j'ai trois TextBox ! le premier « Date « le second » Libellé « le troisième “Montant”, je voudrais obliger et forcer la Date en Date et le Montant en euro avec décimal, et automatisé, la sortie correctement pour s'inscrire dans ma feuille Journal ! pouvez-vous m'aider ? Merci pour vos réponses

Philippe 😇
 

Pièces jointes

  • Test5.xlsm
    25 KB · Affichages: 10

Philippe17

XLDnaute Occasionnel
Supporter XLD
Bonsoir fanfan38, merci pour votre accueil,
Super pour le code qui fonctionne à merveille, je détaillerai pour bien comprendre, je voudrais savoir s'il est possible de rentrer une date style « 080324 » et qu’elle ressorte « 08/03/2024 » automatiquement dans le Journal ?
Merci pour votre aide

Philippe 😇
 

Philippe17

XLDnaute Occasionnel
Supporter XLD
Bonjour François,
Merci pour ton aide, précieuse, c'est génial et j'apprends beaucoup avec ton aide, j'aurais encore une question, comment obliger à remplir tout le formulaire quand on appuie sur enregistrer ? voir le rendre grisonnant lorsque tout n'est pas rempli ?
Philippe 😇
 

patricktoulon

XLDnaute Barbatruc
Bonjour
1° apprenez "a travailler avec des tableaux structurés
2° oubliez les unload et reshow (fait plutôt un nettoyage des textboxs)
3° le calendrier s'affiche une 2d fois quand je selection un jour pourquoi?
perso je sais pourquoi mais vous le savez vous ?
VB:
Private Sub btnEnregistrement_Click()
  Dim criter As Boolean
  criter = txtDate <> "" And txtLibellé <> "" And txtMontant <> ""
  If Not criter Then MsgBox "il faut remplir les 3 inputs Merci": Exit Sub
 
  If Not IsDate(Me.txtDate) Then MsgBox ("Veuillez saisir une date"): Exit Sub
  If Not IsNumeric(Me.txtMontant) Then MsgBox ("Le montant doit être un chiffre"): Exit Sub
 
  With Range("T_journal").ListObject.ListRows.Add.Range
  .Cells(1) = CDate(Me.txtDate.Value)
  .Cells(2) = Me.txtLibellé.Value
  .Cells(3) = CDbl(Me.txtMontant.Value)
  End With
 
  txtDate = "": txtLibellé = "": txtMontant = ""
End Sub
Bonne journée ;)
 

Philippe17

XLDnaute Occasionnel
Supporter XLD
Bonjour Patrick,
Merci pour votre aide et vos commentaires, pour le travail des tableaux structuré, je suis travail dessus, mais pas sur les fichiers que l'on envoie rectifier, mais je vais m'y pencher un peu plus et voir comment il faudrait exactement faire, je prends note de vote seconde remarque. Je vais y regarder un peu plus, pour troisième, je ne sais pas ! j'ai travail depuis des années sur Excel au travail néanmoins sur du Basic, aujourd'hui en retraite. Je voudrais réellement me développer un plus, car un peu novice dans du BVA,
Tout le long de ma carrière, j'ai souvent appris des formations et des critiques (quand elle reste respectueuse lol ;)), encore merci de votre réponse et je regarde votre code et je le détaille.
Philippe😇
 

patricktoulon

XLDnaute Barbatruc
re
et oui depuis 2007 les tableaux structurés ont fait leur apparition
tout ce qui est rows.count , .end(xlargument) et touicointi tu oublie
sauf dans des cas particulier
tu veux ajouter une ligne

VB:
with sheets("toto").range("montableau").listrows.add.range
'ici on est sur un range (la ligne complète que l'on a ajouté
'donc
 .cells(1)= blablabla
.cells(2)= machin
etc....

end with
reconnais que c'est plus simple non ?
 

Philippe17

XLDnaute Occasionnel
Supporter XLD
re, Merci Patrick pour les informations, entre toi et François, je commence à apprendre, pour infos, je réalise un budget Excel avec mes exigences.
Bonne journée et bon weekend à vous deux,

Philippe 😇
re
et oui depuis 2007 les tableaux structurés ont fait leur apparition
tout ce qui est rows.count , .end(xlargument) et touicointi tu oublie
sauf dans des cas particulier
tu veux ajouter une ligne

VB:
with sheets("toto").range("montableau").listrows.add.range
'ici on est sur un range (la ligne complète que l'on a ajouté
'donc
 .cells(1)= blablabla
.cells(2)= machin
etc....

end with
reconnais que c'est plus simple non ?
oui, en effet, merci ;)
 

Philippe17

XLDnaute Occasionnel
Supporter XLD
Encore moi 😇 avec une autre question
J'ai déjà créé des listes déroulantes avec des sous Catégories sans code BVA, mais là avec Userform ? J'ai vu pour zone de liste modifiable, mais pour récupérer les sous-catégories, je peux faire comment ?
Merci pour vos réponses,

Philippe😇
 

Pièces jointes

  • Capture d'écran 2024-03-09 143831.png
    Capture d'écran 2024-03-09 143831.png
    51.9 KB · Affichages: 11
Dernière édition:

fanfan38

XLDnaute Barbatruc
Nouvelle question=nouveau post mais pas nouveau site...
Une question par site....
Un fichier est TOUJOURS le bienvenu
Il te faut une colonne categorie et ddes colonnes pour les sous catégories...

A+ François
 

Pièces jointes

  • classeur1.xlsm
    11.6 KB · Affichages: 4

fanfan38

XLDnaute Barbatruc
Je vois surtout que tu n'as pas tenu compte des post précédent
(pas de calendrier, non utilisation des tableaux structurés)....
Ci joint ma solution

A+ François
Ps Patrick j'ai voulu utiliser ton idee...
with sheets("toto").range("montableau").listrows.add.range
mais erreur....???
 

Pièces jointes

  • Test8.xlsm
    29.2 KB · Affichages: 10

Philippe17

XLDnaute Occasionnel
Supporter XLD
Merci François,
c'est exactement ce que je voulais , bien sûr que j'ai tenu compte des postes précédent. Je t'ai donné un vieux fichier, car je recopie toutes les aides sur mon Fichier originel, je recopie tout pour comprendre et apprendre ce que l'on me transmet ! si tu le veux, je t'envoie mon fichier fini avec les modifs d'aujourd'hui.

Philippe 😇
 

Discussions similaires

Réponses
7
Affichages
140

Statistiques des forums

Discussions
312 817
Messages
2 092 366
Membres
105 379
dernier inscrit
alboub