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 / Find ne cherche pas dans la premiere cellule, comment faire ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut VBA / Find ne cherche pas dans la premiere cellule, comment faire ?
    Bonjour,


    J'ai un problème avec Find : si je cherche avec find une valeur qui se trouve dans la première cellule d'une plage, il ne la trouve pas.
    Comment avec Find prendre en compte la première cellule de ma plage dés le début de le recherche ?
    Note : si mes 2 premières cellule ont pour valeur 1, il s'arrête sur la seconde.

    En plus si la première cellule à pour valeur 1, non seulement il ne la trouve pas et s'arrête sur la première cellule ayant pour valeur 10.



    Pour illustrer mes propos je met un morceau de code.

    Merci pour votre aide.

    Et si qq'un avait un tuto qui explique tous les xlValue , xlWhol ..... ce serait sympa.


    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
    24
    25
     
    Dim plaSemaine As Range
    Set plaSemaine = Range("f" & celPremAnn.Row & ":" & "f" & celDerAnn.Row)  
    MsgBox "Plage d'étude des semaine :  " & plaSemaine.Address
     
     
    '*PLAGE DE CELLULE POUR Les Semaines *
    Dim celPremSem As Range, celDerSem As Range, celDerSemDebut As Range
     
    Dim intSemDebutBis As Integer, intSemFinBis As Integer
    intSemDebutBis = 1
    intSemFinBis = 8
    Set celIncr = plaSemaine.Cells.Find(what:=intSemDebutBis) 'ATTENTION Find commence à la 2éme cellule de la plage
    Set celPremSem = celIncr
    MsgBox "premsem : " & celPremSem.Address
     
    Set celIncr = plaSemaine.Cells.Find(what:=intSemFinBis) 'Cherche la premiere cellule correspondant à Semaine de Fin, mais il nous faut la derniere
    Set celDerSemDebut = celIncr
    'MsgBox "celDerSemDebut : " & celDerSemDebut.Address 'Première cellule de la semaine de fin
    Do
    Set celDerSem = celIncr 'prend la valeur avant qu'elle ne soit incrémenté et testée
    Set celIncr = plaSemaine.Cells.FindNext(after:=celIncr) 'passe a la cellule suivante
     
    Loop While celIncr.Address <> celDerSemDebut.Address And celIncr.Value = intSemFinBis
    MsgBox "derniere cell semaine :  " & celDerSem.Address

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Jète un oeil à find, dans l'aide. Tu as plusieurs paramètres qui t'intéressent.
    pour LookAt, tu dois mettre xlwhole, non xlpart pour chercher la totalité de la cellule et non 1 pour 10
    Ensuite, tu mets plaSemaine.Cells.Find, ce qui représente la totalité de la feuille. Ne peux-tu pas préciser la colonne de la recherche ?
    Enfin, pour trouver une donnée se trouvant sur la 1ère ligne de la colonne, tu dois te placer sur la première ligne d'une autre colonne
    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("C1").select
    Set celIncr = plaSemaine.Range("D1:D" & DerniereLigne).Find(what:=intSemFinBis)
    pour une recherche dans la colonne D.
    C'est l'un des deux cas où une sélection est nécessaire.
    Bonne soirée.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Bonjour ouskel'n'or,

    Merci pour le xlWhole.

    Je ne recherche pas sur tout le document,
    J'ai 3 colonnes : Annee, Semaine (col F), puis les donnees

    Voici le code qui en fonction de la saisie dans de l'Annee défini la plage de cellule correspondante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim plaSemaine As Range
    Set plaSemaine = Range("f" & celPremAnn.Row & ":" & "f" & celDerAnn.Row)  
    MsgBox "Plage d'étude des semaines :  " & plaSemaine.Address
    Puis de la meme facon je determine la plage de cellule sur la colonne F qui correspond à la semaine de début & semaine de fin saisie par l'utilisateur.

    Le HIC, c'est que la 1er ligne de cette nouvelle plage sera la semaine 1.

    Donc si l'utilisateur fait le choix de cette semaine, la première cellule n'est pas prise en compte. Et le calcul ultérieur des données sera faux.

    J'ai bien pensé à mettre "-1" lors de la définition de plaSemaine, mais ca fausse la définition de celDerSem.

    Lorsque j'ai la plage de cellule des semaines, je la transpose sur la colonne des données et je fait une somme.

    Voila, merci pour votre expertise à tous.

    Manu

    PS
    Jète un oeil à find, dans l'aide. Tu as plusieurs paramètres qui t'intéressent.
    pour LookAt, tu dois mettre xlwhole, non xlpart pour chercher la totalité de la cellule et non 1 pour 10
    Existe il un totu qui définisse tous ces paramètres ?
    J'avais regardé l'aide, mais les paramètres sont CITES et pas DEFINIS

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/04/2013, 19h44
  2. [XL-2003] VBA Find ne marche pas dans les formules
    Par Ghorin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/11/2011, 17h56
  3. [Batch] FIND ne cherche pas dans l'intégralité du fichier
    Par Enthau dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 14/01/2011, 12h33
  4. La saisie ne se fait pas dans les bonnes cellules
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/08/2010, 09h14
  5. [XL-2007] recherche cellule et mettre info dans la premiere cellule vide
    Par croky23 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/04/2009, 13h24

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