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 :

Erreur sur la 1ere ligne de filtre [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 968
    Par défaut Erreur sur la 1ere ligne de filtre
    Bonjour le Forum,

    je vous sollicite aujourd'hui car je ne trouve pas la solution lorsque je dois
    afficher la 1ere ligne résultante d'un filtre

    Box1 alimente Box 2 puis BOx2 alimente Box3

    j'ai donc dans le code suivant 3 Box qui s'alimentent et lorsque le filtre
    résultant ne comporte qu'une seule ligne ( = 5 ) cela ne marche pas
    par contre il fonctionne parfaitement pour toutes les autres lignes et je ne trouve pas la solution

    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
     
    Application.ScreenUpdating = False
    Me.Box3.Clear
    If Me.Box1.ListIndex > -1 Then
        With Sheets("TR" & Box1.Value)
           If .AutoFilterMode Then .Range("A4").AutoFilter
           NbLignes = .Cells(Rows.Count, "A").End(xlUp).Row
           .Range("A4").AutoFilter Field:=1, Criteria1:=Me.Box2.Value
           For Each c In .Range("B4:B" & NbLignes).SpecialCells(xlCellTypeVisible)
              With Me.Box3
                If c.Offset(0, 0) <> Empty Then
                 .AddItem c.Offset(0, 0)
                 .List(.ListCount - 1, 1) = c.Row
                End If
              End With
           Next c
          .Range("A4").AutoFilter
        End With
    End If

    merci de bien vouloir m'éclairer
    A+

  2. #2
    Expert éminent 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
    Par défaut
    essaies comme ceci
    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
    Dim NbLignes As Long
    Dim c As Range
     
    Application.ScreenUpdating = False
    Me.Box3.Clear
    If Me.Box1.ListIndex > -1 Then
       With Sheets("TR" & Box1.Value)
          .AutoFilterMode = False
          NbLignes = .Cells(.Rows.Count, "A").End(xlUp).Row
          .Range("A4:A" & NbLignes).AutoFilter Field:=1, Criteria1:=Me.Box2.Value
          If .Range("B4:B" & NbLignes).SpecialCells(xlCellTypeVisible).Count > 1 Then
             For Each c In .Range("B5:B" & NbLignes).SpecialCells(xlCellTypeVisible)
                With Me.Box3
                   If c.Value <> "" Then
                      .AddItem c.Value
                      .List(.ListCount - 1, 1) = c.Row
                   End If
                End With
             Next c
          End If
          .AutoFilterMode = False
       End With
    End If

  3. #3
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 968
    Par défaut RE ...
    merci mercatog


    non malheureusement , c'est toujours le même problème
    lorsque la ligne filtrée résultante égale à la 1ere ligne du tableau
    ( ici lorsqu'il s'agit de la ligne 5 )
    çà ne plante pas mais cela ne donne pas le résultat
    par contre pour les autres lignes càd > 5 c'est marche nickel (???)

    je ne comprends pas pourquoi

    désolé
    A+

  4. #4
    Expert éminent 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
    Par défaut
    lorsque tu utilise le filtre, bien sûr ta ligne 4 est celle des titres de colonnes, c'est ça?

  5. #5
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 968
    Par défaut RE
    MEA CULPA mercatog

    Oui la ligne 4 c'est bien la ligne des colonnes , je viens de comprendre
    après une AM de recherche ( )
    en fait , j'avais 2 pb distincts :
    1) le résultat de la 1ere ligne de filtre qui fonctionne maintenant grâce au test que tu as fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If .Range("B4:B" & NbLignes).SpecialCells(xlCellTypeVisible).Count > 1 Then
    ....
    Endif
    2) le traitement qui suit le résultat de la Box3 qui "ciblait" sur les lignes > 5 et non pas sur les lignes > 4 , ceci expliquait pourquoi je ne voyais pas la première ligne résultante (....)

    Voilà qui est mieux et çà marche nickel maintenant

    Merci encore pour l'aide et bravo pour la rapidité
    A+ et Bonne Fin de WE

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/05/2008, 12h06
  2. message d'erreur sur une ligne inexistante
    Par zabdaniel dans le forum Langage
    Réponses: 3
    Dernier message: 03/12/2007, 14h39
  3. Réponses: 8
    Dernier message: 18/11/2006, 12h04
  4. VBA-E erreurs sur nb de col ou de lignes
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/10/2006, 22h55
  5. erreur sur un non filtre
    Par nico.chev dans le forum Access
    Réponses: 1
    Dernier message: 20/09/2005, 12h16

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