Bonjour,
je suis en train de réaliser avec une amie, un projet sur la programmation avec VBA sur excel.
Nous souhaiterions faire un petit gestionnaire de compte.
Nous avons un problème pour travailler sur une seule feuille.
En effet, par exemple, lorsqu'on veut que le loyer soit retiré seulement sur le mois de février, celui-ci est aussi retiré sur le mois de janvier, sachant que chacunes de nos feuilles sont nommées par la programmation par les mois de l'année. Nous avons réussi à faire en sorte qu'en fonction de la donnée entrée dans la boîte de dialogue initiale, celle-ci soit mise sur la page du mois concernée.
Cependant, maintenant, nous avons fait des classes des débits et crédits, et nous voudrions savoir s'il existe un moyen de programmer assez simplement pour exécuter une partie du programme seulement sur une seule feuille active.
Voici, notre partie de programmation qui est intéressant de connaitre.
(etc pour les autres mois)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 '1. exploitation de la donnée "date" '1.1 déclaration des variables et des tableaux Dim datedonnee As String Dim datechiffree As Integer Dim tabdate() As String Dim equivalentmois() As Variant '1.2 Séparation de la chaine de caractères '1.2.1 Récupérer les données datedonnee = TextBox1.Text '1.2.3 Separer les données tabdate() = Split(datedonnee, "/") '1.2.4 convertir la donnée mois texte en nombre datechiffree = Val(tabdate(1)) '1.2.5 transformer la donnée chiffrée en mois (texte) equivalentmois() = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre") datedonnee = equivalentmois(datechiffree - 1) 'conditions d'affectations dans la feuille du mois If datechiffree = 1 Then Worksheets("Janvier").Range("A3:E3").Insert (xlShiftDown) Worksheets("données brutes").Range("A2:E2").Copy Worksheets("données brutes").Paste Destination:=Worksheets("janvier").Range("A3:E3") End If If datechiffree = 2 Then Worksheets("Fevrier").Range("A3:E3").Insert (xlShiftDown) Worksheets("données brutes").Range("A2:E2").Copy Worksheets("données brutes").Paste Destination:=Worksheets("Fevrier").Range("A3:E3")
Est-ce que vous pouvez essayer nous aidez ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 'Répartir selon la classe pour chaque mois Worksheet(datechiffree).Calculate With ActiveSheet If ComboBox1.Value = "Loyer" Then Range("I2") = Range("I2").Value + Range("E3").Value - Range("D3").Value ElseIf ComboBox1.Value = "Salaire" Then Range("J2") = Range("J2").Value + Range("E3").Value - Range("D3").Value ElseIf ComboBox1.Value = "Courses" Then Range("K2") = Range("K2").Value + Range("E3").Value - Range("D3").Value ElseIf ComboBox1.Value = "Assurance" Then Range("L2") = Range("L2").Value + Range("E3").Value - Range("D3").Value ElseIf ComboBox1.Value = "Loisirs" Then Range("M2") = Range("M2").Value + Range("E3").Value - Range("D3").Value ElseIf ComboBox1.Value = "Vêtements" Then Range("N2") = Range("N2").Value + Range("E3").Value - Range("D3").Value ElseIf ComboBox1.Value = "Essence" Then Range("O2") = Range("O2").Value + Range("E3").Value - Range("D3").Value ElseIf ComboBox1.Value = "Habitat" Then Range("P2") = Range("P2").Value + Range("E3").Value - Range("D3").Value ElseIf ComboBox1.Value = "Voiture" Then Range("Q2") = Range("Q2").Value + Range("E3").Value - Range("D3").Value ElseIf ComboBox1.Value = "Autre" Then Range("R2") = Range("R2").Value + Range("E3").Value - Range("D3").Value End If End With
Merci par avance![]()
Partager