Bonjour,
J'essaie de faire une recherche de date (début et fin) sur 2 colonnes et comme je suis débutante, je rame depuis quelques jours !
Si les 2 dates sont dans la même colonne, ça fonctionne ci-dessous mon code mais je n'arrive à rien si la date de fin saisie dans textbox2 est sur la 2ème colonne.
pourriez-vous me mettre sur la piste svp ? si toutefois c'est possible.
merci
Sub CommandButton1_Click()
'déclaration des variables :
Dim DLig As Long
Dim Trouve As Range
Dim Trouve_2 As Range
Dim PlageDeRecherche As Range
Dim Date_debut As Date
Dim Date_fin As Date
Dim AdresseTrouvee As String
Dim mon_tab As Variant
'********* à adapter ***********
'affectation de valeurs aux variables :
'on cherche le mot "Trouve"
Date_debut = CDate(TextBox1)
Date_fin = CDate(TextBox2)
'dans la première colonne de la feuille active
Set PlageDeRecherche = Range("c5:f40")
'*******************************
'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=CDate(Date_debut), LookAt:=xlWhole)
Trouve.Select
ActiveCell.Offset(0, 1).Value = "essai"
If Weekday(CDate(Date_debut), 2) > 5 Then
ActiveCell.Offset(0, 1).Value = ""
Else
ActiveCell.Offset(0, 1).Value = "essai"
End If
'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
'ici, traitement pour le cas où la valeur n'est pas trouvée
AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address
Else
'ici, traitement pour le cas où la valeur est trouvée
AdresseTrouvee = Trouve.Address
End If
ActiveCell.Offset(1, 0).Select
Do While ActiveCell.Value <> Date_fin + 1
If Weekday(ActiveCell.Value, 2) > 5 Then
ActiveCell.Offset(0, 1).Value = ""
Else
ActiveCell.Offset(0, 1) = "essai"
End If
ActiveCell.Offset(1, 0).Select
DLig = Range("C5").End(xlDown).Row + 1
If ActiveCell.Offset(1, 0).Row = DLig + 1 Then
MsgBox "adresse fin pas trouvée"
Exit Sub
End If
Loop
'MsgBox AdresseTrouvee
'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Sub
J'essaie de faire une recherche de date (début et fin) sur 2 colonnes et comme je suis débutante, je rame depuis quelques jours !
Si les 2 dates sont dans la même colonne, ça fonctionne ci-dessous mon code mais je n'arrive à rien si la date de fin saisie dans textbox2 est sur la 2ème colonne.
pourriez-vous me mettre sur la piste svp ? si toutefois c'est possible.
merci
Sub CommandButton1_Click()
'déclaration des variables :
Dim DLig As Long
Dim Trouve As Range
Dim Trouve_2 As Range
Dim PlageDeRecherche As Range
Dim Date_debut As Date
Dim Date_fin As Date
Dim AdresseTrouvee As String
Dim mon_tab As Variant
'********* à adapter ***********
'affectation de valeurs aux variables :
'on cherche le mot "Trouve"
Date_debut = CDate(TextBox1)
Date_fin = CDate(TextBox2)
'dans la première colonne de la feuille active
Set PlageDeRecherche = Range("c5:f40")
'*******************************
'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=CDate(Date_debut), LookAt:=xlWhole)
Trouve.Select
ActiveCell.Offset(0, 1).Value = "essai"
If Weekday(CDate(Date_debut), 2) > 5 Then
ActiveCell.Offset(0, 1).Value = ""
Else
ActiveCell.Offset(0, 1).Value = "essai"
End If
'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
'ici, traitement pour le cas où la valeur n'est pas trouvée
AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address
Else
'ici, traitement pour le cas où la valeur est trouvée
AdresseTrouvee = Trouve.Address
End If
ActiveCell.Offset(1, 0).Select
Do While ActiveCell.Value <> Date_fin + 1
If Weekday(ActiveCell.Value, 2) > 5 Then
ActiveCell.Offset(0, 1).Value = ""
Else
ActiveCell.Offset(0, 1) = "essai"
End If
ActiveCell.Offset(1, 0).Select
DLig = Range("C5").End(xlDown).Row + 1
If ActiveCell.Offset(1, 0).Row = DLig + 1 Then
MsgBox "adresse fin pas trouvée"
Exit Sub
End If
Loop
'MsgBox AdresseTrouvee
'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Sub