Nous nous réalisons un projet de créer un logiciel de gestion de compte via VBA.
Nous souhaiterions que la date que mise dans une texte box détermine la feuille active nous avons codé cela mais ca ne marche pas. Est ce que quelqu un pourrait nous aider?
'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)
Sheet(datechiffree).Calculate
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
A voir également:
Utiliser une textbox pour déterminer la feuille active
Et donc, nous devons deviner :
- l'effet recherché
- la ligne en défaut
- le message d'erreur
Le tout sans indentation ni coloration de code (balises de l'éditeur)
jordane45
Messages postés38111Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 mars 2024344 4 janv. 2013 à 01:29
Bonjour,
vous marquez :
Nous souhaiterions que la date que mise dans une texte box détermine la feuille active
- A quelle moment dans votre code faites vous référence aux feuilles à rendre active ?
- Comment, en fonction de la date saisie dans la textbox, faites vous pour déterminer quelle doit être la feuille à selectionner ?
Sinon, en gros, vous devriez avoir quelque chose du genre :
' SI condition.. alors j'active la feuille...
If TextBox1.Text = "UNE_DATE" then Sheets("nom_de_la_feuille").activate
Bref, utilisation de tests conditionnels et des objets "feuilles".
Sinon, lors de vos prochains messages, merci d'utiliser la coloration syntaxique ( balise de code qui se trouve dans la barre des menus, troisieme icone en partant de la droite).
Faites aussi attention à la rubrique choisie dans le forum.. votre question concerne du VBA pas du VB2005 !!
Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
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)
par quelque chose d'un peu plus compact:
Private Sub CommandButton1_Click()
mois
End Sub
sub mois()
Dim ladate As Date
ladate = CDate(TextBox1.Value)
Dim lemois As Integer
lemois = Month(ladate)
Range("a1").Value = MonthName(lemois)
sheets(MonthName(lemois)).activate
End Sub
Et puis, pour sélectionner ou désigner une feuille particulière, il faut utiliser la collection Sheets() et non l'objet sheet. Donc, je pense que l'instruction suivante va faire planter le programme: