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 :

Recherche une valeur et récupérer la ligne correspondante.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut Recherche une valeur et récupérer la ligne correspondante.
    Bonjour,

    J'ai deux feuilles excel dans un meme classeur.

    Dans la premiere feuill1, j'ai ceci



    Dans l'autre feuille



    je tape 75340 dans mon exemple, il me donne tous les résultats sur la ligne correspondante . Par contre je voudrais lui dire que "si la cellule au dessous de lui est vide alors affiche moi les lignes aussi".

    pour 75340, il m'affiche I57D I58D I59D I60D I61D I62D F45D I51B I52B, par contre je n'arrive pas a lui faire afficher I51D I52D I53D I54D etc etc (la ligne d'en dessous car la cellule au dessous de 75340 est vide).

    En ce moment j'utilise ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV(B9;'plan entrepot'!1:65536;COLONNE(E1);FAUX)
    que j'étire pour afficher toutes les valeurs. ( mais ce n'est pas tres propre car dans une valeur recherchée il y aura 2-3 colonnes a afficher, et dans d'autres plus de 20, donc je suis obligé de créer autant de cellule avec la fonction recherchev)

    Si vous avez une formule en VBA, je suis preneur
    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
    Dans le module de ta feuille de recherche (évènement Change)
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, Plage As Range
    Dim Nb As Integer
    If Target(1, 1).Address(0, 0) = "B9" Then
       Range("F9:" & Range("F9").End(xlToRight).Address).ClearContents
       If Target(1, 1).Value <> "" Then
          With Sheets("plan entrepot")
             Set c = .Columns(1).Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
                If Not c Is Nothing Then
                   Set Plage = .Range("D" & c.Row & ":K" & c.Row)
                   Plage.Copy Cells(9, 6)
                   Do While c.Offset(1, 0).Value = "" And c.Offset(0, 3).Address <> .Cells(Rows.Count, "D").End(xlUp).Address
                      Set c = c.Offset(1, 0)
                      Nb = .Range("L" & c.Row).End(xlToLeft).Column
                      Set Plage = .Range(.Cells(c.Row, 4), .Cells(c.Row, Nb))
                      Plage.Copy Cells(9, Cells(9, Columns.Count).End(xlToLeft).Column + 1)
                   Loop
                End If
             Set c = Nothing
          End With
       End If
    End If
    End Sub
    Quand tu modifie le code entrée en B9, le code s'exécute automatiquement

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut
    Merci ca fonctionne par contre ca s'affiche comme cela:




    Est ce possible que cela s'affiche comme ceci:



    Cordialement

    Pouvez vous mettre les commentaires si cela ne vous dérange pas pour la compréhension et refaire plus tard.

    merci

  4. #4
    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
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
    Dim j As Integer
    If Target(1, 1).Address(0, 0) = "B9" Then
       Range("F9:M15").ClearContents
       If Target(1, 1).Value <> "" Then
          With Sheets("plan entrepot")
             Set c = .Columns(1).Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
                If Not c Is Nothing Then
                   Do While (c.Value = "" And j <> 0 And c.Offset(0, 3).Address <> .Cells(Rows.Count, "D").End(xlUp).Address) Or (c.Value <> "" And j = 0)
                      .Range("D" & c.Row & ":K" & c.Row).Copy Cells(9 + j, 6)
                      Set c = c.Offset(1, 0)
                      j = j + 1
                   Loop
                End If
             Set c = Nothing
          End With
       End If
    End If
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut
    Merci, ca fonctionne!!!!!!!!!

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

Discussions similaires

  1. Rechercher une valeur et supprimer la ligne si trouvée
    Par hehee dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/04/2019, 15h48
  2. Réponses: 22
    Dernier message: 13/09/2013, 15h20
  3. Extraire des lignes en recherchant une valeur de cellule
    Par maxmaxmax dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/08/2012, 17h56
  4. [XL-2007] Rechercher une valeur dans une feuille, ligne, colonne ou tableau
    Par XceSs dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/08/2011, 20h26
  5. Réponses: 7
    Dernier message: 26/10/2004, 12h02

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