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 :

Affecter la même macro vba à plusieurs contrôles lors d'un clic sur un formulaire


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Points : 6
    Points
    6
    Par défaut Affecter la même macro vba à plusieurs contrôles lors d'un clic sur un formulaire
    Bonjour à tous

    Cela fait un moment que je cherche une solution à mon problème sans y arriver donc j'aimerais savoir si quelqu'un ici pouvais m'aider.

    Je m'explique, je dispose d'un formulaire sur lequel j'ai une cinquantaine de contrôles de type "Rectangle", j'aimerais que lorsque je clic sur chacun de ces derniers la même macro se lance.

    Pour le moment j'ai ceci :

    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
    Private Sub Ctl53_Click()
        [Forms]![Form-TAD]![arret].Value = 53
        [Forms]![Form-TAD]![CommuneDep] = "OETING"
        [Forms]![Form-TAD]![ArretDep] = "DESCARTES"
        DoCmd.OpenQuery "TrajetsExistant", , acReadOnly
        DoCmd.Requery
        DoCmd.Close acQuery, "TrajetsExistant"
        DoCmd.OpenForm "TrajetsDispo", , , , , acDialog
    End Sub
     
    Private Sub Ctl54_Click()
        [Forms]![Form-TAD]![arret].Value = 54
        [Forms]![Form-TAD]![CommuneDep] = "OETING"
        [Forms]![Form-TAD]![ArretDep] = "AVOGADRO"
        DoCmd.OpenQuery "TrajetsExistant", , acReadOnly
        DoCmd.Requery
        DoCmd.Close acQuery, "TrajetsExistant"
        DoCmd.OpenForm "TrajetsDispo", , , , , acDialog
    End Sub
    [arret] [CommuneDep] et [ArretDep] alimentent une requête dans mon application, [arret] représentent l'identifiant d'un arrêt se trouvant dans une table. J'ai nommé mes contrôles dans mon formulaire de la même manière que [arret] et j'aimerais donc qu'en cliquant sur chacun des rectangle mes textBox [arret] [CommuneDep] et [ArretDep] prennent les valeurs se trouvant dans ma table.

    Est ce que quelqu'un aurait une idée de comment je dois m'y prendre ?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Je ne connais pas grand chose à ce genre de développement.

    Dans le principe qui est le mien.
    Dès qu'une même procédure est affectée à plusieurs contrôles de formulaire, alors adopter un module de classe.

    Il te suffira d'affecter chaque bouton de commande à ta classe d'objets.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  3. #3
    Invité
    Invité(e)
    Par défaut
    bonjour,
    Code au plus simple : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Ctl53_Click()
        MacorComune 53
    End Sub
    Private Sub Ctl54_Click()
        MacorComune 54
    End Sub
    sub MacorComune(V as integer)
        [Forms]![Form-TAD]![arret].Value = v
        [Forms]![Form-TAD]![CommuneDep] = "OETING"
        [Forms]![Form-TAD]![ArretDep] = "AVOGADRO"
        DoCmd.OpenQuery "TrajetsExistant", , acReadOnly
        DoCmd.Requery
        DoCmd.Close acQuery, "TrajetsExistant"
        DoCmd.OpenForm "TrajetsDispo", , , , , acDialog
    end sub

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    il te faut classer tes boutons ET!!! créer une table ou array de correspondance

    pour ca il nous faut le code de tes 50 boutons
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    bonjour,
    Code au plus simple : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Ctl53_Click()
        MacorComune 53
    End Sub
    Private Sub Ctl54_Click()
        MacorComune 54
    End Sub
    sub MacorComune(V as integer)
        [Forms]![Form-TAD]![arret].Value = v
        [Forms]![Form-TAD]![CommuneDep] = "OETING"
        [Forms]![Form-TAD]![ArretDep] = "AVOGADRO"
        DoCmd.OpenQuery "TrajetsExistant", , acReadOnly
        DoCmd.Requery
        DoCmd.Close acQuery, "TrajetsExistant"
        DoCmd.OpenForm "TrajetsDispo", , , , , acDialog
    end sub
    bonjour robert
    et non selon le numéro ArretDep est différent
    c'est de ca que je parle quand je dit table de correspondance
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    re
    il te faut classer tes boutons ET!!! créer une table ou array de correspondance

    pour ca il nous faut le code de tes 50 boutons
    bonjour Patrick, en fait il t'as donné le code mais c'est de l'ACCESS

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    @robert
    regarde bien ces deux boutons
    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
    Private Sub Ctl53_Click()
        [Forms]![Form-TAD]![arret].Value = 53
        [Forms]![Form-TAD]![CommuneDep] = "OETING"
        [Forms]![Form-TAD]![ArretDep] = "DESCARTES"
        DoCmd.OpenQuery "TrajetsExistant", , acReadOnly
        DoCmd.Requery
        DoCmd.Close acQuery, "TrajetsExistant"
        DoCmd.OpenForm "TrajetsDispo", , , , , acDialog
    End Sub
     
    Private Sub Ctl54_Click()
        [Forms]![Form-TAD]![arret].Value = 54
        [Forms]![Form-TAD]![CommuneDep] = "OETING"
        [Forms]![Form-TAD]![ArretDep] = "AVOGADRO"
        DoCmd.OpenQuery "TrajetsExistant", , acReadOnly
        DoCmd.Requery
        DoCmd.Close acQuery, "TrajetsExistant"
        DoCmd.OpenForm "TrajetsDispo", , , , , acDialog
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Invité
    Invité(e)
    Par défaut
    oui je suis d’accord mais il mutualiser la partie commande access.

    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
    Private Sub Ctl53_Click() 
        [Forms]![Form-TAD]![arret].Value = 53
        [Forms]![Form-TAD]![CommuneDep] = "OETING"
        [Forms]![Form-TAD]![ArretDep] = "DESCARTES"
    End Sub
     
    Private Sub Ctl54_Click()
        [Forms]![Form-TAD]![arret].Value = 54
        [Forms]![Form-TAD]![CommuneDep] = "OETING"
        [Forms]![Form-TAD]![ArretDep] = "AVOGADRO"
    End Sub
    sub MacorComune()
     DoCmd.OpenQuery "TrajetsExistant", , acReadOnly
        DoCmd.Requery
        DoCmd.Close acQuery, "TrajetsExistant"
        DoCmd.OpenForm "TrajetsDispo", , , , , acDialog
    
    End Sub
    
    
    

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Points : 6
    Points
    6
    Par défaut
    Re bonjour

    Je dispose d'une table de la sorte :
    Nom : tableArret.png
