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 :

Comment mettre a jour des calculs dans un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Par défaut Comment mettre a jour des calculs dans un userform
    Bonjour a tous,

    J'ai crée un userform avec des combobox et en fonction des valeurs de ces combobox je vais recherché des valeurs dans une feuille excel dans des TextBox.
    Tout se passe bien lors de la première initialisation, mais lorsque je modifie la valeur de ma Combobox les TexBox ne se mette pas a jour.

    Comment faut-il faire pour que mes résultat s'affiche des la modification de la valeur de ma Combobox.

    Le code a pourtant été crée sur _Change() de mon combobox.
    j'ai testé sinon en rajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Calculation = xlCalculationAutomatic
    à la fin de mon code mais sans conséquence.

    merci pour votre aide.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Private Sub CmbEffetCalNT_Change()
     
        Dim Plage1 As Range
        Dim Plage2 As Range
        Dim FL1 As Worksheet
     
        FenetreFMESUser.LblEffetCalEC.Value = FenetreFMESUser.CmbEffetCalNT.Value
     
        NomProjet = FenetrePrincipale.LblProjet.Value
        On Error Resume Next
        Set FL1 = Workbooks.Open("FMES-" & NomProjet & ".xls").Worksheets("FMES Equipement")
        If Err.Number = 1004 Then
            GoTo line1
        End If
     
    line1:
        Set FL1 = Workbooks("FMES-" & NomProjet & ".xls").Worksheets("FMES Equipement")
        Set Plage1 = FL1.Range("A4:A" & FL1.UsedRange.Rows.Count)
        Set Plage2 = FL1.Range("C4:C" & FL1.UsedRange.Rows.Count)
     
        i = 4
        For Each Cell2 In Plage2
            If FL1.Range("A" & i) = FenetreFMESUser.CmbListeFonction.Value Then
     
            FenetreFMESUser.LblLambdaTot.Value = (FL1.Range("D" & i).Value)
            FenetreFMESUser.LblLambdaTot.Value = Format(FenetreFMESUser.LblLambdaTot.Value, "##,##0.00")
            FenetreFMESUser.LblDetC.Value = FL1.Range("E" & i).Value
            FenetreFMESUser.LblIndetC.Value = (100 - (FL1.Range("E" & i).Value))
            FenetreFMESUser.LblLambdaDet.Value = (FL1.Range("E" & i).Value * FL1.Range("D" & i).Value)
            FenetreFMESUser.LblLambdaDet.Value = Format(FenetreFMESUser.LblLambdaDet.Value, "##,##0.00")
            FenetreFMESUser.LblLambdaIndet.Value = (FenetreFMESUser.LblIndetC.Value * FL1.Range("D" & i).Value)
            FenetreFMESUser.LblLambdaIndet.Value = Format(FenetreFMESUser.LblLambdaIndet.Value, "##,##0.00")
     
            End If
            i = i + 1
        Next
     
    End Sub
    alex

  2. #2
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Bonjour,

    Juste une idee en passant, ta section line1 n'est lue qu'en cas d'erreur 1004. Donc si tu ne declenche pas l'erreur, tu ne l'executes pas (le pas a pas est ton ami)

    Aussi essaye de desactiver le controle d'erreur pour voir s'il y a pas de problemes de syntaxe, variables etc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    On Error Resume Next
        Set FL1 = Workbooks.Open("FMES-" & NomProjet & ".xls").Worksheets("FMES Equipement")
    On error goto 0

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Par défaut
    Salut tonton fred, merci pour ta réponse

    Citation Envoyé par tonton fred
    Juste une idee en passant, ta section line1 n'est lue qu'en cas d'erreur 1004
    par sélection tu sous-entends?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set FL1 = Workbooks.Open("FMES-" & NomProjet & ".xls").Worksheets("FMES ...
    si oui :
    En fait, je considère que mon fichier est fermé, d'ou le Workbooks.Open, l'erreur 1004 apparaissait lorsque le fichier était ouvert donc j'ai mis un goto line1 qui renvoit a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Set FL1 = Workbooks("FMES-" & NomProjet & ".xls").Worksheets("FMES Equipement")
    et là ca marche.

    si non :
    par sélection tu voulais dire quoi?

    sinon j'ai changer le _Change() en _Click() mais sans conséquence

    je pensais plutot rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Calculation = xlCalculationAutomatic
    mais ca marche pas non plus

  4. #4
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Section, pas selection. Peu importe de toute maniere j'ai dis une anerie j'avais pas bien lu ton goto .

    En fait il ne sert a rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    On Error Resume Next
        Set FL1 = Workbooks.Open("FMES-" & NomProjet & ".xls").Worksheets("FMES Equipement")
        If Err.Number = 1004 Then
            Set FL1 = Workbooks("FMES-" & NomProjet & ".xls").Worksheets("FMES Equipement")
        End If
        On error goto 0
        Set Plage1 = FL1.Range("A4:A" & FL1.UsedRange.Rows.Count)
        Set Plage2 = FL1.Range("C4:C" & FL1.UsedRange.Rows.Count)
    En desactivant le controle d'erreur tu pourrais et en faisant du pas a pas tu verrais peut etre mieux ce qu'il se passe ?

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Par défaut

    excuse moi mais je fais ça comment pour désactiver le controle d'erreur ?
    et pour faire du pas a pas j'utilise des espions?

    il semble que ma plage FL1 soit vide
    : FL1 : Nothing : Worksheet

  6. #6
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Citation Envoyé par alex.a

    excuse moi mais je fais ça comment pour désactiver le controle d'erreur
    Comme je l'ai ecrit dans les deux messages precedents:
    Apres l'instruction qui peut produire une erreur (ou doit produire une erreur puisque dans ton cas tu utilises l'erreur)

    Citation Envoyé par alex.a
    et pour faire du pas a pas j'utilise des espions?
    Non, F8

    Citation Envoyé par alex.a
    il semble que ma plage FL1 soit vide
    FL1 est un workbook, pas une plage (peu importe, c'est juste pour preciser ). Qu'est qui te fait dire ca? Ce que tu as marque vient d'ou ?

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

Discussions similaires

  1. [XL-2010] Comment insérer une feuile de calcul dans une Userform?
    Par sylvain64 dans le forum Excel
    Réponses: 7
    Dernier message: 06/02/2015, 09h31
  2. mettre a jour des valeurs dans des fichiers
    Par Manu300886 dans le forum Général Python
    Réponses: 2
    Dernier message: 31/10/2011, 17h29
  3. Réponses: 2
    Dernier message: 09/03/2010, 18h23
  4. [Word] Comment mettre en évidence des mots dans un document ?
    Par ecocentric dans le forum Framework .NET
    Réponses: 1
    Dernier message: 03/08/2006, 16h31
  5. Réponses: 7
    Dernier message: 21/03/2006, 13h01

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