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 :

Afficher les adresses des cellules sélectionnées dans le résultat d'un filtre


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 31
    Points
    31
    Par défaut Afficher les adresses des cellules sélectionnées dans le résultat d'un filtre
    Bonjour à tous,

    Objectif : Afficher les adresses des cellules sélectionnées dans le résultat d'un filtre. Code valable pour les 3 cas suivants :

    Contexte : soit une liste de valeurs dans les cellules de A1 à B6 avec un filtre (données / filtre / filtre automatique)

    1er cas :
    Un filtre sur la colonne B permet d'afficher les lignes 1,2,3,5,6 de cette liste.

    Je sélectionne A3 et A5 (cliqué glissé, A4 n'est pas visible) + A6 (avec Ctrl).

    Objectif : afficher dans la cellule C1 (avec du code VBA) uniquement les adresses des cellules filtrées et sélectionnées.

    Pour cet exemple, dans la cellule C1 doit s'afficher A3;A5;A6 ou $A$3;$A$5;$A$6

    2ème cas
    Même résultat du filtre précédent.
    Si je sélectionne uniquement A6. C1 doit afficher A6 ou $A$6

    3ème cas
    Je ne filtre pas la liste, je sélectionne une ou plusieurs cellules dans la colonne A.
    Résultat attendu : les adresse des cellules s'affichent en C1.


    Un grand merci à la personne qui peut m'apporter la solution.

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Une solution éventuelle
    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
    Sub test()
    Dim cel As Range, coll As New Collection, i As Integer
     
    Cells(1, 3).ClearContents
     
    For Each cel In Selection
        If cel.Rows.Hidden = False Then coll.Add cel.Address
    Next
     
    For i = 1 To coll.Count
        If Cells(1, 3) = "" Then
            Cells(1, 3) = coll(i)
        Else
            Cells(1, 3) = Cells(1, 3) & ";" & coll(i)
        End If
    Next
     
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Autre solution (je ne sais pas pourquoi je me suis em...der à passer par une collection, ça me traversait l'esprit à ce moment là )

    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
    Sub test2()
    Dim cel As Range
     
    Cells(1, 3).ClearContents
     
    For Each cel In Selection
        If cel.Rows.Hidden = False Then
            If Cells(1, 3) = "" Then
                Cells(1, 3) = cel.Address
            Else
                Cells(1, 3) = Cells(1, 3) & ";" & cel.Address
            End If
        End If
    Next
     
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    Un grand merci à toi Fring bravo bravo bravo !!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/03/2015, 20h14
  2. [Debutant] Recupération des coordonnées des cellules sélectionnées dans un DataGrid
    Par yal001 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 27/08/2009, 10h54
  3. Adresse des cellules sélectionnées dans le résultat d'un filtre
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/04/2008, 11h59
  4. Réponses: 6
    Dernier message: 14/11/2007, 15h51
  5. Réponses: 23
    Dernier message: 23/05/2006, 16h52

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