Bonjour
J'ai un souci de date je vous expose mon probléme
Par l'intermédiaire d'un formulaire j'alimente un tableau qui contient cinq colonnes
Colonne A contenant une date
Colonne B contenant du texte
colonne C contenant une somme
colonne D contenant le mois par rapport à la colonne A (avec cette formule =TEXTE([@DATE];"mmmm")
colonne E. contenant l'année par nrapport à la colonne A ( avec cette formule =ANNEE([@DATE])
J'en viens à mon souci, lorsque je saisi une date (23/01/2023) sur mon formulaire et que valide cette date se positionne à droit de la cellule et dans les colonne D j'ai la même
la même date (23/01/2023) et dans la colonne E j'ai #VALEUR
Peut on me venir en aide pour régler ce souci et le pourquoi de la chose
Merci
@micpid62 : normal que tes tcd ne soient pas mis à jour. Tu transfers du texte (TextBox3) en colonne C.
Il faut la formater en double ou currency. Cdbl(Textbox3) fonctionne
Pour rafraichir les tcd de la feuille, dans le module de code de la feuille concernée, ajoute ce code
VB:
Private Sub Worksheet_Activate()
ActiveSheet.PivotTables("Tableau croisé recette").PivotCache.Refresh
End Sub
Tu n'as pas compris ou je me suis mal exprimé, concerne le code de bouton "Ajouter" des 2 formulaires Recette et Depense
Pour Recette, tu fais appel à la fonction ci-dessous
VB:
'Ajouter
Function copy_from_form()
Dim lastrow As Long
lastrow = ActiveWorkbook.Sheets("Recette").Range("a1000000").End(xlUp).Row
lastrow =...
Voir PJ.
J'ai une feuille par compte, une colonne pour Débit, et une pour Crédit.
( vous remarquerez que les débits sont notés en négatifs. Ce qui est bizarre car un débit avec une valeur négative c'est un crédit. Surement une norme bancaire.
Une feuille fait le résumé de toutes les autres feuilles.
@micpid62: Je viens de m'apercevoir que tu as pointé ton post comme résolu.
Sinon, je l'ai fait je le poste.
Je me suis permis d'ajouter une listbox pour l'entete de titres pour la liste des données sur les 2 formulaires.
Je n'ai touché qu'aux 2 fonctions des 2 formulaires portant ce nom: Function show_data_in_listbox()
Merci CP4.
C'est impressionnat. J'ai ouvert le "vrai" fichier de la banque, je l'ai renommé, modifié, enregistré et livré.
Et bien même moi je ne peux pas l'ouvrir. Il est verrouillé, bloqué. Et aucun de mes mots de passe ne marche.
Alors que j'ai refait les mêmes modifs et ça marche. Ils maitrise XL.
@micpid62: Je viens de m'apercevoir que tu as pointé ton post comme résolu.
Sinon, je l'ai fait je le poste.
Je me suis permis d'ajouter une listbox pour l'entete de titres pour la liste des données sur les 2 formulaires.
Je n'ai touché qu'aux 2 fonctions des 2 formulaires portant ce nom: Function show_data_in_listbox()
@micpid62: Je viens de m'apercevoir que tu as pointé ton post comme résolu.
Sinon, je l'ai fait je le poste.
Je me suis permis d'ajouter une listbox pour l'entete de titres pour la liste des données sur les 2 formulaires.
Je n'ai touché qu'aux 2 fonctions des 2 formulaires portant ce nom: Function show_data_in_listbox()
Merci , mais les tcd ne fonctionnement pas, je suis obligé de ressaisir à la main dans les tableau recette et dépense pour avoir un résultat dans les tcd
Merci , mais les tcd ne fonctionnement pas, je suis obligé de ressaisir à la main dans les tableau recette et dépense pour avoir un résultat dans les tcd
@micpid62 : normal que tes tcd ne soient pas mis à jour. Tu transfers du texte (TextBox3) en colonne C.
Il faut la formater en double ou currency. Cdbl(Textbox3) fonctionne
Pour rafraichir les tcd de la feuille, dans le module de code de la feuille concernée, ajoute ce code
VB:
Private Sub Worksheet_Activate()
ActiveSheet.PivotTables("Tableau croisé recette").PivotCache.Refresh
End Sub
Tu n'as pas compris ou je me suis mal exprimé, concerne le code de bouton "Ajouter" des 2 formulaires Recette et Depense
Pour Recette, tu fais appel à la fonction ci-dessous
VB:
'Ajouter
Function copy_from_form()
Dim lastrow As Long
lastrow = ActiveWorkbook.Sheets("Recette").Range("a1000000").End(xlUp).Row
lastrow = lastrow + 1
With ActiveWorkbook.Sheets("Recette")
.Range("a" & lastrow).Value = CDate(TextBox1.Value)
.Range("b" & lastrow).Value = TextBox2.Value
.Range("c" & lastrow).Value = CDbl(TextBox3.Value)
End With
End Function
Et pour Depense
Code:
'Procedure pour ajouter un nouvel enregistrement
Private Sub BtnAjouter_Click()
Sheets("depense").Activate
Range("A1").Select
Selection.End(xlDown).Select 'on se positionne sur la derniere ligne non vide
Selection.Offset(1, 0).Select 'on se décale d'une ligne vers le bas
ActiveCell = CDate(TextBox1.Value)
ActiveCell.Offset(0, 1).Value = TextBox2
ActiveCell.Offset(0, 2).Value = TextBox3 'ici mettre Cdbl
Call reset_all_controls
MsgBox "Vos enregistrement a bien été éffectué", vbOKOnly + vbInformation, "CONFIRMATION3"
End Sub
Select et Selection sont à proscrire du code car ralentissent l'execution.
Pourquoi 2 méthodes différentes.
@micpid62 : normal que tes tcd ne soient pas mis à jour. Tu transfers du texte (TextBox3) en colonne C.
Il faut la formater en double ou currency. Cdbl(Textbox3) fonctionne
Pour rafraichir les tcd de la feuille, dans le module de code de la feuille concernée, ajoute ce code
VB:
Private Sub Worksheet_Activate()
ActiveSheet.PivotTables("Tableau croisé recette").PivotCache.Refresh
End Sub
Tu n'as pas compris ou je me suis mal exprimé, concerne le code de bouton "Ajouter" des 2 formulaires Recette et Depense
Pour Recette, tu fais appel à la fonction ci-dessous
VB:
'Ajouter
Function copy_from_form()
Dim lastrow As Long
lastrow = ActiveWorkbook.Sheets("Recette").Range("a1000000").End(xlUp).Row
lastrow = lastrow + 1
With ActiveWorkbook.Sheets("Recette")
.Range("a" & lastrow).Value = CDate(TextBox1.Value)
.Range("b" & lastrow).Value = TextBox2.Value
.Range("c" & lastrow).Value = CDbl(TextBox3.Value)
End With
End Function
Et pour Depense
Code:
'Procedure pour ajouter un nouvel enregistrement
Private Sub BtnAjouter_Click()
Sheets("depense").Activate
Range("A1").Select
Selection.End(xlDown).Select 'on se positionne sur la derniere ligne non vide
Selection.Offset(1, 0).Select 'on se décale d'une ligne vers le bas
ActiveCell = CDate(TextBox1.Value)
ActiveCell.Offset(0, 1).Value = TextBox2
ActiveCell.Offset(0, 2).Value = TextBox3 'ici mettre Cdbl
Call reset_all_controls
MsgBox "Vos enregistrement a bien été éffectué", vbOKOnly + vbInformation, "CONFIRMATION3"
End Sub
Select et Selection sont à proscrire du code car ralentissent l'execution.
Pourquoi 2 méthodes différentes.