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 :

selection d'un champs d'un filtre automatique en vba [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 33
    Points : 30
    Points
    30
    Par défaut selection d'un champs d'un filtre automatique en vba
    Bonjour a tous
    Ma question peut sembler simpliste mais je ne voie pas comment y arriver.

    J'effectue un filtre élaboré sur un tableau, il me reste donc une ligne sur ce dernier
    Il faut que j'arrive a séléctionner les cellule B et Dde cette ligne précisement. Ceci doit être en VBA.
    Mon problème est que cette ligne varie en fonction du filtre effectué.(un coup c'est la 6 un coup la 18...)
    Comment faire ?
    Merci d'avance

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    bonjour

    en ne prenant que les lignes visibles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim plage as range
    Set plage = sheets("Sel").range("A2:J1000").specialcells(xlcelltypevisible)

  3. #3
    Expert éminent 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 : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

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

    Ce code sélectionnera la dernière ligne d'un filtre (suffisant dans ton cas puisque 1 seule ligne attendue)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim i As Long
     
    For i = 2 To Range("A:A").End(xlDown).Row
        If Rows(i).Hidden = False Then
            Range("B" & i & ":D" & i).Select
        End If
     
    Next i
    EDIT : Bien vu wilfried_42 c'est encore mieux

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    re

    Et serait -il possible de prendre les cellules ainsi seléctionner et d'enlever leur verrouillage d'après vous ?
    La encore mes éssais se sont révélés infructueux
    merci

  5. #5
    Expert éminent 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 : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Pour enlever le verrouillage d'une cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Locked = False

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut
    Bonjour,

    Citation Envoyé par wilfried_42 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim plage as range
    Set plage = sheets("Sel").range("A2:J1000").specialcells(xlcelltypevisible)

    Voici une petite correction pour éviter le nom de plage en dur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim plage as range
    Set plage = sheets("Sel").AutoFilter.Range.specialcells(xlcelltypevisible)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    d'accord, on a donc sélélctionné la ligne qui à été filtré
    Mais comment désormais séléctionner la cellule B de cet élément filtré (qui va passer de B5 à B8,B300... suivant la séléction) ???

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut
    Ajouter au code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ValeurColonneB = plage.Cells(1,2)
    ValeurColonneD = plage.Cells(1,4)

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    J'essaye de mettre cela en vba mais il ne me le prend pas et je ne comprend pas pourquoi ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim plage As Range
    Sheets("donnéeconsultation").Range("A2:J5000").SpecialCells (xlCellTypeVisible)
    valeurcolonneB = plage.Cells(1, 2)
    ValeurColonneD = plage.Cells(1, 4)
     
    valeurcolonneB.Select
    Selection.Locked = False
    je veux juste qu'il me selectionne la cellule de la colonne B qui reste après exectution du filtre

  10. #10
    Expert éminent 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 : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Essaie comme cela

    Ici je récupère la 2 eme série de lignes visible ( la premiere etant la ligne de titre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim plage As Range
    Dim strAdresse() As String
     
    strAdresse = Split(Range("A:C").SpecialCells(xlCellTypeVisible).AddressLocal, ";")
    Set plage = Range(strAdresse(1))
     
    plage(1, 2).Locked = False

  11. #11
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Lig As Long
    With Sheets("Feuil1")
         .AutoFilterMode = False
         .Range("A:A").AutoFilter field:=1, Criteria1:="toto"
         Lig = .Range("A1").End(xlDown).Row
         msgbox Lig
    End With

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

Discussions similaires

  1. [XL-2007] Filtre automatique en VBA sur plusieurs niveaux
    Par jlduboc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/05/2015, 16h46
  2. [XL-2007] Filtre automatique et VBA
    Par lps02 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/03/2012, 23h03
  3. [Toutes versions] Filtre automatique avec vba
    Par sabzzz dans le forum Contribuez
    Réponses: 0
    Dernier message: 13/04/2010, 21h17
  4. [XHTML] Filtre automatique pour la selection d'un fichier
    Par nasix dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 16/05/2007, 19h11
  5. Filtre automatique en VBA
    Par kikou44 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/07/2006, 21h24

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