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 :

.find avec .end [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut .find avec .end
    bonjour je cherche à combiner c'est deux fonctions afin de rechercher la dernière valeur rechercher

    exemple:
    on a une colonne avec des valeurs

    1 (ligne 1 excel)
    1 (ligne 2 excel)
    1 (ligne 3 excel)
    2 (ligne 4 excel)
    2 (ligne 5 excel)
    2 (ligne 6 excel)
    3 (ligne 7 excel)
    3 (ligne 8 excel)
    3 (ligne 9 excel)

    je cherche à faire en sorte qu'il me donne la ligne du dernier 3 avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ligne = cells.find("3").end(xlDescending).Row
    le soucis c'est que ça ne marche pas.
    il me donne la ligne 7 à la place de la ligne 9

    si quelqu'un pourrait m'aider

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bonjour,
    si tu regardes l'aide F1 de vba sur le mot "Find", tu trouveras les propriétés de cette fonction, dont la propriété qui permet de définir le sens de la recherche, donc pas besoin du End.

    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set ligne = Cells.Find("3", , , , , 2)

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut
    bien vu!!

    je te remercie

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut
    je reviens sur le sujet car ça ne marche pas.

    donc je reformule mon problème

    je cherche une commande qui permet de rechercher une valeur dans une colonne est de me donner la position de la dernière ligne où se trouve cette valeur.

    je remet mon exemple
    supposons que les valeurs sont la colonne A
    A
    1 (ligne 1 excel)
    1 (ligne 2 excel)
    1 (ligne 3 excel)
    2 (ligne 4 excel)
    2 (ligne 5 excel)
    2 (ligne 6 excel)
    3 (ligne 7 excel)
    3 (ligne 8 excel)
    3 (ligne 9 excel)


    donc j'aimerai avoir si je recherche 3 qu'il me donne l'adresse du dernier 3 qui se trouve dans la colonne A
    donc se sera A9 dans mon exemple.

  5. #5
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    quand tu dis ça ne marche pas soit plus clair.
    dans le premier post tu dis :
    je cherche à faire en sorte qu'il me donne la ligne du dernier 3 avec
    le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set ligne = Cells.Find("3", , , , , 2)
    If Not ligne Is Nothing Then MsgBox ligne.Row
    fait cela, ça marche.

    maintenant tu dis :
    donc j'aimerai avoir si je recherche 3 qu'il me donne l'adresse du dernier 3 qui se trouve dans la colonne A
    donc se sera A9 dans mon exemple.
    et bien tu adaptes par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set ligne = Cells.Find("3", , , , , 2)
    If Not ligne Is Nothing Then MsgBox ligne.Address
    ce code affiche l'addresse ou se trouve le dernier 3, ça marche
    As-tu regarder sur l'instruction Find?

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut
    oui ça marche autant pour moi j'ai juste oublié une virgule

    erreur de frappe

    merci à toi

  7. #7
    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
    J'ajoute qu'il faut déclarer certains paramètres de Find
    personnellement je ferai comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub aaa()
    Dim c As Range
     
    With Sheets("Feuil1")
        Set c = .Range("A1", .Range("A" & .Rows.Count).End(xlUp)).Find(3, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious)
        If Not c Is Nothing Then
            MsgBox c.Address
            Set c = Nothing
        End If
    End With
    End Sub
    à voir notamment si tu cherche les valeurs ou dans le résultat de formules
    LookIn:=xlValues ou xlFormulas
    LookAt:=xlWhole ou xlPart

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

Discussions similaires

  1. Problème avec End
    Par Nicos57 dans le forum C++
    Réponses: 5
    Dernier message: 04/08/2007, 15h35
  2. Méthode find avec plusieurs mots à chercher
    Par domb_st dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/06/2007, 17h33
  3. ActiveRecord - Find avec "superieur"
    Par Al3x dans le forum Ruby on Rails
    Réponses: 3
    Dernier message: 19/05/2007, 14h57
  4. Réponses: 1
    Dernier message: 11/01/2007, 14h20
  5. [VB6] pb avec critère sur find avec rs ADODB
    Par Mymi dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 14/08/2006, 15h45

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