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 :

Lien commande sur feuille et userform


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Lien commande sur feuille et userform
    Bonjour à tous,

    Je débute en VBA, et je bloque depuis quelque temps sur le point suivant:

    J'ai une feuille excel avec des boutons sur chaque ligne de la feuille. Ce bouton permet d'ouvrir un userform pour la saisie de donnée. Je souhaite garder cette configuration des boutons sur chaque ligne pour modifier plus facilement les données une fois saisies une première fois.

    Donc dans la logique lorsque je sélectionne ce bouton, celui-ci doit être capable de donner l'information de la ligne a la variable présente dans le userform pour que les données saisies soient dans la bonne ligne.
    En espérant que l'on m'a compris

    Car je ne vois pas du tout comment coder cela...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Points : 493
    Points
    493
    Par défaut
    Bonsoir,

    Je ne sais pas si cela te va!?

    double clique sur une ligne !

    Cordialement,
    Cordialement,

    Jijie

  3. #3
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    'Dans le Userform1
    Option Explicit
    Public LaLigne As Long
    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
     
    'Dans le module de classe "Classe1"
     
    Public WithEvents GrLignes As MSForms.CommandButton
     
    Private Sub GrLignes_Click()
     
        Call OuvrirUserform1(GrLignes)
     
    End Sub
     
    Sub OuvrirUserform1(obj)
     
        LigneHaut = Range(GrLignes.TopLeftCell.Address).Row
        LigneBas = Range(GrLignes.BottomRightCell.Address).Row
        If LigneHaut <> LigneBas Then
            MsgBox "Ajuste la position du bouton [" & GrLignes.Caption & "] [" & GrLignes.Name & "] "
        End If
     
        UserForm1.LaLigne = LigneBas
        UserForm1.Label1.Caption = LigneBas
        UserForm1.TextBox1.Text = Worksheets("Feuil1").Cells(LigneBas, 1).Value
        UserForm1.Show vbModeless
    End Sub
    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
     
    'Dans le code de la Feuille
    Option Explicit
     
    Dim Bouton() As New Classe1 'Le module de classe s'appelle Classe1. C'est lui qui contient les procedures
     
    Sub Initialise__Les_Boutons()
     
        Dim Nb As Integer, oB As OLEObject
        For Each oB In Feuil1.OLEObjects
            If TypeName(oB.Object) = "CommandButton" Then
                Nb = Nb + 1
                ReDim Preserve Bouton(1 To Nb)
                Set Bouton(Nb).GrLignes = oB.Object
            End If
        Next
     
    End Sub
     
    Private Sub Worksheet_Activate()
        Initialise__Les_Boutons
    End Sub
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Initialise__Les_Boutons
    End Sub
    Cordialement

    Docmarti.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    merci infiniment Docmarti, ton code marche parfaitement, et répond tout a fait à ma requête! C'est assez impressionnant je n'y serais jamais arrivé seul.

    Cependant je n'arrive pas a finir mon idée par moi même, en effet j'ai plusieurs combobox sur mon userform et je souhaiterai que les valeurs choisies dans le combobox s'inscrive sur la même ligne que le bouton sélectionné.

    Par exemple si je clique sur le bouton 3 se trouvant sur la troisième ligne, le userform s'ouvre, je choisi l'item que je veux dans le combobox, une fois sélectionné celui ci doit s'inscrire en ligne 3(donc doit utiliser la variable ligneBas), colonne "B".

    J'ai testé différentes méthodes aucune marchant...

    D'avance merci!

  5. #5
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Utilise la variable LaLigne dans Cells(LaLigne, "B").formula.
    Car la variable Laligne dans le Userform a recu la valeur de LigneBas grâce à
    UserForm1.LaLigne = LigneBas


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub ComboBox1_Click()
     
    Dim valeur As String
     
    valeur = ComboBox1.List(ComboBox1.ListIndex)
     
    If LaLigne > 0 Then
     ThisWorkbook.Worksheets("Feuil1").Cells(LaLigne, "B").Formula = valeur
    End If
     
    End Sub
    Cordialement

    Docmarti.

Discussions similaires

  1. [XL-2007] Désactiver bouton sur feuille via userform
    Par cathodique dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/09/2013, 10h22
  2. Réponses: 3
    Dernier message: 07/07/2008, 10h29
  3. Lien Email sur userForm
    Par 20.100 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/03/2008, 12h48
  4. Liens entre code feuille et Userform.
    Par stéphane75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/07/2007, 16h00
  5. Réponses: 7
    Dernier message: 15/12/2006, 16h14

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