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 :

VBA - Besoin d'aide pour terminer un projet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 41
    Par défaut VBA - Besoin d'aide pour terminer un projet
    Bonjour,

    Moi et un ami sommes actuellement en train de travailler sur Excel et VB pour essayer de faire un devis, dans un premier temps je vais vous exposer les codes actuels et ensuite je vous exposerai ce que nous cherchons à finir !

    Feuil1
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    Private Sub CommandButton1_Click()
    
    Dim x As Integer
    Dim f As String
    
    MsgBox (" Nous vous proposons divers prix en fonction de votre nombre d'invités " & Chr(13) & " Si votre nombre d'invités est inférieur à 50 le coût du repas par personne est de 20 euros. " & Chr(13) & " Si votre nombre d'invités est compris entre 50 et 100 le coût du repas par personne est de 15 euros" & Chr(13) & " Si votre nombre d'invités est compris entre 100 et 150 le coût du repas par personne est de 10 euros" & Chr(13) & " Si votre nombre d'invités est supérieur à 150 le coût du repas par personne est de 7 euros ")
    
    x = InputBox(" Entrez le nombre d'invités.")
    Cells(25, 4).Value = x
    
    
    If x < 50 Then
        r = x * 20
    End If
    If x < 100 Then
        r = x * 15
    End If
    If x < 150 Then
        r = x * 10
    End If
    If x > 150 Then
        r = x * 7
    End If
    Cells(27, 4).Value = r
    
    MsgBox ("Prix des alcools:" & Chr(13) & "1 verre par personne = 1 € par personne (tapez 1)" & Chr(13) & "2 verres par personne = 2 € par personne (tapez 2)" & Chr(13) & "3 verres par personne = 3 € par personne (tapez 3)" & Chr(13) & "Distribution d'alcool illimité = 5 € par personne (tapez 5)")
    
    A = InputBox("Choisissez la quantité d'alcool désirée." & Chr(13) & "Si aucun n'alcool n'est désirée tapez 0.")
    If A = 1 Then
        f = x * 1
    End If
    If A = 2 Then
        f = x * 2
    End If
    If A = 3 Then
        f = x * 3
    End If
    If A = 5 Then
        f = x * 5
    End If
    If A = 0 Then
        f = x * 0
    End If
    Cells(29, 4).Value = f
    
    p = InputBox("Desirez vous des pattiseries?")
    If p Then
        l = p * 0.25
    End If
    Cells(31, 4).Value = l
    
    MsgBox ("Choix retenus :" & A & Chr(13) & "alcools : " & Af & Chr(13) & "Pattiseries : " & l & Chr(13) & "Repas : " & r)
    
    coutrepas = r
    coutalcool = f
    coutpatisseries = l
    cout = (coutrepas + coutalcool + coutpatisseries)
    
    MsgBox ("Cout total : " & cout)
    
    Cells(35, 4).Value = cout
    
    Cells(44, 7).Value = cout
    
    End Sub
    
    Private Sub CommandButton2_Click()
    
    
    Dim x As Integer
    Dim y As Integer
    Dim f As Integer
    
    Dim A As String
    Dim B As String
    Dim C As String
    Dim D As String
    
    Dim H As String
    Dim S As String
    
    
    x = InputBox("Entrez le nombre d'invités pour votre évènement")
    Cells(25, 9).Value = x
    
    y = InputBox("Quel est le nombre d'invités adultes ?")
    Cells(26, 9).Value = y
    
    f = x - y
    Cells(27, 9).Value = f
    
    MsgBox ("Votre nombre d'invités adultes est donc de " & y & "." & " Votre nombre d'invités enfants est de " & f & ".")
    
    
    MsgBox ("Nous vous proposons diverses formules : " & Chr(13) & " La formule A comprend le service traiteur, la livraison, le service et le nettoyage." & Chr(13) & " La formule B comprend le service traiteur la livraison et le service." & Chr(13) & " La formule C comprend le service traiteur et la livraison." & Chr(13) & " La formule D comprend uniquement le service traiteur.")
    choix = ""
    While ((choix <> "A") And (choix <> "B") And (choix <> "C") And (choix <> "D"))
    choix = InputBox("quelle formule (A,B,C,D) choisissez-vous?")
    Wend
    Cells(31, 9).Value = choix
    
    traiteur = 0
    livraison = 0
    service = 0
    nettoyage = 0
    
    If (choix = "A") Then
    traiteur = 1
    livraison = 1
    service = 1
    nettoyage = 1
    End If
    
    If (choix = "B") Then
    traiteur = 1
    livraison = 1
    service = 1
    End If
    
    If (choix = "C") Then
    traiteur = 1
    livraison = 1
    End If
    
    If (choix = "D") Then
    traiteur = 1
    End If
    
    reduction = 0.1 * x
    Cells(29, 9).Value = 0.1 * x
    
    Menu = ""
    While ((Menu <> "S") And (Menu <> "H"))
    Menu = InputBox("Quel menu souhaitez-vous?('S' pour standard,'H' pour Haut de gamme)")
    Wend
    Cells(32, 9).Value = Menu
    
    Dessert = ""
    While ((Dessert <> "G") And (Dessert <> "P"))
    Dessert = InputBox("Quel dessert  souhaitez-vous? ('G' pour Gateau,'P' pour Pièce montée)")
    Wend
    Cells(33, 9).Value = Dessert
    
    If (Dessert = "G") Then
        coutdessert = 2 * x
    Else
        If x > 100 Then
            Piece = 2
        Else
            If x > 50 Then
                Piece = 3
            Else
                Piece = 4
            End If
        End If
        coutdessert = Piece * x
    End If
    
    
    
    MsgBox ("Choix retenus :" & Chr(13) & "Dessert Gateau / Piece montée : " & Dessert & Chr(13) & "Menu Standard / Haut de gamme : " & Menu)
    
    If (Menu = "H") Then
    couttraiteur = 7 * f + 10 * y
    Else
    couttraiteur = 7 * y + 5 * f
    End If
    couttraiteur = couttraiteur * traiteur
    coutlivraison = 50 * livraison
    coutnettoyage = 200 * nettoyage
    coutservice = ((Round(0.1 * x + 0.49999999) * 40) * service)
    cout = ((couttraiteur + coutlivraison + coutnettoyage + coutservice + coutdessert + coutmenu) * (1 - reduction / 100))
    
    MsgBox ("Cout total : " & cout)
    Cells(35, 9).Value = cout
    
    
    Cells(44, 7).Value = cout
    
    Call Module1
    End Sub

    Module1
    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
    Sub ExporterTableauVersWord1()
    
    Dim wrdApp As Word.Application
    Dim wrdDoc As Word.Document
    
    Range("C23:D35").Copy
    Set wrdApp = CreateObject("Word.Application")
    Set wrdDoc = wrdApp.Documents.Open("C:\devis.doc")
    wrdApp.Visible = True
    wrdApp.Selection.Paste
    wrdDoc.SaveAs ("C:\devis.doc")
    wrdDoc.Close
    wrdApp.Quit
    
    End Sub
    Voila voila, alors comme vous pouvez le voir j'ai mis en rouge là ou ca cloche ! Pour être plus précis dans Feuil1, je veux appeler mon module pour qu'il se lance une fois que l'on a finit de répondre au formulaire, pouvez vous m'aider sur la ligne à mettre pour pouvoir faire cela ?

    Et enfin, dans Module1, j'ai mis une ligne qui est sensé coller mon tableau sur une nouvelle page word qui est le récapitulatif du devis qui se remplit au fur et à mesure que l'on répond aux questions, pouvez-vous m'aider a savoir pourquoi cette ligne de code ne marche pas et par quoi pourrais-je la remplacer ?

    Cordialement !

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    je veux appeler mon module pour qu'il se lance une fois que l'on a finit de répondre au formulaire, pouvez vous m'aider sur la ligne à mettre pour pouvoir faire cela ?
    il suffit de mettre le nom de la macro que tu veux lancer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    '...
    '...
    MsgBox ("Cout total : " & cout)
    Cells(35, 9).Value = cout
     
     
    Cells(44, 7).Value = cout
     
    ExporterTableauVersWord1
    End Sub
    Et enfin, dans Module1, j'ai mis une ligne qui est sensé coller mon tableau sur une nouvelle page word qui est le récapitulatif du devis qui se remplit au fur et à mesure que l'on répond aux questions, pouvez-vous m'aider a savoir pourquoi cette ligne de code ne marche pas et par quoi pourrais-je la remplacer ?
    Cette ligne de code fonctionne, quel est le problème ? Un message d'erreur ? Ca ne colle pas au bon endroit ?

    Par contre j'ajouterais une ligne de code avant de coller afin de coller les données en fin de document
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wrdApp.Selection.EndKey Unit:=wdStory
    wrdApp.Selection.Paste
    Cette ligne de code wrdDoc.SaveAs ("C:\devis.doc") est inutile, vu que tu sauvegardes le document sous son nom d'origine, tu peux faire wrdDoc.Close True

Discussions similaires

  1. VBA: besoin d'aide pour macro boursière
    Par DonaldTron dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/11/2007, 15h52
  2. Besoin d'aide pour un futur projet
    Par bogoss91 dans le forum Développement 2D, 3D et Jeux
    Réponses: 19
    Dernier message: 07/09/2007, 12h31
  3. Je besoin d'aide pour terminer mon code
    Par Paulinho dans le forum C++
    Réponses: 7
    Dernier message: 06/11/2005, 23h30
  4. Besoin d'aide pour trouver un projet
    Par ptitJP dans le forum C++
    Réponses: 22
    Dernier message: 26/02/2005, 23h14

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