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 :

Problème de d'utilisation de lisaison entre deux userform [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème de d'utilisation de lisaison entre deux userform
    Bonjour

    Je suis un novice dans le cadre de la programmation. Cependant dans le cadre de mes études, je dois donc développer un programme informatique qui a pour but d'estimer : l'activité initial d'un radioélément ou l’activité à un moment T et sa période de demi vie.

    J'ai donc utilisé les Userforms sans réel problème. Cependant, sur une page j'ai une erreur d'exécution '424' qui apparait avec la mention objet requis. (vous trouverez en gras la partie qui pose problème à VBA). Je précise que j'ai tenté d'enlever la première partie du programme pour enlever la croix du cadre. J'ai par la même occasion renommer la Userform dans le code (si dessous) et dans les Userforms.

    Dans l'attente d'une réponse,

    Scarcoon

    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
    'Supprimer la croix'
    Private Declare PtrSafe Function GetWindowLongA Lib "User32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare PtrSafe Function SetWindowLongA Lib "User32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare PtrSafe Function FindWindowA Lib "User32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    
    Private Sub UserForm_Initialize()
     Dim hWnd As Long
     hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D") & "Frame", choixetude.Caption)
     SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
     End Sub
    
    
    Private Sub CommandButton1_Click()
    Unload Me
    sommaire.Show
    End Sub
    
    Private Sub CommandButton2_Click()
    Unload Me
    notionacta.Show
    End Sub
    
    Private Sub CommandButton3_Click()
    Unload Me
    notiondata.Show
    End Sub
    
    Private Sub CommandButton4_Click()
    Unload Me
    choixact.Show
    End Sub
    
    Private Sub CommandButton5_Click()
    Unload Me
    calcult.Show
    End Sub

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonjour,
    Citation Envoyé par Scarcoon Voir le message
    ....vous trouverez en gras la partie qui pose problème à VBA..

    utilise plutôt le numéro de ligne de code pour désigner ton problème, évite de modifier la mise en forme dans le code ce qui entraine la perte de la colorisation syntaxique..

    est tu sur du nom de ton userform ?
    ce "t" ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour

    Je tiens à m'excuser pour les modifications que vous avez dû appliquer sur mes lignes de code.

    le calcult indique que je vais dans la userform qui veut faire une datation de cette élément. J'ai tenté de le modifier en renommant la userform aaaa et en faisant aaaa.show et le problème pérsiste.

    Scarcoon

    edit1: je viens de partir de la userform: "choix étude" pour aller sur "userform1" pour par la suite aller sur "calcult" et le bug se manifeste encore. Cela ne viendrait-il pas de la ligne de la userform :"calcult"

    le code de calcult

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    'Supprimer la croix'
    Private Declare PtrSafe Function GetWindowLongA Lib "User32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare PtrSafe Function SetWindowLongA Lib "User32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare PtrSafe Function FindWindowA Lib "User32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
     
     
    Private Sub UserForm_Initialize()
     Dim hWnd As Long
     hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D") & "Frame", Me.Caption)
     SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
     
    ComboBox3.AddItem "secondes"
    ComboBox3.AddItem "minutes"
    ComboBox3.AddItem "heures"
    ComboBox3.AddItem "jours"
    ComboBox3.AddItem "années"
    ComboBox2.AddItem "Lambda"
    ComboBox2.AddItem "T1/2"
    TextBox1.Value = ""
    TextBox1.SetFocus
    TextBox2.Value = ""
    TextBox2.SetFocus
     
     End Sub
     
    Private Sub CommandButton2_Click()
    Unload Me
    choixetude.Show
    End Sub
     
    Private Sub textbox3_change()
    If Not (IsNumeric(TextBox3)) Then
        MsgBox "Valeur numérique SVP", vbOKOnly + vbCritical, "Erreur"
        TextBox3.SetFocus
     
    Else
    Varrad = TextBox3.Value
    End If
    End Sub
     
    Private Sub TextBox6_Change()
    If Not (IsNumeric(TextBox6)) Then
        MsgBox "Valeur numérique SVP", vbOKOnly + vbCritical, "Erreur"
        TextBox6.SetFocus
     
    Else
    T = TextBox6.Value
    End If
    End Sub
     
    Private Sub TextBox4_Change()
    If Not (IsNumeric(TextBox4)) Then
        MsgBox "Valeur numérique SVP", vbOKOnly + vbCritical, "Erreur"
        TextBox4.SetFocus
     
    Else
    A0 = TextBox4.Value
    End If
    End Sub
     
    Private Sub TextBox5_Change()
    If Not (IsNumeric(TextBox5)) Then
        MsgBox "Valeur numérique SVP", vbOKOnly + vbCritical, "Erreur"
        TextBox5.SetFocus
     
    Else
    A = TextBox5.Value
    End If
    End Sub
     
    Private Sub ComboBox3_Change()
    basetemps = ComboBox3.Value
    End Sub
    Private Sub ComboBox2_Change()
    Choixrad = ComboBox2.Value
    End Sub
     
     
    Private Sub CommandButton1_Click()
    If Not (IsNumeric(TextBox3)) Then
        MsgBox "Valeur numérique poue la variable lambda ou T1/2 SVP", vbOKOnly + vbCritical, "Erreur"
        TextBox3.SetFocus
    Else
        If Not (IsNumeric(TextBox4)) Then
        MsgBox "Valeur numérique pour la Valeur de l'Activité A0 SVP", vbOKOnly + vbCritical, "Erreur"
        TextBox4.SetFocus
     
        Else
            If Not (IsNumeric(TextBox5)) Then
            MsgBox "Valeur numérique pour la valeur de l'activité A SVP", vbOKOnly + vbCritical, "Erreur"
            TextBox5.SetFocus
     
                Else
                    If Not (IsNumeric(TextBox6)) Then
                    MsgBox "Valeur numérique pour la valeur de T A SVP", vbOKOnly + vbCritical, "Erreur"
                    TextBox6.SetFocus
                        Else
                            Unload Me
                            ResultatT.Show
                       End If
            End If
        End If
    End If
     
     
    End Sub

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 977
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 977
    Points : 29 012
    Points
    29 012
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    edit1: je viens de partir de la userform: "choix étude" pour aller sur "userform1" pour par la suite aller sur "calcult" et le bug se manifeste encore. Cela ne viendrait t'il pas de la ligne de la userform :"calcult"
    Tu dois lancer la UserForm qui pose problème(calcult seule et si tu constates une erreur, tu dois utiliser le débogueur.
    La touche F8 au lieu de la touche F5 permet d'exécuter le code pas à pas.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos réponses.

    Le problème venait comme je le supposais de calcult. Je te remercie Phillipe Tulliez pour la touche F8.

    En effet, suite à un copier coller. J'ai déclaré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TextBox1.Value = ""
    TextBox1.SetFocus
    TextBox2.Value = ""
    TextBox2.SetFocus
    J'étais dans la partie initialize de mon programme. Donc s'est normal que mon programme ne voulait pas se charger car ces objets n'existaient pas.

    Merci pour tous.

    Scar

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

Discussions similaires

  1. [C#] Problème d'échange de message windows entre deux applications winforms
    Par ingenieurtunisien dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/03/2011, 23h07
  2. Problème de timestamp à l'import/export entre deux SGBD
    Par gcvoiron dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/09/2009, 18h06
  3. Problème accés par nom d'hôte entre deux pc
    Par metaltouch dans le forum Administration
    Réponses: 2
    Dernier message: 28/08/2007, 22h15
  4. [hibernate][webapp]Utilisation des hbms entres deux packages
    Par MrDuChnok dans le forum Hibernate
    Réponses: 9
    Dernier message: 11/01/2007, 14h21
  5. [W3C] Facilité d'utilisation : quel solution entre deux choix ?
    Par Thierry8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 26/04/2006, 12h56

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