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 :

Traduction en code vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Par défaut Traduction en code vba
    Bonjour,

    je voudrais le code correspondant au fichier ci-joint en vba Excel ? es-ce possible svp ?

    Je ne sais pas comment faire et avec quel fonction, j'y connais vraiment rien. j'apprends de jour en jour. L'utilisateur aura la possibilité de cocher les cases qu'il veut et 7 cas probable ont été identifiés et dependamment des cases cochées on affiche le userform correspondant.

    Pouvez-vous m'écrire le code correspondant svp ?

    Merci par avance
    Images attachées Images attachées  

  2. #2
    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
    Bonsoir,

    Ici, les case à cocher sont des contrôles ActiveX incorporés dans une feuille et se nomment "Chk_3G", "Chk_3GS" et "Chk_4G". Mets ce code dans le module de la feuille où sont placées les cases à cocher et teste :
    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
     
    Sub OuvrirForm()
     
        Dim Sel As String
     
        If Chk_3G.Value = True Then Sel = Sel & 1
        If Chk_3GS.Value = True Then Sel = Sel & 2
        If Chk_4G.Value = True Then Sel = Sel & 3
     
        Select Case Sel
     
            Case "123"
                UserForm1.Show
            Case "23"
                UserForm2.Show
            Case "12"
                UserForm3.Show
            Case "1"
                UserForm6.Show
            Case "2"
                UserForm5.Show
            Case "3"
                UserForm4.Show
            Case "13"
                UserForm7.Show
            Case Else
                MsgBox "Vous devez faire un choix !"
     
        End Select
     
    End Sub

    Petite correction, écrire la première ligne de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Chk_3G.Value = True Then Sel = 1
    et non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Chk_3G.Value = True Then Sel = Sel & 1
    Hervé.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Par défaut
    Merci



    Par contre des lors que l'utilisateur coche des cases je voudrais que le userform qui s'ouvre soit consultable et modifiable ultérieurement dans un bouton sans cette fois ci passer par les case a cocher.

    Avez vous une idée ?

    Merci par avance.

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    D'après ce que je comprends, tu mets la propriété ShowModal de ton USF à false, tu peux ensuite lui ajouter un bouon qui exécutera tes instructions.
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Par défaut
    Mais ensuite comment je récupère mon userform correspondant au case cochés dans mon bouton ? quel est le code à écrire ?

    merci

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    j'ai bien écris :
    D'après ce que je comprends, tu mets la propriété...
    Donc là, je ne comprends pas car l'USF ouvert est bien celui que tu as provoqué en cochant tes cases ?
    or tu parles de le récupérer alors qu'avec "ShowModal = false", il est toujours affiché et disponible, là je plane à 15000.....
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Par défaut
    Bonjour,

    Oui effectivement le userform se provoque et s'ouvre des lors que l'utilisateur coche une ou des cases par contre que se passe t-il si je ferme le userform. je veux pouvoir le re-afficher et pour ce faire je ne veux pas cliquer encore une fois sur les cases à cochées mais à travers d'un bouton nommée (consulter ou modifier le userform) ..es ce plus clair ?

    alors peut etre que je n'ai pas compris le showmodal !

  8. #8
    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
    Bonsoir,

    Je ne sais pas si moi aussi j'ai bien tout compris ?
    Ce que j'en ai compris, tu veux ouvrir le formulaire correspondant au choix fait dans les cases à cocher, pouvoir faire autre chose dans Excel et éventuellement réafficher le formulaire sélectionné auparavant sans pour autant te servir des cases à cocher ? Donc, sur l'évennement clic d'un bouton sachant malgré tout que même non modal le formulaire reste affiché dans Excel. Regarde ce qui suit et dis moi :
    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
     
    Sub OuvrirForm()
     
        Dim Sel As String
     
        If Chk_3G.Value = True Then Sel = Sel & 1
        If Chk_3GS.Value = True Then Sel = Sel & 2
        If Chk_4G.Value = True Then Sel = Sel & 3
     
        'si déjà affiché, ferme celui en cours
        'avant d'en affecter un autre à la variable
        If Not Frm Is Nothing Then Unload Frm
     
        Select Case Sel
     
            Case "123"
                Set Frm = UserForm1
            Case "23"
                Set Frm = UserForm2
            Case "12"
                Set Frm = UserForm3
            Case "1"
                Set Frm = UserForm6
            Case "2"
                Set Frm = UserForm5
            Case "3"
                Set Frm = UserForm4
            Case "13"
                Set Frm = UserForm7
            Case Else
                MsgBox "Vous devez faire un choix !"
                Exit Sub
     
        End Select
     
     'non madal
     Frm.Show (False)
     
    End Sub
    A mettre dans un module standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public Frm As Object
    Pour tester le nom du formulaire chargé en mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub CommandButton2_Click()
     
        'une erreur est provoqué si plus en mémoire
        On Error Resume Next
        MsgBox Frm.Name
     
    End Sub
    Hervé.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Par défaut
    Je n'ai pas compris le code car je suis certainement novice mais ta compréhension du sujet est parfaite pourrais-tu me détailler ce que fait le code rajouté par rapport au premier code de la toute première discussion.

    Merci

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Par défaut
    J'ai autre souci urgent avec le code suivant : Si veux que mes cases Iphon3G,3GS,4G soit cochées et que j'affiche mon userform correspondant donc un seul userform qui correspond a mes 3 cases cochées je dois passer par l'affichage du userform correspondant a ma case 1 cochéé puis à case 2 et enfin pour arriver à mon bon userform avec la 3ième case cochée.

    C pouvoir cocher et obtenir un seul userform.

    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
     
    Sub OuvrirForm()
     
        Dim Sel As String
     
        If Chk_3G.Value = True Then Sel = 1
        If Chk_3GS.Value = True Then Sel = Sel & 2
        If Chk_4G.Value = True Then Sel = Sel & 3
     
        Select Case Sel
     
            Case "123"
                UserForm1.Show
            Case "23"
                UserForm2.Show
            Case "12"
                UserForm3.Show
            Case "1"
                UserForm6.Show
            Case "2"
                UserForm5.Show
            Case "3"
                UserForm4.Show
            Case "13"
                UserForm7.Show
            Case Else
                MsgBox "Vous devez faire un choix !"
     
        End Select
     
    End Sub
    Merci de m'aider je suis perdu
    L'ideal finalement ce que je vois avec les contraintes évoqués ci-dessus c'est de ne rien faire comme exécution lors du coche des cases mais de rajouter un bouton qui va permettre d'afficher le userform correspondant.

  11. #11
    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,

    Remplace les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        If Chk_3G.Value = True Then Sel = 1
        If Chk_3GS.Value = True Then Sel = Sel & 2
        If Chk_4G.Value = True Then Sel = Sel & 3
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        If Chk_3G.Value = True Then Sel = "1"
        If Chk_3GS.Value = True Then Sel = Sel & "2"
        If Chk_4G.Value = True Then Sel = Sel & "3"
    Pour ce qui est de mon second post, j'utilise une variable objet (Frm) afin de garder en mémoire le formulaire ouvert car tu dis vouloir le réactiver sans repasser par les cases à cocher. En fonction du choix dans les cases à cocher, l'Userform correspondant est affecté à Frm exemple, 'Set Frm = UserForm5'. Au début, si un userform est déjà afficher, le ferme avant d'en ouvrir un autre 'If Not Frm Is Nothing Then Unload Frm'

    Hervé.

Discussions similaires

  1. [Toutes versions] Traduction Code MatLab en code VBA
    Par Srabax9 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/01/2015, 02h24
  2. [XL-2007] Traduction en code VBA
    Par pasterlouis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2013, 12h47
  3. [XL-2010] Traduction en code VBA d'une condition
    Par henrylandes dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/06/2011, 20h34
  4. [XL-2003] [FAQ] Traduction de code vba en c++
    Par Piernod dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2009, 15h55
  5. Traduction code vba en c++ ?
    Par Piernod dans le forum C++
    Réponses: 1
    Dernier message: 24/04/2009, 16h21

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