Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2006, 10h00   #1
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
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 :
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
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 11h33   #2
Membre émérite
 
Avatar de BrunoM45
 
Homme
Assistant de Gestion - Responsable Informatique
Inscription : juillet 2003
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Assistant de Gestion - Responsable Informatique
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2003
Messages : 646
Points : 848
Points : 848


Tu peux essayer un truc comme ça :
Code :
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à
__________________
Vous avez la solution à votre problème, pensez au tag :
est une touche qui appelle l'aide : Essayez, c'est assez performant et on trouve plein de choses.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.
BrunoM45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 11h47   #3
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
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 :
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
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 12h05   #4
Membre émérite
 
Avatar de BrunoM45
 
Homme
Assistant de Gestion - Responsable Informatique
Inscription : juillet 2003
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Assistant de Gestion - Responsable Informatique
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2003
Messages : 646
Points : 848
Points : 848
Heuuu...

Qu'est ce que ça à voir avec la recherche de date !?
Comment la récupères tu ?
__________________
Vous avez la solution à votre problème, pensez au tag :
est une touche qui appelle l'aide : Essayez, c'est assez performant et on trouve plein de choses.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.
BrunoM45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 12h11   #5
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
en fait ds une autre fonction j'appelle cette fonction avec une combobox, je tape ce que je dois chercher ds une textbox

Code :
1
2
3
If UserForm6.ComboBox1.Value = "ARRIVAL DATE" Then
Call ProcId
End If
et le resultat apparait sur ma feuille 2
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 12h13   #6
Membre émérite
 
Avatar de BrunoM45
 
Homme
Assistant de Gestion - Responsable Informatique
Inscription : juillet 2003
Messages : 646
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Assistant de Gestion - Responsable Informatique
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2003
Messages : 646
Points : 848
Points : 848
Heuuu...
Du coup avec ta proc modifiée, je ne vois plus ou est le problème pour ta date !?
__________________
Vous avez la solution à votre problème, pensez au tag :
est une touche qui appelle l'aide : Essayez, c'est assez performant et on trouve plein de choses.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.
BrunoM45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 12h18   #7
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
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
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 12h22   #8
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Regarde C'est Pièce jointe 7242 !
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 12h32   #9
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
dsl mais je n'arrive aps a l'adapter a mon projet
pourriez vous m'aider?

Code :
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
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 12h44   #10
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Je répondais au sujet de la discussion, pas à l'évolution imprévue de ta question
Pour cette ligne, tu peux essayer
Code :
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+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 12h51   #11
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
excusez moi je vais reprendre en fait j'ai ce code
Code :
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
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 20h31   #12
Candidat au titre de Membre du Club
 
Avatar de alex_elder1_1
 
Étudiant
Inscription : novembre 2006
Messages : 82
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 82
Points : 11
Points : 11
Envoyer un message via MSN à alex_elder1_1 Envoyer un message via Skype™ à alex_elder1_1
pas d'idée?
pourriezvous m'aider s'il vous plait?
alex_elder1_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 20h49   #13
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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 :
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
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h49.


 
 
 
 
Partenaires

Hébergement Web