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 :

Probleme avec la methode Find


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut Probleme avec la methode Find
    Bonjour à tous.

    J'aurais besoin d'aide.
    J'ai beaucoup de difficultés avec le language VBA.

    Merci d'avance à ceux qui pourront m'aider.


    J'ai une variable DateValeur contenant une date.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'Je suis sur un classeur.
    'Ma colonne A contient des dates.
    'Et je me place sur la ligne contenant la date du jour.
     
      With Worksheets("Feuil1")
            .Activate
            .Columns(1).Find(Date).Select
        End With
     'Je stock le numero de cette ligne dans une variable car j'en aurais besoin.   
    Num_lign = ActiveCell.Row
    'Je verifie que c'est bien la date du jour
    MsgBox Num_lign
    Je cherche alors a balayer ma colonne A à partir de la cellule contenant la date du jour avec un pas de -1(Donc jusqu'à la cellule A1) .
    Et je veux trouver la cellule ou il y a la date DateVAleur.

    Savez vous comment je dois m'y prendre.
    J'ai essayé avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.Select
    Selection.Find(What:=Date_de_Valeur, After:=ActiveCell, LookAt:=xlWhole, SearchDirection:=xlPrevious).Activate
    Mais ça ne fonctionne pas.
    C'est probablement parce que je ne sais pas utiliser la methode find.

    Selection.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection,
    MatchCase, MatchByte)

    Je commence tout juste a manipuler le language VBA.
    Et j'ai plus de difficultés que ce à quoi je m'attendais.

    Merci de votre aide et de votre compréhension.
    Cordialement.

  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
    Bonjour

    Une proposition
    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
    Dim c As Range
    Dim Num_Lig As Long
     
    With Sheets("Feuil1")
        Set c = .Range("A:A").Find(Date, LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then
            Num_Lig = c.Row
            Set c = Nothing
        End If
        If Num_Lig > 0 Then
            MsgBox Num_Lig
            'Suite de ton code
        Else
            MsgBox "Date inéxistante"
        End If
    End With

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut
    Bonjour mercatog.

    Tout d'abord merci de ta réponse.


    Mais ce n'est pas ce que je cherche.
    Je me suis probablement mal exprimé.

    Ce code me trouve la date du jour.
    J'ai déjà fais le code pour trouver la date du jour.

    J'ai une colonne A ou il y a que des dates.
    Je me suis placé dans la cellule contenant la date du jour.
    ie : 24/06/2011

    Et voila mon problème :
    Je voudrais remonter la colonne(car la date à trouver est toujours inférieur à la date du jour) et trouver la cellule ou il y a la date 16/06/2001 par exemple.
    Cette date étant contenu dans une variable nommé Date_de_Valaur par exemple.

    J'ai essayer de construire ça avec FIND mais je n'y parviens pas.
    Pourrais tu m'aider s'il te plaît???

    Et merci encore de prendre le temps de me répondre.

    Cordialement.

  4. #4
    Expert confirmé 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 : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

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

    En te basant sur le code de Mercatog, as-tu essayé de remplacer "Date" (ligne 5) par ta variable "Date_de_Valaur" ?

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut
    Oui, ça marche très bien.
    Merci beaucoup.

    Mais dans ce code.
    On balaye toute la colonne A.
    Est ce que si la date se trouve sur la ligne 60000 par exemple ma macro ramera.

    En fait étant donné que la date recherché est toujours très proche de la date du jour et toujours un peu avant, je pensais que partir de la date du jour serait plus rapide et plus judicieux.

    Mais je vous avouerais que je n'ai pas assez manipulé VBA pour savoir ce genre de chose.
    Est ce que plus les lignes à balayer sont nombreuses et plus la macro met du temps à tourner?????

    Cordialement.

Discussions similaires

  1. probleme avec la methode find or createQuery
    Par chady dans le forum Hibernate
    Réponses: 0
    Dernier message: 19/02/2009, 01h04
  2. Probleme avec la methode readLine()!
    Par thenightmare1985 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 26/10/2006, 20h00
  3. [JTextArea]Probleme avec la methode select
    Par caneman dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 30/07/2006, 14h50
  4. [VB.NET] Probleme avec la methode ReadToEnd
    Par Aspic dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/12/2005, 21h10
  5. [Struts] Problème avec la méthode validate
    Par clement42 dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/06/2005, 10h52

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