+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Inscrit en
    juin 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 5
    Points : 0
    Points
    0

    Par défaut Recherche dans une autre feuille de Excel même classeur

    Bonjour à tous,

    je suis un debutant en VB j aimerai creer un bouton de recherche dans excel. Le bouton est dans la feuille 1 une fois que je clique la dessus il cherchera dans la colonne (B) de la feuille 2 la valeur de la cellule G2 de la feuille 1

    je vous remercie de votre aide


    kabi

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    mai 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : mai 2007
    Messages : 21
    Points : 22
    Points
    22

    Par défaut

    Bonsoir,

    Je ne suis pas sur que tu soit dans le bon forum. Essaye ce bout de code qui est assez vieux mais qui devrait convenir. C'est basique et pas super réutilisable (mais c'est du vba )


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Sub Main
    Dim FeuilleActuel As String
    FeuilleActuel = ActiveSheet.Name
    MsgBox RechercheVal(Range("G2").Text, "Feuil2"), vbInformation, "RechercheVal"
    Sheets(FeuilleActuel).Select
    End Sub
     
    Function RechercheVal(ByVal Valeur As String, Feuille As String) As String
    Sheets(Feuille).Select
       With ActiveSheet.Range("B1:B450") 'ICI il faut indiquer la bonne plage de recherche pour ton cas, ->
       '->tu peux bien sur rechercher la dernière Cells remplis pour la colonne
           Set c = .Find(Valeur, LookIn:=xlValues)
           If Not c Is Nothing Then
                RechercheVal = "Valeur trouvé en :" & vbCrLf & "Feuille: " & Feuille & " " & vbCrLf & "Ligne: " & c.Row '& " " & c.Column
        Else
                RechercheVal = "La valeur n'a pas été trouvé"
           End If
       End With
    End Function
    Il te reste à changer quelques valeurs pour que ça concorde (le nom des feuilles excel et la plage de recherche)
    Ajouter une forme dans ta feuille 1 et lui affecter une macro

    Bon vba...

  3. #3
    Invité de passage
    Inscrit en
    juin 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 5
    Points : 0
    Points
    0

    Par défaut

    Merci
    effectivement j ai du voir le forum excel sous vba mais grace a ton code je crois pouvoir l utilise merci

    KAbi

  4. #4
    Invité de passage
    Inscrit en
    juin 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 5
    Points : 0
    Points
    0

    Par défaut

    Re bonjour,
    Au lieu d affiche juste l'information sur ou se trouve la valeur de G2 dans feuille 2 est ce que tu peux me dire comment faire pour aller directement à la ligne dans la feuille 2 correspondant à la valeur de G2

    Merci encore pour ton aide


    Kabi

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    mai 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : mai 2007
    Messages : 21
    Points : 22
    Points
    22

    Par défaut

    Bonsoir,

    A la volée je ferais :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Sub Main
    'Dim FeuilleActuel As String
    'FeuilleActuel = ActiveSheet.Name
    RechercheVal(Range("G2").Text, "Feuil2")
    'Sheets(FeuilleActuel).Select
    End Sub
     
    Function RechercheVal(ByVal Valeur As String, Feuille As String) As String
    Sheets(Feuille).Select
       With ActiveSheet.Range("B1:B450") 'ICI il faut indiquer la bonne plage de recherche pour ton cas, ->
       '->tu peux bien sur rechercher la dernière Cells remplis pour la colonne
           Set c = .Find(Valeur, LookIn:=xlValues)
           If Not c Is Nothing Then
    Cells(c.Row,c.Column).Select
        Else
                RechercheVal = "La valeur n'a pas été trouvé"
           End If
       End With
    End Function
    J'ai pas testé mais il me semble que ça doit être ok... Ou c'est peut être Cells(c.Column,c.Row).Select, je ne sais plus trop.
    En revanche il faudrat peut être gérer le cas ou plusieurs cellules contiennent la valeur G2 !!

    Bon code

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •