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 :

Calcul à automatiser


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut Calcul à automatiser
    Bonjour,

    Je bute devant un problème:

    J'ai un Chiffre d'affaire de 150 000€
    réalisé entre 12/01/2008 et 28/04/2008

    En fait j'arrive pas à répartir ce montant proportionnellement au nombre de jour de chaque mois de cette période.

    c à d :

    10 jours en janvier ------> = 150 000 * 10 / nbre de jours de la période (98 jours)
    29 j en février
    31 jours en Mars
    28 jours en Avril


    D'avance merci

  2. #2
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    je ne suis pas sûr d'avoir bien compris mais pourquoi ne pas faire une macro dans laquelle tu demandes

    le nombre de mois ainsi que le nombre de jours compris dans chaque mois.

    ensuite tu as tous les paramètres et tu n'as plus qu'à faire les opérations

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Voilà qui me plait (l'acrobatie est ma tasse de thé) :

    Regarde ce que fait ceci, déjà (on perfectionnera ensuite)

    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
    Private Sub Command1_Click()
     Dim mesmois()
     datedeb = "12/01/2008"
     datefin = "28/04/2008"
     nbmois = Month(datefin) - Month(datedeb)
     ReDim mesmois(nbmois)
     For i = 0 To nbmois
       If i = 0 Then
         mesmois(i) = Day(DateSerial(Year(datedeb), Month(datedeb) + i + 1, 0)) - Day(datedeb)
       ElseIf i < nbmois Then
         mesmois(i) = Day(DateSerial(Year(datedeb), Month(datedeb) + i + 1, 1) - 1)
       Else
         mesmois(i) = Day(datefin)
       End If
       MsgBox "mois " & i + 1 & "===>>>" & mesmois(i) & " jours"
     Next
    End Sub

  4. #4
    Membre expérimenté
    Inscrit en
    Février 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 208
    Par défaut
    bonjour

    voici ce que j'ai concocté :
    http://cjoint.com/?ekohSyPSXe
    le code mérite sûrement d'être amélioré mais ça fonctionne (même si la durée s'étend sur plusieurs années).
    à plus

  5. #5
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    sinon c'est jouable en une formule, avec les mois en colonne :
    formule rentrée en B7 puis recopiée vers le bas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX(MIN(A8-A7;MIN(A8;DatFin)-MAX(A7;DatDeb));0)/(DatFin-DatDeb)*Montant
    A7 : Mois courant
    A8 : mois suivant

  6. #6
    Membre expérimenté
    Inscrit en
    Février 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 208
    Par défaut
    bonjour

    examine le fichier que je t'ai envoyé tout à l'heure et donne ton avis

    à plus

  7. #7
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    Voilà qui me plait (l'acrobatie est ma tasse de thé) :

    Regarde ce que fait ceci, déjà (on perfectionnera ensuite)

    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
    Private Sub Command1_Click()
     Dim mesmois()
     datedeb = "12/01/2008"
     datefin = "28/04/2008"
     nbmois = Month(datefin) - Month(datedeb)
     ReDim mesmois(nbmois)
     For i = 0 To nbmois
       If i = 0 Then
         mesmois(i) = Day(DateSerial(Year(datedeb), Month(datedeb) + i + 1, 0)) - Day(datedeb)
       ElseIf i < nbmois Then
         mesmois(i) = Day(DateSerial(Year(datedeb), Month(datedeb) + i + 1, 1) - 1)
       Else
         mesmois(i) = Day(datefin)
       End If
       MsgBox "mois " & i + 1 & "===>>>" & mesmois(i) & " jours"
     Next
    End Sub
    Impecc


    Maintenant comment transposer ton tableau mesmois() en ligne

    c à d

    si j"ai

    1
    2
    3
    4


    je veux bien 1 2 3 4

  8. #8
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par casavba Voir le message
    Impecc


    Maintenant comment transposer ton tableau mesmois() en ligne

    c à d

    si j"ai

    1
    2
    3
    4


    je veux bien 1 2 3 4
    Alors là : ce n'est plus ma tasse de thé (ce n'est plus de l'acrobatie, mais juste du VBA élémentaire) et alors :
    ou tu t'y mets (et ce sera parfait)
    ou tu attends le reste de quelqu'un d'autre

  9. #9
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Ayayay

    la macro ne fonctionne pas si j'ai datefin et date début dans le même mois
    alle calcul tjs par rapport à la fin du mois

    ex

    16/01/2008
    25/01/2008

    elle me renvoie 19

    Or c'est faux

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

Discussions similaires

  1. [AC-2003] Automatiser le calcul de mon solde
    Par RoZyk dans le forum VBA Access
    Réponses: 3
    Dernier message: 24/02/2010, 13h48
  2. Excel : Automatisation des formules de calcul
    Par CRIS2010 dans le forum Excel
    Réponses: 2
    Dernier message: 21/02/2010, 15h13
  3. Automatiser le calcul de "Code Metrics"
    Par Bluedeep dans le forum Visual Studio
    Réponses: 0
    Dernier message: 26/05/2009, 11h58
  4. Pb Automatisation calcul "function" vba
    Par alexbabey dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/01/2008, 10h28
  5. Quel langage pour automatiser des calculs acoustiques ?
    Par michael.mytnik dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 04/01/2007, 18h51

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