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

VBA Word Discussion :

Insérer du calcul dans un document Word [WD-2007]


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut Insérer du calcul dans un document Word
    Bonjour à tous,

    Dans un tableau, qui contient N° d’articles, désignation, prix unitaire, quantité, total par article, j’aimerais intégrer le calcul du total par article = prix unitaire * quantité.

    A la fin du tableau, j’aurais besoin de cumuler tout les totaux déjà calculés.

    Une approche ?

    Merci d’avance.

  2. #2
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut Voir sujet
    Bonjour,

    Voilà un essai. Il faut placer le curseur dans le tableau et il calcule tous les sous-totaux et le total quel que soit le nombre de lignes.


    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
    Sub calcul()
     
    Dim Lig As Byte
    Dim Col As Byte
    Dim PU As Long
    Dim Qu As Long
    Dim Stot As Long
    Dim Tot As Long
     
    ' Nblignes et Nbcolonnes
        Lig = ActiveDocument.Tables(1).Rows.Count
        Col = ActiveDocument.Tables(1).Columns.Count
     
    For i = 2 To Lig - 1
    ' récupération du Prix Unitaire
        PU = NetText(ActiveDocument.Tables(1).Cell(i, 3).Range.Text)
    ' récupération de la Quantité
        Qu = NetText(ActiveDocument.Tables(1).Cell(i, 4).Range.Text)
    ' Stot = sous total de la ligne
        Stot = PU * Qu
    ' calcul au fur et à mesure du Total
        Tot = Tot + Stot
    ' insertion du sous total
        ActiveDocument.Tables(1).Cell(i, 5).Range.Text = Stot
    Next i
     
    ' insertion du Total
    ActiveDocument.Tables(1).Cell(Lig, Col).Range.Text = Tot
     
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Function NetText(stTemp As String) As String
    ' voir très bon document (Débutez en VBA Word) par Olivier Lebeau
    NetText = Left(stTemp, Len(stTemp) - 2)
    End Function

  3. #3
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut
    Bonsoir QuestVBA,

    Merci de m'avoir répondu.

    J'ai essayé d'appliquer le code proposé, mais rien ne se passe

    En PJ l'exemple.

    Merci.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Par défaut
    Bonjour,

    Sans passer par du vba, tu peux directement insérer un champ quifait le calcul tel que avec C qui désigne la 3èmè colonne et 2 la deuxième ligne du tableau comme dans Excel.

  5. #5
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut
    Bonsoir carden752,

    Un exemple, parce que je l'ai utilisé sans résultat !

    Merci.

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Les {} données par carden ne sont pas de simples crochets mais des balises de champ.
    On les obtiens en utilisant la combinaison de touches Ctrl + F9
    Dans ces {}, on insère l'opération souhaitée.

    http://heureuxoli.developpez.com/office/word/champs/

    Et pour les opérations : http://heureuxoli.developpez.com/off.../champs/#LIV-C
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

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

Discussions similaires

  1. Insérer du RTF dans un document Word en VB.Net
    Par devuranie dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/01/2011, 22h50
  2. insérer une image dans un document word
    Par jihad dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/01/2011, 10h06
  3. Insérer un Objet dans un document Word
    Par benstile dans le forum VBScript
    Réponses: 5
    Dernier message: 14/09/2010, 12h52
  4. insérer plusieurs images dans une document word
    Par Montor dans le forum Langage
    Réponses: 1
    Dernier message: 09/12/2009, 13h14
  5. Réponses: 5
    Dernier message: 27/09/2005, 09h18

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