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 :

Sommeprod avec VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 22
    Points
    22
    Par défaut Sommeprod avec VBA
    Bonjours

    Je suis bloqué, je cherche quelqu'un pour m'aider a faire un code VBA qui me cherche dans un tableau le total des payés par client.
    C'est a dire lorsque je sélectionne un client par la zone de texte déroulante "Client", le code m'affiche le résultat dans la zone de texte "Payé"

    merci
    Images attachées Images attachées  

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    et il ressemble à quoi ton code actuellement ?

    je te conseille de plutôt travailler avec une liste de validation située dans une cellule, plutôt qu'un contrôle Combobox, pas très pratique à gérer.
    de même, la zone de résultat, pourquoi un contrôle plutôt qu'une cellule, tu vas te compliquer la vie pour pas grand chose


    voici un sujet où on abordait cette formule en VBA : http://www.developpez.net/forums/d15...t/#post8542764

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    Merci de votre réponse rapide. Réellement les contrôles sont dans un formulaire vba. Si sur une feuille excel je peux utiliser la fonction sommeprod qui fait l affaire
    Merci

  4. #4
    Membre habitué
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Points : 172
    Points
    172
    Par défaut
    Tu peux utiliser un dictionnaire au lieu d'une formule.

    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
     
    Option Explicit
    Dim d As Object
     
    Private Sub ComboBox1_Change()
    If ComboBox1.Text <> "" Then
    TextBox1.Value = d(ComboBox1.Text)
    Else: TextBox1.Value = ""
    End If
    End Sub
     
    Private Sub UserForm_Activate()
    Dim i As Integer
    Set d = CreateObject("scripting.dictionary")
    With Sheets("Feuil1")
        i = 2
        Do While .Cells(i, 1).Value <> ""
            d(.Cells(i, 1).Value) = d(.Cells(i, 1).Value) + .Cells(i, 2).Value
            i = i + 1
        Loop
    End With
    ComboBox1.List = d.keys
    End Sub

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    Merci de votre aide

    je n'ai pas pu adapter votre code a mon projet
    cependant, les clients sont dans la colonne B : de B8 à B2000
    Les restes des clients sont dans la colonne V : de V8 à V2000
    Le total reste est dans le formulaire "Total_Reste"

    merci
    Images attachées Images attachées  

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 763
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pourquoi utiliser du VBA, au lieu d'écrire directement la formule dans la cellule ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    Bonjour

    Je possède déjà depuis des années un système de gestion conçu avec excel, mais avec la progression des enregistrements le fichier devient très lent a manipuler parce qu'il beaucoup de formules dans chaque ligne d'enregistrement.
    J'ai voulu concevoir ce système de gestion avec VBA dans le but de concentrer les formules seulement dans le formulaire. Les feuilles excel ne me servent que pour l'enregistrement des valeurs sans formules.
    D'autre part, le formulaire est mieux adapté aux utilisateur, c'est simple de naviguer, mieux que les feuilles excel.

    Merci

  8. #8
    Membre habitué
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Points : 172
    Points
    172
    Par défaut
    Pour le code fournit il faut travailler la partie suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    i = 2
    Do While .Cells(i, 1).Value <> ""
            d(.Cells(i, 1).Value) = d(.Cells(i, 1).Value) + .Cells(i, 2).Value
            i = i + 1
        Loop
    .Cells(i, 1)
    Cellule en ligne 1 et colonne 1.

    Je te laisse l'adapter à tes besoins.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    Bonjour

    quand je selectionne un client par le combobox, une erreur survient :

    Je n'arrive pas a localiser l'erreur
    Merci de m'aider
    Images attachées Images attachées    

  10. #10
    Membre habitué
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Points : 172
    Points
    172
    Par défaut
    Regarde bien ce que tu as fais.
    Ici quand tu changes ta Combobox, tu lui demandes ensuite d'attribuer comme valeur l'item du dictionnaire.
    Alors que ça devrait être ta TextBox avec le résultat qui obtiendra l'item.
    Vérifie bien tes contrôles et assigne le bon.

Discussions similaires

  1. [XL-2010] Ecrire un sommeprod avec VBA
    Par MENETRIEUX dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/04/2014, 16h37
  2. [XL-2007] SOMMEPROD avec variables en VBA
    Par Tchebichef dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/07/2013, 11h52
  3. [XL-2010] Macro VBA SOMMEPROD avec adresse de cellule et double condition
    Par Syntoll dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/08/2012, 11h44
  4. afficher la barre de menus complète avec vba
    Par jejestyle dans le forum Access
    Réponses: 7
    Dernier message: 07/09/2006, 18h07
  5. problème avec VBA
    Par Delph dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2002, 13h15

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