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

  • Votes
  • Date
  • Date décroissante
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. Bonjour eric
    j'ai copié et enregistré mscomctl avec la command en tant qu'administrateur
    saisie dans la zone de recherche windiws
    regsvr32 c:\windows\syswow64\mscomctl.ocx
    operation réussie
    ensuite j'ai effectué la commande
    regsvr32 c:\windows\system32 /u mscomct2.ocx et mscomctl

    modules introuvables

    j'ai renommé le dossier.ocx

    j'ai redémarré le pc

    quand je lance mon application j'ai maintenant le message d'erreur suivant
    &H80040111(-2147221231) et suis obligé de passer par le gestionnaire de tâches pour pouvoir sortir de cette application

    je suis bien embarrassé ....
    1. Contributeur
      Bonjour,

      je n'ai pas suivi ta demande, je suis juste intervenu pour te dire comment copier et inscrire correctement les ocx.
      Je t'ai donné mscomctl en exemple mais il me semble que momo te disais d'installer mscomct2.ocx
      eric
    2. @eriiicoui effectivement momo m'a dit cela
      pour l'instant tous les liens que j'essaie d'ouvrir pour avoir ce mscomct2.ocx
      me donne access denied
      je continue donc à chercher
    3. @eriiicj'en ai trouvé un via un site sur lequel j'ai du m'inscrire
      je le retrouve bien dans system32
      mais quand je fais la commande regsvr32 c:\windows\system32\mscomct2.ocx
      sur ma ligne cmd j'ai module introuvable
    4. Contributeur
      Tu plaisantes ou tu es sérieux ???
      sur un OS 64 bits les dll 32 bits doivent être mises dans syswow64, pas dans system32.
    5. @eriiicles deux fichiers sont bien maintenant dans sysWOW64
      le fichier mscomct2.ocx bien enregistré date de 2012
      le mscomctl bien enregistré date de 2005

      et j'ai toujours le message d'erreur &H80040111(-2147221231) mais je peux sortir de
      l'application normalement
  2. Bonjour Eric
    j'ai dans system32 un dossier appelé dossier.ocx dans lequel figure MSCOMCTL
    et j'ai également dans system32 un fichier appelé comctl32.ocx

    Dans sysWOW j'ai le fichier MSCOMCTL

    je ne vois nulle part (system32 et WOW64) le fichier mscomct2

    faut il supprimer le dossier dossier.ocx dans system32 et comment ?
    1. Contributeur
      Copier l'ocx dans c:\windows\syswow64\
      ensuite l'enregistrer avec la ligne de commande :
      regsvr32 c:\windows\syswow64\mscomctl.ocx
      (dans une fenêtre DOS ouverte avec cmd saisi dans la zone de recherche du bouton windows)

      Si tu as fait des inscrition dans le registre à tort, tu peux les supprimer avec :
      regsvr32 c:\windows\system32 /u mscomct2.ocx (mettre le bon nom)
      A faire autant de fois que tu l'as inscris, c'est un compteur qui se décrémente et ce n'est réellement supprimé que lorsqu'il atteint 0.

      Ton dossier.ocx doit être une erreur de manip, à supprimer. Si tu doutes commence par le renommer et tu le supprime dans 15j.
      eric
  3. Contributeur
    Bonjour,

    sur un OS 64 bits les dll 32 bits doivent être mises dans syswow64, pas dans system32.
    eric
    1. Bonjour Maurice
      j'ai eu la même idée mais je ne pourrai pas le faire avant ce soir
      car je n'ai pas d'autre micro sous la main

      il semblerait que ce soit cette ligne qui se présente dans te trois derniers travaux qui pose problème

      Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)

      j'ai rechargé à nouveau mscomctl j'ai toujours la même réponse

      Type défini par l'utilisateur non défini

      il y a peut être un conflit ou un erreur au niveau de l'emplacement des fichiers ocx ou j'ai peut être omis une manip pour activer ces fichiers
      1. Bonjour
        test sur un autre micro pour voir si tu a les même problème
        bon voila le dernier
        http://www.cjoint.com/c/GBClFWVnuTn
        A+
        Maurice
        1. Pourquoi çà ne marche pas avec deux dernières versions : je cherche, je cherche
          j'ai excel 2007 win 8.1 donc je ne devrais pas avoir de soucis
          je te tiens informé

          @+
          1. Bonsoir
            bizare j'ais tester avec la version excel 2002 a 2010
            en XP & window7
            la a toi de voir
            A+
            Maurice
            1. Maurice j'ai le même problème que dans ta prédente mouture avec ce dernier jet

              Sub MiseForm()
              F00.Visible = 2
              F01.Visible = 2
              F04.Select
              ActiveWindow.DisplayGridlines = False
              Application.Goto [A1], True
              F04.ScrollArea = "A1"
              End Sub

              j'ai d'abord impossible charger l 'objet et ensuite projet ou bibliotheque introuvable avec [A1] en bleu

              mais ton travail me laisse pantois .. vraiment ...
              1. Bonjour
                voila le dernier jus
                http://www.cjoint.com/c/GBBsnuAqJjq

                A+
                Maurice
                1. Rebonsoir Maurice
                  Ca y est j'ai pu télécharger mscomct2 que j'ai placé dans syst32
                  dans sys32 j'ai un dossier "dossier.ocx" contenant mscomst2 du 08/05/2012
                  et mscomctl du 09 01 2013
                  dans systwow64 il y a aussi mscomctl

                  je peux maintenant entrer dans ton avant-dernier modèle et le lancer sans aucun problème

                  mais impossible d'entrer dans ton dernier modèle (etat saisies et recap) je peux visualiser ce qu'il contient (userform et code) mais dès que je lance j'ai comme message : impossible de charger l'objet car il n'est pas disponible sur cette machine.
                  1. Bonjour
                    il faut déjà le Télécharger et tu le trouve sur le web
                    A+
                    Maurice
                    1. le MSCOMCT2.OCX se trouve dans le systeme32

                      rien trouvé dans system32
                      1. Bonjour
                        voila un exemple sur 2 banque avec une recape
                        http://www.cjoint.com/c/GBBndObFPGq
                        A+
                        Maurice
                        1. Bonjour
                          en principe le MSCOMCT2.OCX se trouve dans le systeme32
                          car ses un OCX 32 bites
                          A+
                          Maurice
                          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
                            1. Bonjour
                              Voila un model de gestion plus simple en saisie
                              http://www.cjoint.com/c/GBAkS2fNGpn
                              bon courage
                              A+
                              Maurice
                              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
                                1. Bonsoir
                                  voila la modife
                                  mes tu devrais refaire ton userform
                                  http://www.cjoint.com/c/GByu016jOx8
                                  A+
                                  Maurice
                                  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 ..
                                    1. Bonjour
                                      encore des modifes
                                      et aussi dans UserForm2
                                      http://www.cjoint.com/c/GBypAAtJIv8
                                      A+
                                      Maurice
                                      • 1
                                      • 2