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 :

VBA : Rentrer une formule dans une textbox pour avoir un résultat numérique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Janvier 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Apprenti Ingénieur

    Informations forums :
    Inscription : Janvier 2016
    Messages : 72
    Par défaut VBA : Rentrer une formule dans une textbox pour avoir un résultat numérique
    Bonjour à tous,

    Je bloque sur un sujet de donnée calculée dans une textbox, je m'explique :

    J'ai un userform dans lequel se trouve 2 textbox :

    - TextBox40 qui représente un nombre d'heures allouées à une charge de travail.
    - TextBox52 qui doit convertir en nombre de ressources ces heures allouées.

    ce que j'aimerais c'est programmer la 52 comme suit : TextBox52.Value = TextBox40.Value / 140

    Je vous remercie par avance de vos aides ou conseils pour avancer sur le sujet.

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    il suffit d'ajouter CDbl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox52.Value = Cdbl(TextBox40.Value / 140)
    bonne continuation

  3. #3
    Membre confirmé
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Janvier 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Apprenti Ingénieur

    Informations forums :
    Inscription : Janvier 2016
    Messages : 72
    Par défaut
    Bonjour BENNASR,

    J'avais essayer justement cette conversion mais rien n'y fait :/. Ca me met une erreur d'incompatibilité 13'

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par aurelu Voir le message
    Bonjour BENNASR,

    J'avais essayer justement cette conversion mais rien n'y fait :/. Ca me met une erreur d'incompatibilité 13'
    Bizarre, j'ai essayé de mon côté et sa fonctionne bien, peux-tu nous montrer ton code ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    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 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    étrange à première vue
    que vaut TextBox40 ? Je parle du format affiché pour les heures

    en outre, petite coquille de BENNASR il me semble ?
    [code]TextBox52.Value = Cdbl(TextBox40.Value) / 140

    on peut aussi forcer la récupération d'une valeur numérique via Val()

    Essayer aussi via la propriété .Text ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Janvier 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Apprenti Ingénieur

    Informations forums :
    Inscription : Janvier 2016
    Messages : 72
    Par défaut
    J'ai modifié légèrement mon code je n'ai plus d'erreur mais rien ne s'affiche par contre dans les textbox...

    J'ai un code situé dans un module de classe :
    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
    Public WithEvents txtB As MSForms.TextBox
     
    Private Sub txtB_Change()
     
        'Déclare la variable "total" comme Double
        Dim total As Double
     
        'Initialise la variable à 0
        total = 0
     
        'Boucle de 52 à 63 pour 10 TextBox
        For i = 52 To 63
            'Si un des TextBox est différent de rien alors
            If CreationWP.Controls("TextBox" & i) <> "" Then
                'Ben le total est le total de tous les TextBox
                total = total + CDbl(CreationWP.Controls("TextBox" & i)) / 140
            'Fin de la condition
            End If
        'Fin de la boucle
        Next i
     
    End Sub
    Et un code dans un userform dans lequel se situe les textboxs:
    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
    Dim txtA(40 To 51) As New Classe1
    Dim txtB(52 To 63) As New Classe2
     
     
    Private Sub UserForm_Initialize()
        'Déclare la variable
        Dim n As Long
     
        'Boucle de 40 à 51 pour lui dire que les TextBox 40 à 51
        'sont les txtB du module de classe "Classe1".
        For n = 40 To 51
           Set txtA(n).txtA = Controls("TextBox" & n)
        Next n
     
        'Note que le TextBox où est affiché le total se nomme "TxtATotal".
     
        'Déclare la variable
        Dim z As Long
     
        'Boucle de 52 à 63 pour lui dire que les TextBox 40 à 51
        'sont les txtB du module de classe "Classe2".
        For z = 52 To 63
            Set txtB(z).txtB = Controls("TextBox" & z)
        Next z

  7. #7
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    j'ai pas mal de lacunes, ce qui fait que je ne comprend pas ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set txtA(n).txtA = Controls("TextBox" & n)
    par contre ce dont je suis certain, c'est que total ne sert à rien, du fait que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub txtB_Change()
     
        'Déclare la variable "total" comme Double
        Dim total As Double
     
        'Initialise la variable à 0
        total = 0
    Dim total As Double --> doit être en dehors de sub

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. [XL-2010] [VBA] Remplacer un caractére dans une formule par une variable (boucle for)
    Par surikhat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/06/2015, 19h12
  2. [XL-2010] Formule : attribuer une formule dans une cellule
    Par popi33370 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2014, 18h06
  3. Réponses: 3
    Dernier message: 06/03/2013, 13h00
  4. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  5. Réponses: 3
    Dernier message: 29/01/2008, 12h08

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