Variable dans une fonction

Bonjour le forum,

Par un msgbox je souhaiterais demander à ce que l'on rentre un mot
par exemple "Divers" et que ce mot s'inscrive dans la fonction sommeprod
autrement dit je souhaiterais mettre une variable à la place de "Divers" dans la fonction pour avoir le choix du mot à entrer

et pouvoir placer le résultat de sommeprod dans une textbox

=SOMMEPROD((F6:F13="Divers")*(I6:I13))

Pouvez vous m'aider s'il vous plait

Merci

<config>Windows 8.1 excel 7

34 réponses

Résumé de la discussion

La problématique concerne la saisie dynamique d'un mot par l'utilisateur pour remplacer le texte 'Divers' dans une fonction SOMMEPROD et afficher le résultat dans une textbox. Des échanges suggèrent d'utiliser une InputBox plutôt qu'une MsgBox pour obtenir la saisie, afin d'alimenter la variable utilisée par la fonction et d'éviter le texte constant. Le fil évoque aussi des échanges techniques sur des dépendances OCX et des scripts système liés à l'environnement Windows, bien que ces points ne semblent pas directement liés à la saisie utilisateur. En cas de besoin, les liens fournis partent de mises en œuvre pratiques et d'essais sur des postes différents, sans conclure à une solution unique.

