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 :

Addition de plusieurs textbox dans plusieurs textbox [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Par défaut Addition de plusieurs textbox dans plusieurs textbox
    Bonjour

    Cela fait une semaine que je tourne en rond, je cherche a:

    additionner la textbox1 avec la textbox9 et afficher le résultat dans la textbox17
    additionner la textbox2 avec la textbox10 et afficher le résultat dans la textbox18
    additionner la textbox3 avec la textbox11 et afficher le résultat dans la textbox19
    etc ...

    j'ai bien trouvé comment additionner 10 textbox (avec un module de classe) et afficher la résultat dans la 11ème, mais je n'arrive pas à adapter pour mon cas.
    J'ai recherché sur plusieurs forum, même ceux en anglais mais je trouve pas la solution

    je vous remercie par avance de vous pencher sur mon problème et du temps que vous y passerez

    le code du userfome:
    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
    Dim txtB(1 To 16) As New Classe1 'Pour 16 TextBox
    Dim lig, lign, ligg, EofRow
     
    Private Sub UserForm_Activate()
        Me.Top = Application.Top + 10
        Me.Left = Application.Left + 100
    End Sub
    Private Sub UserForm_Initialize()
        Dim n As Long
     
        'Boucle de 1 à 10 pour lui dire que les TextBox 1 à 10
        'sont les txtB du module de classe "Classe1".
        For n = 1 To 16
            Set txtB(n).txtB = Controls("TextBox" & n)
        Next n
     
        Num_Aff = NumAff
        Application.ScreenUpdating = False
        EofRow = Sheets("BD").[A:A].CurrentRegion.Rows.Count
        un
        Lire
    End Sub
    le code du module de classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public WithEvents txtB As MSForms.TextBox
     
    Private Sub txtB_Change()
     
        For i = 1 To 16
            UsFMO.Controls("TextBox" & i + 16).Value = CDbl(UsFMO.Controls("TextBox" & i).Value) + CDbl(UsFMO.Controls("TextBox" & i + 8).Value)
        Next i
     
     
    End Sub
    Nom : Capture.PNG
Affichages : 775
Taille : 27,9 Ko

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour,

    Peut-être comme ça :

    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
    Private Sub txtB_Change()
     
    For i = 1 To 8
        If UsFMO.Controls("TextBox" & i).Value = "" Then
            T1 = 0
        Else
            T1 = CDbl(UsFMO.Controls("TextBox" & i).Value)
        End If
        If UsFMO.Controls("TextBox" & i + 8).Value = "" Then
            T2 = 0
        Else
            T2 = CDbl(UsFMO.Controls("TextBox" & i + 8).Value)
        End If
        UsFMO.Controls("TextBox" & i + 16).Value = T1 + T2
    Next i
    End Sub

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    En tout premier, apprends à mettre "Option Explicit" dans tous les modules, pour ça, menu "Outils"->"Options..." onglet "Editeur" cocher "Déclaration des variables obligatoire" (ça sera pris en compte pour les prochaines créations de classeurs).
    Dans le code du module de classe, tu as "UsFMO" alors que ta Form s'appelle "UsF_MO" (si Option Explicit avait été en tête de module, tu aurais tout de suite vus l'erreur) et ensuite, il te faut tester si tes TextBox ont bien une valeur numérique avant toute opération :
    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
     
    Option Explicit
     
    Public WithEvents txtB As MSForms.TextBox
     
    Private Sub txtB_Change()
     
        Dim I As Integer
     
        For I = 1 To 16
     
            If IsNumeric(UsF_MO.Controls("TextBox" & I).Value) And IsNumeric(UsF_MO.Controls("TextBox" & I + 8).Value) Then
     
                UsF_MO.Controls("TextBox" & I + 16).Value = CDbl(UsF_MO.Controls("TextBox" & I).Value) + CDbl(UsF_MO.Controls("TextBox" & I + 8).Value)
            End If
     
        Next I
     
    End Sub
    Hervé.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Par défaut
    Re,

    Un très très grand merci pour vos réponses.

    Theze ta solution ne fonctionne pas.
    Thautheme ta solution fonctionne, je vais appliquer tes conseils et ajouter "Option Explicit" a tous mes modules.

    Encore une fois merci a vous deux, je met la discution en résulut.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] VB: Plusieurs données dans une textbox
    Par Lajouv' dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/03/2012, 12h45
  2. Plusieurs polices dans un textbox
    Par petit rabot dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/12/2010, 13h40
  3. Afficher plusieurs lignes dans une TextBox
    Par Spikuria dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 17/06/2009, 09h01
  4. Récupérer la valeur de plusieurs cel dans des textbox
    Par Mon_ami dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/01/2009, 09h03
  5. valeur de plusieur cellules dans une textbox
    Par fabrice44 dans le forum VB.NET
    Réponses: 3
    Dernier message: 17/05/2008, 09h03

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