Variable dans une fonction

max850 Messages postés 312 Statut Membre -  
max850 Messages postés 312 Statut Membre -
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

  • 1
  • 2
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.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    Par un msgbox je souhaiterais demander à ce que l'on rentre un mot
    ce ne serait ce pas plutôt un inputbox ?
    1
  2. max850 Messages postés 312 Statut Membre 3
     
    Oui Michel Inputbox

    sorry
    0
    1. max850 Messages postés 312 Statut Membre 3
       
      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
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > max850 Messages postés 312 Statut Membre
         
        Bonjour,

        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
      2. max850 Messages postés 312 Statut Membre 3 > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour 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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  4. max850 Messages postés 312 Statut Membre 3
     
    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. max850 Messages postés 312 Statut Membre 3
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. momo
     
    Bonjour
    j'ais modifier un peux ton userform1

    http://www.cjoint.com/c/GBwuOxqHhMd
    A+
    Maurice
    0
  7. max850 Messages postés 312 Statut Membre 3
     
    Bonjour Maurice je ne parviens pas à ouvrir ton fichier
    0
    1. max850 Messages postés 312 Statut Membre 3
       
      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
  8. momo
     
    Bonjour
    en VBA dans les Outils\Reference
    reactive OCX SP6
    A+
    Maurice
    0
  9. max850 Messages postés 312 Statut Membre 3
     
    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
  10. momo
     
    Bonjour

    sans listView

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

    A+
    Maurice
    0
  11. max850 Messages postés 312 Statut Membre 3
     
    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
  12. momo
     
    Bonjour

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

    A+
    Maurice
    0
  13. max850 Messages postés 312 Statut Membre 3
     
    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
  14. momo
     
    Bonjour
    Voila encore une modife
    http://www.cjoint.com/c/GByjXqeK2f8

    A+
    Maurice
    0
  15. max850 Messages postés 312 Statut Membre 3
     
    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
  16. momo
     
    Bonjour
    encore des modifes
    et aussi dans UserForm2
    http://www.cjoint.com/c/GBypAAtJIv8
    A+
    Maurice
    0
  17. max850 Messages postés 312 Statut Membre 3
     
    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
  18. momo
     
    Bonsoir
    voila la modife
    mes tu devrais refaire ton userform
    http://www.cjoint.com/c/GByu016jOx8
    A+
    Maurice
    0
  19. max850 Messages postés 312 Statut Membre 3
     
    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
  20. momo
     
    Bonjour
    Voila un model de gestion plus simple en saisie
    http://www.cjoint.com/c/GBAkS2fNGpn
    bon courage
    A+
    Maurice
    0
  21. max850 Messages postés 312 Statut Membre 3
     
    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