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 :

Tableau automatisé kilométrage


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut Tableau automatisé kilométrage
    Bonjour à tous,

    Je pense que beaucoup de monde connaisse le problème...

    Je souhaiterais créer un tableau automatisé pour le calcul des frais kilométrique que me devra mon patron!

    Pour cela je crée un tableau basic avec une colonne correspondant à la formule appliquée à mon nombre de kilomètre. Mon soucis réside dans le fait d'automatiser cette case.

    En faite un tableau pour obtenir le prix de revient est fixé. Dans la première colonne on y retrouve la puissance du véhicule et dans les 3 suivantes la formule à appliquer en fonction du nbre de km parcouru sur l'année.

    Quelqu'un aurait-il une idée sur comment s'y prendre? Peut on simplement créer une série de "si" ou créer un croisement de données entre la puissance du véhicule et le nbre de km pour obtenir la formule correspondant ou peut-on créer une macro qui en fonction du tableau choix formule transmette la bonne relation?

    Merci de votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Où récupères-tu ta grille Puissance / Kilomètres parcourus / Prix au km ?
    Elle t'est fournie par le fisc ? Peux-tu nous la reproduire ici ? Sans elle, il est difficile de te conseiller.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Voici le tableau contenant toutes les infos utiles

    Je sais pas pourquoi mais ca a foiré...
    Fichiers attachés Fichiers attachés

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok.
    Déjà, organise ton tableau différemment. Mon test fonctionne avec ça
    Nom : px km.JPG
Affichages : 459
Taille : 17,6 Ko
    Ensuite, tu peux utiliser cette syntaxe à adapter avec ton mode de saisie.
    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
    Sub test()
    Dim Pw As Single, km As Long
    Dim Col As Integer, Ligne As Long, Result As Double
     
        Pw = InputBox("saisir la puissance")
     
        Select Case Pw
            Case 3 'cv
                Ligne = 2
            Case 4 'cv
                Ligne = 3
            Case 5 'cv
                Ligne = 4
            'etc
                '...
            Case Else
                MsgBox "Puissance inexistante"
        End Select
     
        km = InputBox("Saisir le kilométrage")
     
        Select Case km
            Case Is < 5000
                Col = 2
                Result = Cells(Ligne, Col) * km
            Case Is > 5000 < 20000
                Col = 3
                Result = (Cells(Ligne, Col) * km) + Cells(Ligne, Col).Offset(0, 1)
            Case Is > 20000
                Col = 5
                Result = Cells(Ligne, Col) * km
            Case Else
                MsgBox "T'as tout faux : Puissance = " & Pw & " km = " & km
        End Select
        MsgBox Result
    End Sub
    Juste pour le principe, à adapter.
    Bonne journée

    NB - Si tu saisie 3cv au lieu de 3 tout court, remplace Case 3 par Case "3cv"

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Si tu fait une liste "validation de données" pour choisir la puissance, comment place tu ça dans le programme? Est-ce à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pw= Imputbox ("saisir la puissance")
    Qu'est ce que l'Imputbox au faite, j'ai pas encore lu le tuto decu?

    Ce tableau est le tableau pour prendre la formule qui convient mais ensuite le "routier" à un autre tableau ou il retranscrit ces km en ligne avec la destination, date... et c'est ce tableau qui est vraiment utile, celui là ne sert que de données...
    J'espère que tu me suit, merci de ton aide

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je te conseille l'utilisation d'un userform pour la saisie.
    Tu crées ta feuille de calculs qui contient le tableau que je t'ai joint en respectant le format (commençant en A1).
    Dans l'userform tu ajoutes (pour commencer) un combobox (ou une listbox) et un textbox + 1 bouton
    Tu renseignes ton combobox des différentes puissances possibles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Activate()
         ComboBox1.RowSource = "a2:A8"
    End Sub
    L'utilisateur saisit le kilométrage dans la textbox, et enfin, le bouton lance la macro test() avec les paramètres Puissance et kilométrage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    Test Combobox1.value, textbox1.value
    End Sub
    Sub test dont tu supprimes les deux lignes des inputbox dont tu n'as plus besoin, et que tu modifies ainsi
    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
    Sub test(Pw As Byte, km As Long)
    Dim Col As Integer, Ligne As Long, Result As Double
     
        Select Case Pw
            Case 3 'cv
                Ligne = 4
            Case 4 'cv
                Ligne = 5
            Case 5 'cv
                Ligne = 6
            Case 6 'cv
                Ligne = 7
            'etc
                '...
            Case Else
                MsgBox "Puissance inexistante"
        End Select
     
        Select Case km
            Case Is < 5000
                Col = 2
                Result = Cells(Ligne, Col) * km
            Case Is > 5000 < 20000
                Col = 3
                Result = (Cells(Ligne, Col) * km) + Cells(Ligne, Col).Offset(0, 1)
            Case Is > 20000
                Col = 5
                Result = Cells(Ligne, Col) * km
            Case Else
                MsgBox "T'as tout faux : Puissance = " & Pw & " km = " & km
        End Select
        Cells(LigneQueTuVeux, ColonneQueTuVeuxAussi) = Result
        'ou 
        MsgBox Result
        'ou
        'les deux ^^
    End Sub
    Maintenant, il te reste à savoir ce que tu veux faire du résultat qui s'affiche.

    Edit
    J'avais oublié l'essentiel dans le code (nom de la sub avec les paramètres) Je devais penser à autre chose
    Bref, du coup je te remets tout
    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Construire un tableau automatisé
    Par Elie G dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/06/2015, 11h06
  2. [XL-2007] VBA-excel tableau automatisé
    Par bird007 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/06/2010, 09h24
  3. Tableau croisé dynamique automatisé
    Par ZeitnotZatopek dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/08/2008, 11h48
  4. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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