Bobot (l’IA à votre service)
  1. Contributeur
    Bonjour
    Par un msgbox je souhaiterais demander à ce que l'on rentre un mot
    ce ne serait ce pas plutôt un inputbox ?
    1
    1. Oui Michel Inputbox

      sorry
      0
      1. Michel
        j'ai adapté ce code
        Private Sub CommandButton4_Click()
        Application.Visible = True

        Dim Plage1 As String, Plage2 As String
        Dim Chaine As String
        Plage1 = Range("F6:F60000").Address
        Plage2 = Range("g6:g60000").Address
        'Chaine = "Manif1"
        Chaine = InputBox("Entrer un nom")
        Range("C13") = Evaluate("Sumproduct(" & Plage2 & "*(" & Plage1 & "=""" & Chaine & """))")

        'end with
        TextBox1 = Chaine
        TextBox2 = Sheets("journalbord").Range("C13")

        End Sub

        mais chaine peut avoir jusqu'à 6 ou 7 valeurs
        il y a donc une boucle à faire n'est ce pas ?
        0
      2. Contributeur
        @max850Bonjour,

        pas trop le temps ce matin....

        Tu annonces 60000 lignes et à ce niveau sumproduct sera très lent..
        dans ta première demande tu parles de la colonne I et maintenant colonne G le tout sur 7 lignes....
        On ne raisonne pas du tout de la m^me façon suivant le nombre de lignes !

        Il serait intéressant que tu donnes la liste des mots ou mieux de mettre cette liste dans une validation de données plus sécuritaire qu'un input box

        le + intéressant serait de

        Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
        et faire un clic droit-coller le raccourci dans votre message

        Dans l’attente
        0
      3. @michel_mBonjour michel-m
        et te remercie beaucoup du temps que tu me consacres
        j'ai tenu compte de tes remarques concernant la sécurité
        j'ai donc abandonné le inputbox au profit des combobox d'autant plus que la liste des activités éxiste déjà dans ma feuille1 de variables
        il y a peut être un autre moyen ??
        concernant les 60000 lignes : en fait il n'y aura jamais plus de 10 lignes voire 12 puisqu'il s'agit des activités
        dans le userform2 je pourrais donc avoir le montant des recettes et dépenses par activité
        via un bouton
        serait il possible d'afficher simultanément les recettes et les dépenses de toutes les activités réalisées pour ne pas à avoir à les entrer une par une toujours via un bouton?
        (Dans l'exemple j'ai juste fait dépense pour une activité)

        https://mon-partage.fr/f/TJrrwGyh/

        Merci
        0
    2. Contributeur
      Je viens de jeter un œil et je n'y comprend rien

      déjà on ne sait pas de quelle feuille provient plage1 et plage2...

      en 1° ligne j'ai le nom de cette activité qui apparait en 1° ligne dans le textbox "entrée".... ?

      Comme il n'y a pas d'exemples activité -recette ou dépenses (où ?), il est difficile de rentrer dans une étude de solution...
      0
      1. plage1 et plage2 viennent de la feuille "journalbord"
        jai modifié de la façon suivante

        mafeuille = Sheets("journalbord").Range("C13")

        mafeuille = Evaluate("Sumproduct(" & Plage2 & "*(" & Plage1 & "=""" & Chaine & """))")

        Dans le menu principal en cliquant sur Journal de bord je peux compléter
        la feuille"journal dépense". En cliquant sur le bouton valider je retrouve ces infos dans la feuille "journalbord"
        je reviens au menu principal je sélectionne mon activité et en cliquant sur Bilan par activité j'ai la somme qui s'affiche dans la textbox.

        Mais je viens de m'percevoir qu'en rentrant plusieurs activités dans ma feuille journaldepense il y a toujours la meme somme qui s'affiche dans la textbox du bilan par activité
        j'ai sans doute un problème dans ma formule Evaluate
        0
        1. Michel-m je t'envoie un nouveau fichier que j'ai un peu modifié
          peut être y verras tu un peu plus clair

          merci

          https://mon-partage.fr/f/GEUBI7dj
          0
      2. Bonjour
        j'ais modifier un peux ton userform1

        http://www.cjoint.com/c/GBwuOxqHhMd
        A+
        Maurice
        0
        1. Bonjour Maurice je ne parviens pas à ouvrir ton fichier
          0
          1. Maurice j'ai un message d'erreur : erreur de compilation
            projet ou bibliotheque introuvable
            Dans le cadre référence vba project
            j'ai : manquant : microsoft windows common controls 6.0
            (sp6)
            0
        2. Bonjour
          en VBA dans les Outils\Reference
          reactive OCX SP6
          A+
          Maurice
          0
          1. ok Maurice
            tu m' as devancé
            je suis allé dans références et j'ai décoché le manquant : microsoft ..
            et ai coché la ligne du dessous qui avait exactement le même libellé excepté manquant et ca marche maintenant
            je reviens vers toi pour te dire quoi au sujet de ton userform
            merci
            0
            1. Bonjour

              sans listView

              http://www.cjoint.com/c/GBxlAULERxl

              A+
              Maurice
              0
              1. Maurice il me semble que la deuxième sans listview est plus rapide
                en tous les cas la présentation du userform est plus légère et c'est celle que je préfère
                dans les deux exemples j'ai juste apporté une modif
                pour avoir le plan comptable correspondant à la checkbox

                dans ce userform1 j'obtiens le numéro de la pièce en le sélectionnant avec la combobox correspondante
                Serait il possible d'utiliser disons la variable 100 qui se trouve dans la colonne k1 de la feuille de variable feuil1 pour qu'elle s'incrémente automatiquement de +1 et placer ce nouveau nr dans la textbox12 . A chaque lancement du userform j'aurais donc 100 ensuite 101 102 etc ....
                merci
                0
                1. Bonjour

                  regarde aussi UserForm5
                  http://www.cjoint.com/c/GBxpVkz7hKl

                  A+
                  Maurice
                  0
                  1. Super Maurice
                    j'avais utiliser cela

                    ' **** remplace: [Private Sub CommandButton2_Click()]
                    Private Sub cmdeValider_Click()
                    Application.Visible = True
                    Static Compteur As Long
                    Compteur = Compteur + 1
                    TextBox12.Value = Compteur

                    mais je ne faisais plus appel à ma variable dans feuil1

                    Ta solution me convient parfaitement

                    Merci Maurice tu es un vrai chef
                    Pour moi ce sera tout pour ce soir
                    0
                    1. Bonjour
                      Voila encore une modife
                      http://www.cjoint.com/c/GByjXqeK2f8

                      A+
                      Maurice
                      0
                      1. Bonjor Maurice
                        merci our ton nouveau fichier

                        voilà ce qie j'ai fait ce matin
                        comme je n'ai que deux alternatives entre bqe et cais

                        En utilisant ton dernier modèle d'hier

                        j'ai rendu textbox10 et combobox3 invisible
                        pour nes avoir d'erreur
                        et ai modifie le textbox17_change de la façon suivante

                        https://www.cjoint.com/c/GBynuM4ZsXu

                        Private Sub textbox17_change()

                        If TextBox17.Value = "Chèque" Or TextBox17.Value = "Virement" Then
                        TextBox19.Value = "BQE" & Feuil1.Range("K1").Value + 1
                        Else
                        TextBox19.Value = "CAI" & Feuil1.Range("K1").Value + 1
                        End If
                        TextBox19.Locked = True
                        0
                        1. Bonjour
                          encore des modifes
                          et aussi dans UserForm2
                          http://www.cjoint.com/c/GBypAAtJIv8
                          A+
                          Maurice
                          0
                          1. Merci Maurice pour ces modifs
                            en particuliers le select case et Compte recettes par défaut
                            j'ai un petit soucis avec le userform1
                            lorsque je clique sur Quelle activité txt9 combo8
                            l'activité s'affiche dans la txtbox 17 combo 10 en lieu et place
                            de moyen de règlement et en modifiant les 3 premiers caractères de la
                            ref pièce
                            je cherche tout cela provient mais tu auras beacoup plus vite fait que moi

                            j'ai également enlevé le premier contrôle sous "if checkbox1.value ..
                            0
                            1. Bonsoir
                              voila la modife
                              mes tu devrais refaire ton userform
                              http://www.cjoint.com/c/GByu016jOx8
                              A+
                              Maurice
                              0
                              1. Bonsoir Maurice
                                Ai modifié ta dernière modife pour lire dans le
                                Select case
                                Case else
                                textbox6.locked = true
                                Ref = "CAI"

                                pour que l'on puisse rien inscrire dans ce champ
                                lorsqu'il s'agit d'une opération de caisse

                                j'ai supprimé le label qui ne servait plus sur le userform1
                                je vais mieux présenté ce userform.
                                j'ai fait également le ménage dans le code
                                je vais maintenant finaliser ce userform1 avant de poursuivre dans le userform2 etc .....
                                j'aurai sûrement encore besoin de tes lumières .......
                                merci une novelle fois maurice
                                0
                                1. Bonjour
                                  Voila un model de gestion plus simple en saisie
                                  http://www.cjoint.com/c/GBAkS2fNGpn
                                  bon courage
                                  A+
                                  Maurice
                                  0
                                  1. Bonjour Maurice
                                    j'ai chargé les Windows common controls 6.0(sp6)
                                    les controles commun vb6.0 ont té installé avec succès
                                    Mais en ouvrant ton fichier j'ai un problème avec le DTPICKER1
                                    En regardant dans sysWOW64 j'ai bien MSCOMCTL.OCX mais pas de trace de MSCOMCT2.OCX
                                    Comment puis je résoudre ce problème ?
                                    merci
                                    0
                                    • 1
                                    • 2