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 :

Difficulté à récupérer toutes les valeurs correspondant à une clé avec find next.


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    chargee com
    Inscrit en
    Septembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chargee com

    Informations forums :
    Inscription : Septembre 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Difficulté à récupérer toutes les valeurs correspondant à une clé avec find next.
    Cher Tous,

    Je pensais trouver seule mais non je tourne en rond...alors HEEEELLLLLP! Toute jeune débutante en vba (1 semaine) et sur le forum également.
    Alors un grand merci par avance pour votre aide.

    Je tente de récupérer des données en fonction d'une clé de recherche avec la méthode findnext et ÔÔÔ surprise je n'arrive à remonter que la première et la dernière valeur.

    Mon fichier est ainsi constitué : feuille (constitution) où je souhaite lire les informations remontées, feuille ( fond, cellule E5) où se trouve l'élément recherché et enfin la feuille3 (base) où se trouve ma base de donnée.
    Mon objectif était de rechercher la clé E5 dans la colonne A de la feuille base et de remonter toutes les valeurs correspondantes et situées en colonne B dans la feuille consultation.
    Mon code semble bien lire la feuille base dans son entier mais malheureusement ne me remonte que deux valeurs, la première et la derniere.
    En fonction de l'endroit où j'écris mon offset il me remonte parfois la première valeur parfois la seconde valeurs. je pense avoir mal codé le offset pour lui permettre de copier et coller toutes les informations correspondant à la valeur E5.

    Y aurait il quelqu'un pour m'aider... ?????

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub recherche10()
     
    'declaration des variables
    Dim wb As Workbook
    Dim wsdata As Worksheet, wsrecherche As Worksheet, wsconsultation As Worksheet
    Dim cle_destination As Range, c As Range
    Dim contrat As Range, cle_origine As Range
    Dim derAddress As String
     
     
    'initialiser les variables
    Set wb = ThisWorkbook
    Set wsdata = wb.Sheets("base")
    Set wsrecherche = wb.Sheets("fond")
    Set wsconsultation = wb.Sheets("Consultation")
    Set contrat = wsdata.Range("A1 :A19006")
    Set cle_origine = wsrecherche.Range("E5")
     
    'rechercher
     
    With wsdata
     
    Set c = contrat.Find(what:=cle_origine, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
        For Each cle_origine In contrat
     If c.Value = cle_origine.Value Then
     c.Offset(0, 1).Copy destination:=wsconsultation.Range("B8")
     
                If Not (c Is Nothing) Then
    derAddress = c.Address
    Do
    Set c = contrat.FindNext(c)
    Loop While c.Address <> derAddress
     
    End If
    End If
    Next
    End With
    End Sub

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour pruneenurp

    Il faut que tu choisisses : tu fais ta recherche avec FOR...NEXT ou tu la fais avec FIND

    Si tu choisis FOR...NEXT c'est 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
    24
    25
    26
    27
    28
    29
    Sub rechercheForNext()
     
    'declaration des variables
    Dim wb As Workbook
    Dim wsdata As Worksheet, wsrecherche As Worksheet, wsconsultation As Worksheet
    Dim cle_destination As Range, c As Range
    Dim contrat As Range, cle_origine As Range
    Dim derAddress As String
     
     
    'initialiser les variables
    Set wb = ThisWorkbook
    Set wsdata = wb.Sheets("base")
    Set wsrecherche = wb.Sheets("fond")
    Set wsconsultation = wb.Sheets("Consultation")
    Set contrat = wsdata.Range("A1:A19006")
    wsrecherche.Activate
    wsrecherche.Range("E5").Select
     
    Set cle_origine = wsrecherche.Range("E5")
     
     For Each c In contrat
     If c.Value = cle_origine.Value Then
      resultat = resultat + 1
      c.Offset(0, 1).Copy Destination:=wsconsultation.Range("B8").Offset(resultat)
     End If
     Next
     
    End Sub
    Cordialement

    Docmarti.

  3. #3
    Candidat au Club
    Femme Profil pro
    chargee com
    Inscrit en
    Septembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chargee com

    Informations forums :
    Inscription : Septembre 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut ça marche merci
    Ohlalalalalalalala ça marche!!!!!!!
    j'ai dormi 4h par nuit ce we pour n'arriver à rien (j'exagère je commence à comprendre)
    Et hop en deux secondes...MERCI, un grand MERCIIIIIIIIIIIIII!
    Pour le principe j'essaie le find next. (sans le for j'apprends )au passage.

    ENCORE MERCI!!!!!!!

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

Discussions similaires

  1. Récupérer toutes les valeurs possibles d'une variable
    Par Elodie3483 dans le forum SAS Base
    Réponses: 5
    Dernier message: 01/07/2015, 11h29
  2. Ecraser les valeurs d'une matrice avec find
    Par stephanechanteloup dans le forum Scilab
    Réponses: 1
    Dernier message: 09/01/2013, 19h25
  3. [XL-2003] Récupérer toutes les valeurs d'une colonne
    Par Tintou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/07/2010, 16h38
  4. Récupérer toutes les valeurs d'une liste déroulante
    Par christgh dans le forum Langage
    Réponses: 4
    Dernier message: 10/12/2008, 21h17

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