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 :

Adresse d'une case d'option [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut Adresse d'une case d'option
    Bonjour,

    Pour une checklist, j'utilise des cases d'option (ActiveX) dans une feuille Excel.
    Je dois appliquer un traitement sur la ligne en regard de laquelle se trouve une case d'option.
    En VBA, je voudrais connaître la ligne sur laquelle la case d'option se trouve.
    Quelqu'un connaît l'instruction qui la renvoie ?

    Merci d'avance !

    Henri

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    un contrôle activex pouvant être placé et dimensionné totalement librement sur une feuille de calcul, "en regard d'une ligne" n'a pas vraiment de sens. A quoi détermines-tu donc que cette condition est remplie ? -->>
    - à la valeur de sa propriété top ?
    - à la position de son côté inférieur ?
    - au fait que sa surface d'occupation de telle cellule est supérieure à celle de l'occupation de cellules adjacentes ?
    etc ...

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut
    Je suis bien d'accord, c'est là mon souci.
    Y aurait-il un moyen d'associer une des propriétés dont tu parles à une ligne ?

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    re
    meme pour les activx il faut passer par la collection "shapes"

    MsgBox ActiveSheet.Shapes("mon ctrl").TopLeftCell.Address donne l'adress de la cellule
    le ".row" donne la ligne
    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
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut
    Merci Patrick, j'essaierai ça demain...
    Bonne soirée.
    Henri

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut
    Finalement, j'ai trouvé une autre solution qui me donnera plus de certitudes quant aux lignes à traiter.
    Au moment du clic sur l'une ou l'autre case d'option, je vais enregistrer dans une cellule masquée le n° de ligne et tous les autres paramètres dont j'ai besoin pour mes petits effets d'optique.
    Comme disait Einstein: "think different". Il suffisait d'y penser...

    Merci à vous deux pour vos suggestions.

    Henri

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour henry
    pourquoi faire simple quand on peut faire compliqué normalement c'est l'inverse qui est primé

    teste cela dans un classeur vierge mais lui un optionbutton et met lui ca pour son click

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub OptionButton1_Click()
    MsgBox "je suis dans la ligne " & ActiveSheet.Shapes("OptionButton1").TopLeftCell.Row
    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
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut
    Cher Patrick,

    Ton code fonctionne très bien et je t'en remercie mille fois, MAIS... (il y a toujours un MAIS, sinon, ce ne serait pas drôle... )
    J'ai une centaine de boutons dans cette feuille. Si je veux que ton instruction soit efficace, je dois pouvoir la copier/coller telle quelle sans y entrer à chaque fois le nom de la case d'option.
    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MsgBox "je suis dans la ligne " & ActiveSheet.Shapes(Name).TopLeftCell.Row ' fonctionne pas
    MsgBox "je suis dans la ligne " & ActiveSheet.Shapes(OptionButton.Name).TopLeftCell.Row ' fonctionne pas
    ' en désespoir de cause, j'ai même essayé :
    MsgBox "je suis dans la ligne " & ActiveSheet.Shapes(Name.OptionButton).TopLeftCell.Row ' fonctionne pas non plus
    Un amateur n'a pas la compétence d'un pro, c'est bien connu, alors dis-moi, quelle est l'erreur de syntaxe là-dedans ?

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    Ok
    je comprends mieux tu a X optionbutton sur ta feuille
    il te faut donc une classe control (module classe)
    de doit avoir un exemple quelque part je vais essayé de le retrouver
    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

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    une petite base pour demarrer

    erssaie dans un fier vierge
    sur un sheets met X optionbutton

    dans le module de ce sheets met ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cl As New optbutton_on_feuille
    Private Sub Worksheet_Activate()
    cl.init_option_on_feuille ActiveSheet
    End Sub
    ajoute un module classe dans le classeur et donne lui le nom optbutton_on_feuille
    et met lui ce code tout simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public WithEvents Oopt As MSForms.OptionButton
    Dim cls(300) As New optbutton_on_feuille
    Public mafeuille As Object
    Function init_option_on_feuille(feuille)
        For Each obj In feuille.OLEObjects
            If Left(obj.Name, 12) = "OptionButton" Then
                i = i + 1: Set cls(i).Oopt = obj.Object
            End If
        Next
    End Function
    Private Sub Oopt_Click()
        maligne = Oopt.TopLeftCell.Row
        MsgBox " je m'appele " & Oopt.Name & vbCrLf & " je suis en ligne " & Oopt.TopLeftCell.Row
    End Sub
    change de feuille et reviends sur le feuille ou sont les optionbutton
    clique dessus
    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

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut heuuuuu.....
    Merci pour le code, mais à le voir, tu as 2.500 longueurs d'avance sur moi et je t'avoue que je suis un peu largué.

    Voici ce que j'ai fait : J'ai créé ceci dans une nouvelle feuille:

    Nom : Capture.JPG
Affichages : 190
Taille : 21,9 Ko

    Dans le module, j'ai ceci :

    Nom : Capture2.JPG
Affichages : 187
Taille : 38,6 Ko

    Et dans le module de classe, j'ai ceci :

    Nom : Capture3.JPG
Affichages : 185
Taille : 68,0 Ko

    Quand je clique; les cases d'option fonctionnent mais rien ne s'affiche. Tu as une idée ?

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    re

    non pas un module standard le module de la feuille concernée!!!

    Nom : demo2.gif
Affichages : 212
Taille : 354,7 Ko

    Nom : Capture2.JPG
Affichages : 203
Taille : 54,5 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

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut Ouiiiiiiiiiii....
    Patrick,

    Il doit manquer quelque chose.
    Vidéo pour vidéo, je t'ai annexée une petite vidéo de ce que j'ai fait. Tu peux la lire facilement avec un navigateur quelconque (Chrome, Iexplorer, etc...)

    Qu'est-ce que je n'ai pas compris ?

    Merci d'avance

    Henri
    Fichiers attachés Fichiers attachés

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    re oui je sais ou est l'erreur

    alors le code de la feuille est declanché par l'evenement activate de la feuille autrement dis toi tu n'a qu'une feuille tu ne peut donc pas declancher l'evenement activate car comme la feuil 1 est toute seule elle est deja activée

    tu va donc mettre ce code dans le "thisworkbook" evenement open en remplacant activesheet par le nom du sheets

    donc ce sera pour toi dans le module"thisworkbook"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cl As New optbutton_on_feuille
    Private Sub Workbook_Open()
    cl.init_option_on_feuille Sheets("Feuil1")
    End Sub
    enregistre ton classeur et réouvre le que du bonheur
    un exemplaire
    Fichiers attachés Fichiers attachés
    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

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    Ps :comment a tu fait ton swf ca m'interesse
    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

  16. #16
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut Que du bonheur !!!
    Mille mercis ! Je n'y serais jamais arrivé sans toi.
    Je vais appliquer ça à ma feuille originale et voir ce que ça donne.

    Comme à chaque fois, je me dis que je vais suivre des cours plutôt que d'abuser de la bonne volonté des forums.
    J'espère que cette fois-ci je prendrai le temps.

    Bonne soirée. Je t'enverrai le résultat.

    Henri

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    de rien henry au plaisir

    attenttion quand meme !
    c'est une base pour te montrer comment on genere un meme evenement pour X controls
    il te faudra dimer tes variable je le fait jamais du premier coup je suis un cochon
    et dans l'evenement Oopt_click renvoyer le row ou l'address ou la column comme tu veux dans une sub ou fonction dans un module standard afin de t'enservir pour ce que toulais faire a la base

    bref la c'est juste un msgbox pour te montrer
    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

  18. #18
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut SWF
    Il s'agit d'un petit utilitaire appelé Jing. Sympa, hein ?!
    Gratuit mais maximum 5 minutes d'enregistrement. Ceci dit ma version date de Mathusalem.
    J'aurais voulu t'annexer la version que j'utilise, mais Dvp me dit que le fichier est trop volumineux (6,5 Mb).
    Communique-moi ton adresse mail je te l'enverrai.

    Je suis content de pouvoir te rendre service, à mon tour !

    Henri

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

Discussions similaires

  1. [XL-2007] Appliquer un type de filtrage selon une case d'option
    Par apt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/07/2012, 14h00
  2. Réponses: 6
    Dernier message: 28/06/2012, 00h24
  3. Récuperer la valeur d'une case d'option
    Par majudis dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/03/2011, 14h19
  4. Verifier qu'une case d'option est cochée!
    Par Chipss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/10/2010, 17h50
  5. Ouvrir un fichier désigné par son adresse dans une case
    Par TomGratte dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2009, 12h52

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