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.

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")
(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
'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
Est-ce que vous pouvez essayer nous aidez ?
Merci par avance