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 :

[VBA-E]recherche de lignes TOP et BOTTOM


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Par défaut [VBA-E]recherche de lignes TOP et BOTTOM
    Bonsoir tout le monde,

    Je cherche à faire trouver la ligne du top et du down après avoir fait un filtrage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim firstrow,lastrow as long
    range("A1").select
    'activer le filtre
    selection.autofilter
    selection.autofilter field:=1,criteria1:="machin"
     
    'rechercher la 1ere ligne et la dernière
    lastrow=Range("A1").End(xlDown).Row
     
    'fermer le filtre
    selection.autofilter

    je trouve correctement la derniere ligne
    mais pr trouver la ligne qui commence, j'ai eu bcp de mal
    c la ligne juste en bas de l'entete.

    Mon besoin est de juste mettre après ces données après le filtrage dans une table de 2 dimension pour les traiter.

    Je suis preneur de vos idées.
    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Peut-etre y'a-t-il plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If UsedRange.SpecialCells(xlCellTypeVisible).Rows.Count = 1 Then
        firstrow = -1 ' pas de resultat au filtre
    ElseIf Intersect(Range("A2"), UsedRange.Columns(1).SpecialCells(xlCellTypeVisible).Areas(1)) Is Nothing Then
        firstrow = UsedRange.Columns(1).SpecialCells(xlCellTypeVisible).Areas(2).Row
    Else
        firstrow = 2
    End If

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Par défaut
    ça a l'air pas mal ta réponse
    je vais le tester

    merci

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Par défaut
    Citation Envoyé par dadavyvy
    Peut-etre y'a-t-il plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If UsedRange.SpecialCells(xlCellTypeVisible).Rows.Count = 1 Then
        firstrow = -1 ' pas de resultat au filtre
    ElseIf Intersect(Range("A2"), UsedRange.Columns(1).SpecialCells(xlCellTypeVisible).Areas(1)) Is Nothing Then
        firstrow = UsedRange.Columns(1).SpecialCells(xlCellTypeVisible).Areas(2).Row
    Else
        firstrow = 2
    End If
    ça a pas marché.

    Il me retourne -1, même j'ai bcp de lignes après le filtrage, c pas logique.

    SOS tjrs!!

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    OK je corrige :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Range("A65536").End(xlUp).Row = 1 Then
        firstrow = -1 ' pas de resultat au filtre
    ElseIf Intersect(Range("A2"), UsedRange.Columns(1).SpecialCells(xlCellTypeVisible).Areas(1)) Is Nothing Then
        firstrow = UsedRange.Columns(1).SpecialCells(xlCellTypeVisible).Areas(2).Row
    Else
        firstrow = 2
    End If
    Ca me fait penser que ton lastrow n'est pas correct s'il n'y a pas de résultat. C'est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lastrow = Range("A65536").End(xlUp).Row

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/09/2010, 16h05
  2. [VBA-E]recherche de toutes lignes avec zero
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 10/06/2006, 23h33
  3. [VBA-E]recherche d'une ligne
    Par calimero91 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/01/2006, 12h11
  4. [VBA-E] rechercher une ligne pour remplacer?
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/12/2005, 10h31
  5. [VBA][Excel]Insérer une ligne
    Par loverdose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2005, 16h27

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