Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Find date dans textbox

cp4

XLDnaute Barbatruc
Bonsoir,

En voulant aider, je suis confronté à un problème que je n'arrive pas à résoudre.
D'ailleurs, je me demande si la fonction find n'est pas limitée.

L'objectif est de trouver une date se trouvant dans une textbox sur la bonne feuille (sheet.name= année de la date).
Et ce, en utilisant la fonction find. Car je voudrais bien comprendre son utilisation.
ça sera plus clair avec le fichier. Ci-dessous code qui plante (pour ceux qui n'ouvrent jamais les fichiers joints)
VB:
Sub Recherche_données()
   Dim LaFeuille As String, Ladate As Range, Ligne As Long, dl As Integer, plage As Range
   LaFeuille = Right(TextBox1, 4)

   If FeuilleExiste(LaFeuille) = True Then
      With Sheets(LaFeuille)
         dl = .Range("A" & Rows.Count).End(xlUp).Row
         Set plage = .Range("A1:A" & dl)

         Set Ladate = Rng.Cells.Find(What:=CDate(TextBox1.Text), LookIn:=xlFormulas, LookAt:=xlWhole) 'bug objet requis
        
         If Ladate Is Nothing Then
            Me.Label1.Caption = "la date " & TextBox1 & " non trouvée sur la feuille " & LaFeuille
         Else
            Me.Label1.Caption = TextBox1 & " se trouve sur la feuille " & LaFeuille & " en " & Ladate.Address
         End If
      End With
   Else
      Me.Label1.Caption = " la feuille " & LaFeuille & " n'existe pas!"
      Exit Sub
   End If
   '*********************************************
   Set Ladate = Nothing
   Set plage = Nothing
End Sub

En vous remerciant par avance.
Bonne soirée.
 

Pièces jointes

  • Trouver date textbox.xlsm
    69.2 KB · Affichages: 17
Solution
Bonsoir à tous

vous avez eu une erreur dans la macro


vous avez
Set Ladate = rng.Cells.Find(What:=CDate(Me.TextBox1.Text), LookIn:=xlFormulas, LookAt:=xlWhole)
au lieu d'avoir
Set Ladate = plage.Cells.Find(What:=CDate(Me.TextBox1.Text), LookIn:=xlFormulas, LookAt:=xlWhole)

J'ai fait les tests et ça marche


rng n'existe pas dans les variables

VB:
Sub Recherche_données()
   Dim LaFeuille As String, Ladate As Range, Ligne As Long, dl As Integer, plage As Range
  
   LaFeuille = Right(TextBox1, 4)

   If FeuilleExiste(LaFeuille) = True Then
      With Sheets(LaFeuille)
         dl = .Range("A" & Rows.Count).End(xlUp).Row
         Set plage = .Range("A1:A" & dl)

         Set Ladate =...

Rhysand

XLDnaute Junior
Bonsoir à tous

vous avez eu une erreur dans la macro


vous avez
Set Ladate = rng.Cells.Find(What:=CDate(Me.TextBox1.Text), LookIn:=xlFormulas, LookAt:=xlWhole)
au lieu d'avoir
Set Ladate = plage.Cells.Find(What:=CDate(Me.TextBox1.Text), LookIn:=xlFormulas, LookAt:=xlWhole)

J'ai fait les tests et ça marche


rng n'existe pas dans les variables

VB:
Sub Recherche_données()
   Dim LaFeuille As String, Ladate As Range, Ligne As Long, dl As Integer, plage As Range
  
   LaFeuille = Right(TextBox1, 4)

   If FeuilleExiste(LaFeuille) = True Then
      With Sheets(LaFeuille)
         dl = .Range("A" & Rows.Count).End(xlUp).Row
         Set plage = .Range("A1:A" & dl)

         Set Ladate = plage.Cells.Find(What:=CDate(Me.TextBox1.Text), LookIn:=xlFormulas, LookAt:=xlWhole)
        
         If Ladate Is Nothing Then
            Me.Label1.Caption = "la date " & TextBox1 & " non trouvée sur la feuille " & LaFeuille
         Else
            Me.Label1.Caption = TextBox1 & " se trouve sur la feuille " & LaFeuille & " en " & Ladate.Address
         End If
      End With
   Else
      Me.Label1.Caption = " la feuille " & LaFeuille & " n'existe pas!"
      Exit Sub
   End If
   '*********************************************
   Set Ladate = Nothing
   Set plage = Nothing
End Sub
 

Discussions similaires

Réponses
75
Affichages
922
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…