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 :

Récupérer l'adresse d'une cellule liée [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut Récupérer l'adresse d'une cellule liée
    Bonjour,

    Tout d'abord désolé pour le titre pas forcément très explicite, je vais essayer d'être plus clair ici.

    Je cherche actuellement lors du click sur une checkbox à:
    1-Récupérer le numéro de ligne de la cellule liée (LigneCase dans le code à suivre)
    2-Récupérer la valeur de la 1ere cellule de cette ligne (NumeroCas)
    3-Rechercher la cellule contenant "A.NuméroCas" et récupérer le numéro de sa ligne. (LigneAmdec)
    4-Cacher ou Afficher cette ligne en fonction de la valeur de la checkbox.

    J'ai fait le code suivant mais dès la 1ere ligne ça plante...
    "Qualificateur incorrect" pour le LinkedCell

    En cherchant cette erreur sur internet je ne vois pas de cas semblable et je n'ai pas non plus trouvé d'exemple de code pour la 1ere étape de mon processus.

    Du coup je n'ai pas pu tester la suite du code donc ma question principale est la récupération du numéro de ligne de la cellule liée de ma checkbox.

    [EDIT: j'ai testé la suite en mettant "à la main" le numéro de ligne et ca fonctionne.]


    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
    Private Sub CheckBox1_Click()
     
    Dim LigneCase As Double
    Dim NumeroCas As String
    Dim NumeroAmdec As String
    Dim LigneAmdec As String
     
    LigneCase = CheckBox1.LinkedCell.Row
     
    NumeroCas = ActiveSheet.Cells(LigneCase, 1).Value
     
    NumeroAmdec = "A." + NumeroCas
     
    LigneAmdec = ActiveSheet.Range("A1:IV65536").Find(NumeroAmdec).Row
     
    If CheckBox1.Value = True Then
     
    Rows(LigneAmdec).EntireRow.Hidden = False
     
    Else
     
    Rows(LigneAmdec).EntireRow.Hidden = True
     
    End If
     
    End Sub
    Je remercie d'avance tous ceux qui prendront le temps de m'aider.

    gbbtt

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Pour récupérer l'adresse de la cellule liée à la sélection d'une combobox positionnée sur un onglet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim rg As Range
     
    Set rg = Sheets(Split(ComboBox1.ListFillRange, "!")(0)).Range(Split(ComboBox1.ListFillRange, "!")(1))
     
    MsgBox rg.Cells(ComboBox1.ListIndex + 1, 1).Address
    EDIT : avec la feuille des cellules liées c'est mieux

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut
    Bonjour,

    Merci d'avoir répondu, hélas je n'ai pas réussi à adapter ce code qui est pour moi assez incompréhensible je dois l'avouer meme en cherchant Split et ListFillRange dans l'aide j'ai du mal à comprendre ce que ca fait réellement...

    Sinon j'ai simplement changé les ComboBox en CheckBox et tester simplement ce code et j'ai une erreur sur la méthode ListFillRange.

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Quelques explications

    - ListFillRange est une propriété d'une combobox pour l'alimenter à partir d'une liste de données positionnées dans une feuille (Plage de données)
    Dans l'exemple joint ListFillRange = Feuil2!E8:E14

    - Split permet de séparer des informations en spécifiant le séparateur
    dans le cas de ListFillRange si on prend le séparateur "!" on trouvera a gauche (position 0) le nom de la feuille puis a droite (position 1) la plage de données qui alimente notre combobox
    Sheets(Split(ComboBox1.ListFillRange, "!")(0) = Feuil2
    Sheets(Split(ComboBox1.ListFillRange, "!")(1) = E8:E14

    - Avec ces information il nous est ainsi possible de retrouver l'adresse de la donnée sélectionnée dans la combobox
    rg.Cells(ComboBox1.ListIndex + 1, 1).Address

    Je te joint le fichier
    VBA - Combobox - ListFillRange.xls

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut
    Je comprends bien mieux le fonctionnement merci!
    Le souci c'est que moi je cherche à retrouver l'adresse (et plus précisément la ligne) de la cellule liée d'une CheckBox et non d'une Combobox.
    Et les méthodes List (Index ou FillRange) ne s'applique pas à une CheckBox...

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Le souci c'est que moi je cherche à retrouver l'adresse (et plus précisément la ligne) de la cellule liée d'une CheckBox et non d'une Combobox.
    Et les méthodes List (Index ou FillRange) ne s'applique pas à une CheckBox...
    Ca m'apprendra à ne pas lire correctement
    faut vraiment que j'aille voir un ophtalmo

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

Discussions similaires

  1. Récupérer la valeur et l'adresse d'une cellule
    Par A_blz dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/06/2014, 17h33
  2. Réponses: 1
    Dernier message: 09/05/2014, 20h25
  3. [XL-2007] Récupérer l'adresse d'une cellule sans passer par une macro
    Par Runsh63 dans le forum Excel
    Réponses: 4
    Dernier message: 28/04/2014, 16h09
  4. [XL-2007] Récupérer l'adresse d'une cellule d'un recherchev
    Par Mut dans le forum Excel
    Réponses: 3
    Dernier message: 29/03/2012, 16h27
  5. [VBA-E]récupérer l'adresse d'une cellule
    Par julyBL dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2006, 20h29

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