Affichages : 725
Taille : 40,9 Ko

    Et chaque rectangle fait référence à ces arrêts. J'aimerais qu'en cliquant sur un rectangle (qui à comme propriété Name l'identifiant de l'arrêt c'est à dire le champ "CLe") mes textBox [arret] [CommuneDep] et [ArretDep] prennent donc les valeurs correspondante à la ligne de ma table.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Points : 6
    Points
    6
    Par défaut
    J'avais essayer ce code la :

    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
        Dim Ctrl As Access.Control
        Dim Form As Form
        Dim db As DAO.Database
        Dim rst As DAO.Recordset
        Dim req As String, commune As String, arret As String
     
        Form = [Forms]![Form-TAD]
        Set db = CurrentDb
        'Les rectangles qui disposent de l'événement OnClick ont pour unique parent le formulaire.
        If Ctrl.ControlType = acRectangle Then
            For Each Ctrl In Form.Controls
            'Ici, la fonction sera appelée avec le nom du contrôle.
                Ctrl.OnClick = "=CleRectangle (" & Chr(34) & Ctrl.Name & Chr(34) & ")"
                [Forms]![Form-TAD]![arret].Value = CleRectangle(Ctrl.Name)
                req = "SELECT Commune FROM TabForbusTADArrêt WHERE Cle =" & Ctrl.Name
                Set rst = db.OpenRecordset(req)
                Do Until rst.EOF
                    commune = rst![commune]
                    rst.MoveNext
                Loop
                [Forms]![Form-TAD]![CommuneDep].Value = commune
                Ctrl.OnClick = "=CleRectangle (" & Chr(34) & Ctrl.Name & Chr(34) & ")"
                req = "SELECT Arrêt FROM TabForbusTADArrêt WHERE Cle =" & Ctrl.Name
                Set rst = db.OpenRecordset(req)
                Do Until rst.EOF
                    arret = rst![Arrêt]
                    rst.MoveNext
                Loop
                [Forms]![Form-TAD]![CommuneDep].Value = arret
                DoCmd.OpenQuery "TrajetsExistant", , acReadOnly
                DoCmd.Requery
                DoCmd.Close acQuery, "TrajetsExistant"
                DoCmd.OpenForm "TrajetsDispo", , , , , acDialog
            Next Ctrl
         End If
    Mais ce que je voudrais c'est qu'en cliquant sur chacun des rectangle ce code ce réalise sauf que j'ai aucune idée de comment le faire, si quelqu'un aurait une idée ?

    Si vous avez besoin de plus d'explications dites le moi, c'est la première fois que j'écris sur ce forum donc je ne sais pas si je suis assez clair pour vous.

    Merci de votre aide

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Bonjour,

    Je ne connais pas grand chose à ce genre de développement.

    Dans le principe qui est le mien.
    Dès qu'une même procédure est affectée à plusieurs contrôles de formulaire, alors adopter un module de classe.

    Il te suffira d'affecter chaque bouton de commande à ta classe d'objets.

    J'ai essayé de créer une classe rectangle mais je ne sais pas trop comment m'y prendre.. pourriez vous me montrer un exemple ?

  12. #12
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Salut bial,

    Je reviens dans une heure environ

    En attendant, tu peux consulter ce lien sur les modules de classe issu de la FAQ où 3 tutoriels te sont proposés, dont celui de Pierre.

    A tout à l'heure.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Salut bial,

    Je reviens dans une heure environ

    En attendant, tu peux consulter ce lien sur les modules de classe issu de la FAQ où 3 tutoriels te sont proposés, dont celui de Pierre.

    A tout à l'heure.

    D'accord merci je vais y jeter un œil en attendant votre retour.

  14. #14
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Coucou, me revoilou.

    J'ai développé un exemple.

    Mise à l'écran d'un formulaire dont les 2 boutons de commande répondent à une même procédure.
    Cette procédure fait apparaître un message (Dans ton applicatif, ce sera la procédure commune à tous tes "rectangles")

    3 phases principales

    1 - Dans un module standard, coder la procédure commune à tous les boutons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
     
    Public Sub lemessage()
     
    MsgBox Prompt:="Bonjour au Forum", Buttons:=vbInformation, Title:="Salutations"
     
    End Sub
    2 - Dans un module de classe (Menu Insertion module de classe), coder l'évènement lié à la classe d'objets.
    Cette classe sera composée des objets boutons.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public WithEvents leclic As MSForms.CommandButton
     
    Private Sub leclic_CLICk()
     
    Call lemessage
     
    End Sub
    3 - A l'initialisation du formulaire, la classe sera déclarée au nom du module de classe
    Elle sera alimentée des objets boutons dont la nomenclature est homogène et suffixée (Btn_mess_1 et Btn_mess_2)
    Ce type de nomenclature est une règle pour ce qui me concerne.
    Dans le code associé au formulaire

    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
    Option Explicit
     
    Dim mamsgb() As New Class_message
     
    Private Sub UserForm_Initialize()
     
    Dim i As Byte
     
    For i = 1 To 2
     
            ReDim Preserve mamsgb(1 To i)
            Set mamsgb(i).leclic = Me.Controls("Btn_mess_" & i)
     
    Next i
     
     
    End Sub
     
    Private Sub Btn_Quitter_Click()
     
    Unload Me
     
    End Sub
    2 remarques quant à l'homogénéité des codes:
    - "Class_message" est le nom du module de classe
    - "leclic" est le nom de la variable objet déclaré dans le module de classe. Celui-ci est, bien-entendu, repris lors de la déclaration au sein du module lié au formulaire.

    En pièce jointe à ce post, l'applicatif.
    Pour afficher le formulaire, Ctrl + m

    A plus
    Fichiers attachés Fichiers attachés

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Points : 6
    Points
    6
    Par défaut
    Je vais essayer d'adapter cela à mon cas, je reviens vers vous une fois tester, merci de votre aide !

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonsoir Marcel et bila7
    une autre facon de coder

    dans le UserForm 8 bouton a classer et 1 bouton pour ajouter un nouveau !!! a la classe après classement des boutons donc 9 boutons dans l'userform

    UserForm

    avec les deux méthodes d'intégration

    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
    Dim cl As New classButton
     
    Private Sub CommandButton9_Click()
    'méthode d'intégration unitaire
    cl.Addbutton Me, CommandButton1 'on ajoute le 1 unitairement
    cl.Addbutton Me, CommandButton2 'on ajoute le 2 unitairement
    cl.Addbutton Me, CommandButton3 'on ajoute le 3 unitairement
    'maintenant le 1 2 3 fonctionne aussi
    End Sub
    '
    Private Sub UserForm_Activate()
    'on classe du bouton 4 au bouton 8
    'méthode d'intégration a la volé 
    cl.initiateButton Me, 4, 8
    'donc le 1 2 3 ne fonctionnera pas car ils ne seront pas intégrés
    End Sub
    code module class nommé classbutton

    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
     
     
    Public WithEvents button As msforms.CommandButton
    Public index As Long
    Dim cls() As New classButton
    Public usf As Object
    Function initiateButton(usf, first, last)
        For i = first To last
            index = index + 1: ReDim Preserve cls(1 To index)
            Set cls(index).button = usf.Controls("CommandButton" & i): Set cls(index).usf = usf
        Next
    End Function
    Function Addbutton(usf, ctrl As msforms.CommandButton)
    index = index + 1: ReDim Preserve cls(1 To index)
            Set cls(index).button = ctrl: Set cls(index).usf = usf
    End Function
     
    Private Sub button_Click()
        MsgBox "coucou"
    End Sub
    voila c'est pas plus compliqué que cela
    Nom : demo2.gif
Affichages : 683
Taille : 724,0 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour Patrick,

    Certes le processus est astucieux. Je ne le connaissais pas.
    Au demeurant, la présence du bouton "ajouter à la classe" ne complique-t-il pas l'utilisation du formulaire?

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  18. #18
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Points : 6
    Points
    6
    Par défaut
    Bonjour, j'ai tester chacune de vos solution mais je n'arrive pas à les adapter à mon cas dans le module de classe "classRectangle" que j'ai créer j'ai insérer le code suivant
    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
    Option Compare Database
     
    Public WithEvents rectangle As rectangle
    Public index As Long
    Dim cls() As New classRectangle
    Public usf As Object
     
    Function initiateRectangle(usf, first, last)
        For i = first To last
            index = index + 1: ReDim Preserve cls(1 To index)
            Set cls(index).rectangle = usf.Controls("Rec" & i): Set cls(index).usf = usf
        Next
    End Function
     
    Private Sub rectangle_Click()
        MsgBox "Coucou"
    End Sub
    Et donc dans mon Formulaire j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim cl As New classRectangle
     
    Private Sub Form_Open(Cancel As Integer)
        TrajEx2.Height = 1
        TrajEx2.Width = 1
        cl.initiateRectangle Me, 1, 54
    End Sub

    Lorsque je clic sur mes rectangles dans mon formulaire, rien ne se passe, auriez vous une idée de ou j'aurais pu mal adapter mon code ?

    Merci de votre patiente

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    je ne connais pas suffisamment accès mais j'ai un doute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    
    Public WithEvents rectangle As quelquechose.rectangle
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Points : 6
    Points
    6
    Par défaut
    J'ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public WithEvents rectangle As quelquechose.rectangle
    rien n'y fait, aucun résultat, aucun message d'erreur je suis à court d'idée

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/07/2017, 10h49
  2. Réponses: 0
    Dernier message: 06/03/2016, 05h29
  3. [XL-2007] Macro VBA pour imprimer plusieurs onglets sur une feuille recto verso
    Par oekoniko dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/03/2014, 15h24
  4. Réponses: 1
    Dernier message: 14/06/2013, 15h06
  5. Réponses: 9
    Dernier message: 24/05/2010, 02h05

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