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

VBA Discussion :

recherche par fourchette


Sujet :

VBA

  1. #1
    Membre à l'essai Avatar de alex_elder1_1
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 24
    Points
    24
    Par défaut
    Bjr a tous

    je voudrais lors d'une recherche de date pouvoir chercher ds des fourchettes de dates en fait. je m'explique mon code

    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
     
    Sub searcha2()
     
     
    Dim A As String
    Dim c As String
            A = UserForm1.TextBox18.Value
            With Worksheets("sheet1").Range("B:B")
                Set Trouvé = .Find(A, LookIn:=xlValues, LookAt:=xlWhole)
            End With
            If Not Trouvé Is Nothing Then c = Range("d" & Trouvé.Row).Value
            UserForm1.TextBox2.Value = c
     
     
    End Sub

    est celui d'une recherche ciblee mais je voudrais pvoir chercher tout ce qui est arrive pdt la periode que je tape par exemple 11/05 - 11/06 (novembre 2005-novembre 2006)

    merci d'avance

    pourriez vous m'aider s'il vous plait
    Parce que des hommes illustres qui se sont battus pour notre pays, pays de culture, de richesses multiples et d'histoire, nous regardent, nous nous devons de faire les bons choix de notre avenir et nous battre pour une idee appelee FRANCE!!!!!
    De gaulle, Bonaparte, Jaures, Blum, Brillant ous tenterons de ne pas vous decevoir

    n'oubliez pas que peut voler a votre secour
    que un post fini est un post et qu'il est indispensable de penser a qd vous creez vos messages

  2. #2
    Invité
    Invité(e)
    Par défaut


    Tu peux essayer un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Test()
      Dim VDate1, VDate2, Cel, c
      VDate1 = "10/09/2006"
      VDate2 = "15/09/2006"
      For Each Cel In Sheets("sheet1").Range("H1:H" & Sheets("sheet1").Range("H:H").End(xlDown).Row)
        If Cel.Value > DateValue(VDate1) And Cel.Value < DateValue(VDate2) Then
          c = c & Cel.Row & " / "
        End If
      Next
      MsgBox "Cellules : " & c
    End Sub
    Par contre il te faut 2 TexteBox pour la date min et la date max, ou alors il faut adapter

    Voilà

  3. #3
    Membre à l'essai Avatar de alex_elder1_1
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 24
    Points
    24
    Par défaut
    excuse moi bruno j'ai change mon code je le trouve plus adapte a ce que je souaite et pourrais tu m'aider pour celui ci et si je souhaite le faire pour une seule textbox que dois je faire
    merci d'avance pour ton aide
    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
    39
     
    Private Sub ProcId()
     
     Worksheets("Sheet2").Activate
      Range("B2:J4000").Select
      selection.Delete
     
    'DATE
     
      Dim l As Integer
      Dim DesignationRecherchee1 As String
     
      DesignationRecherchee1 = UserForm6.MD
     
      l = 2
     
      With Worksheets("Sheet1")
        Do While .Cells(l, 2) <> "" And .Cells(l + 1, 2) <> ""
          If .Cells(l, 2) Like DesignationRecherchee1 & "*" Then
            Range(.Cells(l, 2), .Cells(l, 10)).Copy
            For j = 2 To 3000
              If Worksheets("Sheet2").Cells(j, 2) = "" Then
                Worksheets("Sheet2").Activate
                Worksheets("Sheet2").Cells(j, 2).Select
                ActiveSheet.Paste
     
                Exit For
              End If
            Next j
          End If
        l = l + 1
        Loop
      End With
     
    UserForm6.Hide
     
    Worksheets("Sheet2").Activate
     
    End Sub
    Parce que des hommes illustres qui se sont battus pour notre pays, pays de culture, de richesses multiples et d'histoire, nous regardent, nous nous devons de faire les bons choix de notre avenir et nous battre pour une idee appelee FRANCE!!!!!
    De gaulle, Bonaparte, Jaures, Blum, Brillant ous tenterons de ne pas vous decevoir

    n'oubliez pas que peut voler a votre secour
    que un post fini est un post et qu'il est indispensable de penser a qd vous creez vos messages

  4. #4
    Invité
    Invité(e)
    Par défaut
    Heuuu...

    Qu'est ce que ça à voir avec la recherche de date !?
    Comment la récupères tu ?

  5. #5
    Membre à l'essai Avatar de alex_elder1_1
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 24
    Points
    24
    Par défaut
    en fait ds une autre fonction j'appelle cette fonction avec une combobox, je tape ce que je dois chercher ds une textbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If UserForm6.ComboBox1.Value = "ARRIVAL DATE" Then
    Call ProcId
    End If
    et le resultat apparait sur ma feuille 2
    Parce que des hommes illustres qui se sont battus pour notre pays, pays de culture, de richesses multiples et d'histoire, nous regardent, nous nous devons de faire les bons choix de notre avenir et nous battre pour une idee appelee FRANCE!!!!!
    De gaulle, Bonaparte, Jaures, Blum, Brillant ous tenterons de ne pas vous decevoir

    n'oubliez pas que peut voler a votre secour
    que un post fini est un post et qu'il est indispensable de penser a qd vous creez vos messages

  6. #6
    Invité
    Invité(e)
    Par défaut
    Heuuu...
    Du coup avec ta proc modifiée, je ne vois plus ou est le problème pour ta date !?

  7. #7
    Membre à l'essai Avatar de alex_elder1_1
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 24
    Points
    24
    Par défaut
    je voudrais pouvoir voir afficher sur ma feuille 2 toutes les dates comprises ds la fourchette que je vais determiner lors de ma recherche ds la textbox sur la userform6. est ce mieux?
    merci bruno
    Parce que des hommes illustres qui se sont battus pour notre pays, pays de culture, de richesses multiples et d'histoire, nous regardent, nous nous devons de faire les bons choix de notre avenir et nous battre pour une idee appelee FRANCE!!!!!
    De gaulle, Bonaparte, Jaures, Blum, Brillant ous tenterons de ne pas vous decevoir

    n'oubliez pas que peut voler a votre secour
    que un post fini est un post et qu'il est indispensable de penser a qd vous creez vos messages

  8. #8
    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
    Regarde C'est Pièce jointe 7242 !
    A+

  9. #9
    Membre à l'essai Avatar de alex_elder1_1
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 24
    Points
    24
    Par défaut
    dsl mais je n'arrive aps a l'adapter a mon projet
    pourriez vous 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
    39
    40
    41
    Private Sub ProcDate()
     
    Worksheets("Sheet2").Activate
      Range("B2:J4000").Select
     selection.Delete
     
    'MOTOR ID
     
     Dim l As Integer
      Dim DesignationRecherchee1 As String
     
      DesignationRecherchee1 = UserForm6.MD
     
      l = 2
     
      With Worksheets("Sheet1")
       Do While .Cells(l, 2) <> "" And .Cells(l + 1, 2) <> ""
       If .Cells(l, 2) Like DesignationRecherchee1 & "*" Then
       selection.AutoFilter Field:=3, Criteria1:=">" & "=" & DesignationRecherchee1, Operator:=xlAnd _
            , Criteria2:="<" & "=" & DesignationRecherchee1
            Range(.Cells(l, 2), .Cells(l, 10)).Copy
           For j = 2 To 3000
             If Worksheets("Sheet2").Cells(j, 2) = "" Then
                Worksheets("Sheet2").Activate
                Worksheets("Sheet2").Cells(j, 2).Select
                ActiveSheet.Paste
     
                Exit For
              End If
            Next j
          End If
        l = l + 1
        Loop
      End With
     
    UserForm6.Hide
     
    Worksheets("Sheet2").Activate
     
     
    End Sub
    voila ce que j'ai marche mais ca ne marche pas
    Parce que des hommes illustres qui se sont battus pour notre pays, pays de culture, de richesses multiples et d'histoire, nous regardent, nous nous devons de faire les bons choix de notre avenir et nous battre pour une idee appelee FRANCE!!!!!
    De gaulle, Bonaparte, Jaures, Blum, Brillant ous tenterons de ne pas vous decevoir

    n'oubliez pas que peut voler a votre secour
    que un post fini est un post et qu'il est indispensable de penser a qd vous creez vos messages

  10. #10
    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
    Je répondais au sujet de la discussion, pas à l'évolution imprévue de ta question
    Pour cette ligne, tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       selection.AutoFilter Field:=3, Criteria1:=">=" & DesignationRecherchee1, Operator:=xlAnd _
            , Criteria2:="<=" & DesignationRecherchee1
    Si tu as une nouvelle question, pose-la dans une nouvelle discussion sinon, Bruno, il est perdu Et moi aussi !
    A+

  11. #11
    Membre à l'essai Avatar de alex_elder1_1
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 24
    Points
    24
    Par défaut
    excusez moi je vais reprendre en fait j'ai ce code
    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
    39
    40
    41
    42
    Private Sub ProcDate()
     
    'ARRIVAL DATE
     
      Dim l As Integer
      Dim DesignationRecherchee1 As String
     
      DesignationRecherchee1 = UserForm6.MD
     
      l = 2
     
      With Worksheets("Sheet1")
        Do While .Cells(l, 8) <> "" And .Cells(l + 1, 8) <> ""
          If .Cells(l, 8) Like DesignationRecherchee1 & "*" Then
            Range(.Cells(l, 2), .Cells(l, 10)).Copy
            For j = 2 To 3000
              If Worksheets("Sheet2").Cells(j, 2) = "" Then
                Worksheets("Sheet2").Activate
                Worksheets("Sheet2").Cells(j, 2).Select
                ActiveSheet.Paste
     
                Exit For
              End If
            Next j
          End If
        l = l + 1
        Loop
      End With
      Unload Me
     
    If Range("B2").Value = "" Then
    x = MsgBox(prompt:="This Date doesn't exist", _
    Buttons:=Ok)
    End If
     
    UserForm6.Hide
     
    Worksheets("Sheet2").Activate
     
     
     
    End Sub
    qui trie en fonction de ma recherche. ma recherche se fait en deux etapes je choisis ds une combobox le type (en l'occurence je veux ARRIVAL DATE) je tape ce que je cherche ds la textbox tjrs sur la m userform (6) et je valide
    la recherche recherche sur sheet1 et me met le resultat sur sheet2
    je voudrais de m pour la date mais pouvoir selectionner des fourchettes cad 11-05/11-06 par exemple et avoir tous ces dates comprises entre ces deux bornes sur ma feuille 2. en fait je dois adapter cette recherche a la recherche par fourchette. si vous avez un meilleur code mais je souhaiterais garder les modalites de recherche merci
    est ce mieux
    Parce que des hommes illustres qui se sont battus pour notre pays, pays de culture, de richesses multiples et d'histoire, nous regardent, nous nous devons de faire les bons choix de notre avenir et nous battre pour une idee appelee FRANCE!!!!!
    De gaulle, Bonaparte, Jaures, Blum, Brillant ous tenterons de ne pas vous decevoir

    n'oubliez pas que peut voler a votre secour
    que un post fini est un post et qu'il est indispensable de penser a qd vous creez vos messages

  12. #12
    Membre à l'essai Avatar de alex_elder1_1
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 24
    Points
    24
    Par défaut
    pas d'idée?
    pourriezvous m'aider s'il vous plait?
    Parce que des hommes illustres qui se sont battus pour notre pays, pays de culture, de richesses multiples et d'histoire, nous regardent, nous nous devons de faire les bons choix de notre avenir et nous battre pour une idee appelee FRANCE!!!!!
    De gaulle, Bonaparte, Jaures, Blum, Brillant ous tenterons de ne pas vous decevoir

    n'oubliez pas que peut voler a votre secour
    que un post fini est un post et qu'il est indispensable de penser a qd vous creez vos messages

  13. #13
    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
    Une idée ? Si ! Recherche d'abord l'adresse de la destination, puis, fais ton copier/coller mais utilise
    Range(.Cells(l, 2), .Cells(l, 10)).Copy destination:= 'Feuille+adresse où tu veux coller. C'est tout de même plus simple et en outre l'aide t'en dirait plus que moi. Jète un oeil à Copy :
    Exemple de l'aide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Feuil1").Range((.Cells(l, 2), .Cells(l, 10)).Copy _
    	destination:=Worksheets("Feuil2").Range(Cells(25, 2), Cells(35, 10))
    J'ai uniquement modifié la formule Range.
    Mais là, tu nous demandes d'apprendre tes leçons
    A+ et bon courage quand même

Discussions similaires

  1. Recherche par une partie du champ
    Par safadev dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2005, 14h20
  2. recherche par mot clé
    Par seb59dk dans le forum Access
    Réponses: 3
    Dernier message: 06/09/2005, 14h26
  3. Recherche par mots clés
    Par legillou dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2005, 10h56
  4. Probleme de recherche par listbox
    Par haigwepa dans le forum IHM
    Réponses: 6
    Dernier message: 12/10/2004, 19h57
  5. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07

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