IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Développer en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Par défaut Développer en VBA
    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

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Par défaut
    Bienvenue miss3514,

    Comme le dit Bluedeep un peu rudement (il faut l'excuser, ça doit arriver trop souvent à son goût ), tu n'as pas posté sur le bon forum.
    Il faudrait reposer ta question sur le forum VBA Excel.


    Ah oui, il faudrait aussi poster ton code en utilisant la balise code.

    Sinon pour essayer de répondre à la question, ne serait-ce pas le With ActiveSheet qui pose problème, à remplacer par With Worksheet(datechiffree).

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    With permet d'appliquer une série d'instructions à la feuille désignée par la variable datedonné.
    Pour cela, il faut que les instructions concernées soient précédées par un point.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    '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
    Dim Col As Byte
     
    '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)
     
    'Affectations dans la feuille du mois
    With Worksheets(datedonnee)
        Worksheets("données brutes").Range("A2:E2").Copy
        .Range("A3:E3").Insert Shift:=xlDown
        Select Case ComboBox1.Value
        Case "Loyer": Col = 9
        Case "Salaire": Col = 10
        Case "Courses": Col = 11
        Case "Assurance": Col = 12
        Case "Loisirs": Col = 13
        Case "Vêtements": Col = 14
        Case "Essence": Col = 15
        Case "Habitat": Col = 16
        Case "Voiture": Col = 17
        Case "Autre": Col = 18
        Case Else: Exit Sub
        End Select
        .Cells(2, Col) = .Cells(2, Col) + .[E3] - .[D3]
    End With
    Cordialement.

Discussions similaires

  1. [Mission/Télétravail] Développements Excel VBA
    Par joss56 dans le forum Demandes
    Réponses: 0
    Dernier message: 30/03/2013, 17h33
  2. [Bénévole] Développements Excel VBA/PALO
    Par joss56 dans le forum Autres
    Réponses: 0
    Dernier message: 26/02/2012, 09h46
  3. [VBA] Utilitaires de développement.
    Par JOHN14 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/09/2007, 13h12
  4. Réponses: 1
    Dernier message: 28/12/2006, 06h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo