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 :

Copié bouton de commande


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Points : 21
    Points
    21
    Par défaut Copié bouton de commande
    Bonjour à tous,

    Ma question est la suivante,

    Est-ce possible de copié un bouton de commande avec son code vba qui ce trouve dans un userform dans un autre userform.

    En vous remerciant de vos réponses.

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    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 914
    Points : 5 121
    Points
    5 121
    Par défaut
    bonjour
    J'ai pas bien compris ta demande mais peut être tu cherche à appeler un code de différent userform ou autres codes
    Si c'est le cas et supposons que tu as un code appelé FermerFormulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub FermerFormulaire
    ton code
    end sub
    tu peux appelé cette commande simplement avec la commande Call
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    call FermerFormulaire
    en tous cas c'est ce que j'ai compris ...si non merci de détailler ta demande et BONNE JOURNEE à vous et à tous les membres de ce super site
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  3. #3
    Membre à l'essai
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    Bonjour Bennasr,

    Tous d'abord merci de m'avoir répondu et de ton temps à mon égard.

    Je vais essayer de m'expliquer correctement.

    je me crée un caisse enregistreuse.

    J'ai un userform ou la j'ai autant de bouttoncommande (qui ce trouve sur mon userform) que d'articles (qui ce trouve sur l'onglet article de ma feuille excel) (c.à.d si j'ai 20 articles, j'ai 20 bouttons)

    J'aimerais de:
    1) que chaque boutton prenne le nom d'un article (ex: commandbutton1 prenne le nom article 1, commandbutton2 prenne le nom article 2, etc.)
    2) J'ai un code vba initial et j'aimerais que chaque commandbutton le possède (pour ne pas retaper tous le code autant de fois que de boutton)

    voici le code initial:

    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
    Private Sub CommandButton12_Click()
    If TextBox2 = "" Then
     
        TextBox1 = "Eau"
        TextBox2 = TextBox2 & 1
        TextBox5 = "2,5"
        TextBox6.Value = Time
     
        If TextBox1 = "" Or TextBox2 = "" Then
            MsgBox "Vous devez impérativement remplir le mode de paiement, le nom du client, la quantitée et l'article avant de valider", vbInformation
            Exit Sub
        End If
        dlf_bdd = Sheets("BDD").Range("a" & Rows.Count).End(xlUp).Row
        Set Table = Sheets("BDD").Range("b2:c" & dlf_bdd)
        With Sheets("Temp")
            dlf = .Range("a" & Rows.Count).End(xlUp).Row + 1
            .Range("a" & dlf) = Date
            .Range("b" & dlf) = TextBox6
            .Range("c" & dlf) = "Table 1"
            .Range("d" & dlf) = CDbl(TextBox2)
            .Range("e" & dlf) = TextBox1
            .Range("h" & dlf) = ComboBox1
            .Range("f" & dlf) = TextBox5
            .Range("g" & dlf) = .Range("d" & dlf) * Application.WorksheetFunction.VLookup(.Range("e" & dlf), Table, 2, 0)
        End With
        ListBox1.AddItem (TextBox2 & "   " & TextBox1)
        TextBox1 = ""
        TextBox2 = ""
        TextBox6 = ""
     
     
    Else
     
        TextBox1 = "Eau"
        TextBox2 = TextBox2
        TextBox5 = "2,5"
        TextBox6.Value = Time
     
        If TextBox1 = "" Or TextBox2 = "" Then
            MsgBox "Vous devez impérativement remplir le mode de paiement, le nom du client, la quantitée et l'article avant de valider", vbInformation
            Exit Sub
        End If
        dlf_bdd = Sheets("BDD").Range("a" & Rows.Count).End(xlUp).Row
        Set Table = Sheets("BDD").Range("b2:c" & dlf_bdd)
        With Sheets("Temp")
            dlf = .Range("a" & Rows.Count).End(xlUp).Row + 1
            .Range("a" & dlf) = Date
            .Range("b" & dlf) = TextBox6
            .Range("c" & dlf) = "Table 1"
            .Range("d" & dlf) = CDbl(TextBox2)
            .Range("e" & dlf) = TextBox1
            .Range("h" & dlf) = ComboBox1
            .Range("f" & dlf) = TextBox5
            .Range("g" & dlf) = .Range("d" & dlf) * Application.WorksheetFunction.VLookup(.Range("e" & dlf), Table, 2, 0)
        End With
        ListBox1.AddItem (TextBox2 & "   " & TextBox1)
        TextBox1 = ""
        TextBox2 = ""
        TextBox6 = ""
     
     
    End If
     
         With Sheets("Temp")
            dlf = .Range("a" & Rows.Count).End(xlUp).Row
            If dlf > 1 Then
                For i = 2 To dlf
                    Total = Total + .Range("g" & i)
                Next i
            End If
        End With
        TextBox4 = Format(Total, "Currency")
     
    Sheets("Temp").Activate
    Macro1
    End Sub
    J'espère m'être expliqué plus correctement

    Je te remercie de ton temps

    PS: je peut joindre une partie en ci-joint si il faut

    En merci

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    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 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonsoir FLORI, la forum
    Pour commencer sous la lumière je suis aussi débutant et autodidacte en VBA donc méfier de mes propositions et à tester sur une copie de ton travail
    Pour nommer vos commande par exemple vous avez 10 boutons de commande qui doivent prendre le nom des 10 articles qui se trouvent dans la feuil1 colonne A et partant de A1 à A10 vous pouvez procéder de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_Initialize()
     Dim i As Long, NbLeg As Long
    Dim ob As Object
    NbLeg = Sheets("feuil1").Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To NbLeg
        For Each ob In UserForm1.Controls
            If ob.Name = "CommandButton" & i Then
                ob.Caption = Sheets("feuil1").Cells(i, 1)
            End If
        Next ob
    Next i
    End Sub
    Pour la deuxième partie, je crois et au lieu d'enregistrer ton code sous Private Sub CommandButton12_Click()que tu dois copier ton code dans un module à appeler au besoin nommé par exemple enregistrerDonnées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sub enregistrerDonnées
    'Copier tout ton code
    If TextBox2 = "" Then
     
        TextBox1 = "Eau"
        TextBox2 = TextBox2 & 1
        TextBox5 = "2,5"
        TextBox6.Value = Time
     .
    .
    . 
    end sub
    et à chaque bouton de commande tu appelle se code avec la fonction call
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call enregistrerDonnées
    j'espère que ça t'as porté de l'aide

    BONNE SOIRÉE A VOUS TOUS
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  5. #5
    Membre à l'essai
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    Bonjour Bennasr,

    Je te remercie de ton attention à ma question.

    Concernant le premier point (placer le nom de l'article à un bouttoncommand) ça marche super

    Pour le reste, je fais un module comme tu me l'as bien dis
    exemple (bien entendu j'ai pas mis tous mon code, c'étais pour tester)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro1()
     TextBox1 = "Eau"
    End Sub
    Après j'ai placé la fonction call dans mon bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    Call Macro1
    End Sub
    Cependant rien de ne passe quand je clic sur le boutton

    Je te joins un fichier aussi, si tu le désire

    https://www.cjoint.com/c/HCqfEErnDtz

    En te remerciant encore

  6. #6
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro1()
     TextBox1 = "Eau"
    End Sub
    Erreur. Je penserais plutôt a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Macro1()
     TextBox1.caption = "Eau"
    End Sub
    Ensuite, bien que n'étant pas un génie de VBA, il me semble que tu peut très bien copier ton code d'un UF1 pour le copier dans le formulaire d'un UF2, en vérifiant bien sur que cela ne vient pas en contradiction avec des particularités du nouveau UF
    J'espère avoir été suffisamment clair et surtout ne pas avoir commis d'erreurs
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  7. #7
    Membre à l'essai
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    J'ai réussi à trouver la réponse

    il fallait que j'indique aussi l'userform dans mon module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro1()
    UserForm1.TextBox1 = "Eau"
    End Sub
    Pourrais abuser de votre gentillesse

    Est-ce possible de placer le nom du bouton comme valeur

    Je m'explique
    comme maintenant chaque bouton ce nommera par la valeur de chaque cellule de la Feuil1
    Exemple
    Coca dans A1 Feuil1 = commandboutton1 Coca
    Fanta dans A2 Feuil1 = commandboutton2 FAnta

    j'aimerais que la valeur du bouton s'inscrive dans mon code macro1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Macro1()
    UserForm1.TextBox1 = "Eau"    'J'aimerais que Eau sois remplacer par le titre du boutton (exemple si commandboutton1 = coca donc "Eau" sera 
                                                  'remplacé par "coca", si commandboutton2 = Fanta donc "Eau" sera remplacé par "Fanta" et ainsi de suite
    End Sub
    En vous remerciant encore de votre temps

  8. #8
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    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 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonjour à tous
    essayer avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro1()
        Sheets("Feuil1").Select
        ActiveWorkbook.Save
     UserForm1.TextBox1.Value = UserForm1.ActiveControl.Caption
    End Sub
    BONNE JOURNÉE A TOUTES & A TOUS
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  9. #9
    Membre à l'essai
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Merci pour cette réponse rapide

    Je vais regarder des que j'ai un moment de libre aujourd'hui.

    Juste une dernière question

    Concernant le transfert nom vers le bouttoncommand qui marche super bien

    J'ai déjà créé tous les bouttoncommand qui attende avec impatience que j'encode mais articles

    Donc si j'ai 5 articles et que j'ai 20 boutons, j'ai mes 5 premier boutons rempli pour ça pas de soucis
    Ma question est la suivante :
    j'aimerais que le reste des boutons sois vide qu'il ne marque pas commandbutton

    Exemple
    j'ai 5 articles déjà encodé donc mes 5 commadbutton son bien encodé
    cependant comme j'ai crée à l'avance 20 commandbutton, j'ai donc 15 commandbutton avec comme titre commadbutton6, commandbutton7 jusquà commandbutton20
    Serait il possible que les commandbutton qui non pas d'articles soit vide (qui n'y ai rien que sois marqué dedans)

    Je te remercie

  10. #10
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    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 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonjour
    peut être c'est du bricolage mais à mon niveau de débutant VBA j'ajoute une autre boucle lors de l'initialisation de ton Userform
    et je cache le bouton s'il est vide
    comme ç :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each ob In UserForm1.Controls
                If ob.Name = "CommandButton" & i Then
                    ob.Visible = False
                End If
           Next ob
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  11. #11
    Membre à l'essai
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    A mon avis c'est ce que je recherche
    Mais je crois que je place mal le code, car il me cache seulement le commandbutton après l'article et me marque les autres commandbutton

    Exemple
    si j'ai 5 articles
    me marque bien les 5 articles
    le 6 ème comme pas article ce cache bien
    mais apres tous les autres commandbutton s'affiche

    voila le code:
    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
    Private Sub UserForm_Initialize()
        Dim i As Long, NbLeg As Long
        Dim ob As Object
        NbLeg = Sheets("feuil1").Range("A" & Rows.Count).End(xlUp).Row
        For i = 1 To NbLeg
            For Each ob In UserForm1.Controls
                If ob.Name = "CommandButton" & i Then
                    ob.Caption = Sheets("feuil1").Cells(i, 1)       'Le 1 choisi la première colonne à prendre
                End If
           Next ob
        Next i
     
     
    For Each ob In UserForm1.Controls
                If ob.Name = "CommandButton" & i Then
                    ob.Visible = False
                End If
           Next ob
     
    End Sub
    En te remerciant

  12. #12
    Membre à l'essai
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    Re,

    J'ai trouvé la solution

    J'ai gardé le premier code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub UserForm_Initialize()
        Dim i As Long, NbLeg As Long
        Dim ob As Object
        NbLeg = Sheets("feuil1").Range("A" & Rows.Count).End(xlUp).Row
        For i = 1 To NbLeg
            For Each ob In UserForm1.Controls
                If ob.Name = "CommandButton" & i Then
                    ob.Caption = Sheets("feuil1").Cells(i, 1)       'Le 1 choisi la première colonne à prendre
                End If
           Next ob
        Next i
     
     
    End Sub
    J'ai juste supprimer la caption dans les propriétés

    Avec cela mes commandbutton son automatiquement vierge
    et grâce à ton code il me rempli seulement le commadbutton qui faut

    Je te redis encore et encore un grand merci de ton aide

  13. #13
    Membre à l'essai
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    Maintenant vais m'attaquer avec les couleurs

    J'espère que si j'ai un soucis, je pourrais me permettre de te redemander de l'aide

    Merci

  14. #14
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    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 914
    Points : 5 121
    Points
    5 121
    Par défaut
    avec plaisir
    svp passer cette discussion comme résolue et ouvrir une autre si nécessaire
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  15. #15
    Membre à l'essai
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Merci et désolé, je croyais avoir mis résolu, pardon

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

Discussions similaires

  1. [XL-2007] Copie de "bouton de commande" via une Macro
    Par boulet67 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/05/2009, 17h34
  2. PB Bouton de commande
    Par tigerfish dans le forum Access
    Réponses: 15
    Dernier message: 27/03/2006, 11h27
  3. Bouton de commande - Aller à un onglet défini
    Par JF.Stachera dans le forum Access
    Réponses: 2
    Dernier message: 16/09/2005, 17h58
  4. [Collaboration/Interaction] Peut-on schématiser une interaction entre un bouton de commande et un autre objet ?
    Par manel007 dans le forum Autres Diagrammes
    Réponses: 5
    Dernier message: 21/09/2004, 01h01
  5. Ajout de bouton de commandes dans la barre de menus
    Par vanessaf22 dans le forum IHM
    Réponses: 9
    Dernier message: 21/07/2003, 11h38

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