Recherche date dans un fichier excel a partir d'1 userform

Résolu/Fermé
pascal - 19 janv. 2013 à 17:30
 pascal - 19 janv. 2013 à 20:59
Bonjour,

dans mon code si dessous je cherche le nombre de fois une valeur variable dans mon fichier excel et ça dans un textbox(TextRech) d'un userform,
mon code marche très bien pour des valeur numerique ou des lettres mais pas sous se format 19/01/13

ma question est comment prendre en compte ce format pour ma recherche
.


Private Sub CmdRech_Click()
 If TextRech = "" Then
        MsgBox "renseignez une Date, Double click sur la case ", vbInformation
        TextRech.SetFocus
        
 Else
     
     Application.ScreenUpdating = False   ' pour aller plus vite
    Set ma_feuille = ThisWorkbook.Sheets(1)
    col_no = 2 ' pour la colonne A (A = 1)
    lg_no = 4  ' à partir de la première ligne
    p = TextRech ' textbox de mon userform ou je saisie la date a chercher sous le format 19/01/13
    compteur_mots = 0
    Do While Not IsEmpty(ma_feuille.Cells(lg_no, col_no))
        If (ma_feuille.Cells(lg_no, col_no).Value = p) Then
            compteur_mots = compteur_mots + 1
        End If
        lg_no = lg_no + 1
    Loop
    Range("az7") = compteur_mots
 
    LabDate = Range("az7").Value
End If
End Sub

A voir également:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
19 janv. 2013 à 17:52
Bonjour,

La saisie d'une textebox donne du texte, il faut convertir:

p = CDate(TextRech )


Si vous voulez, le code pour la recherche peut etre ameliore en utilisant des instructions excel plus performantes.

A vous de voir
0
je veux bien oui,
quel type de recherche pouvez vous me proposer?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
19 janv. 2013 à 18:36
Re,

Un exemple de code

Private Sub CmdRech_Click()
  Dim plage As Range, compteur_mots As Integer, derlig As Integer
  
 If TextRech = "" Then
    MsgBox "renseignez une Date, Double click sur la case ", vbInformation
    TextRech.SetFocus
 Else
    Application.ScreenUpdating = False   ' pour aller plus vite
    With ThisWorkbook.Sheets(1)
      'Recherche derniere cellule colonne B
      derlig = Range("B" & Rows.Count).End(xlUp).Row
      'Definition en memoire de la plage de recherche
      Set plage = .Range("B4:B" & derlig)
      'Combien de fois la valeur cherchee
      compteur_mots = Application.CountIf(plage, CDate(TextRech))
      '??
      .Range("az7") = compteur_mots
      '??
      LabDate = .Range("az7").Value
    End With
  End If
End Sub


Bonne suite
0
merci encore une fois votre code marche a merveille,
0