• Initiateur de la discussion Initiateur de la discussion knaekes
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

knaekes

XLDnaute Occasionnel
Bonjour,

je souhaite retrouver la valeur affichée dans une cellule dans une plage de donnée située sur une autre feuille. comment y parvenir grâce à la fonction "FIND" ?

merci

Code:
Sub essai()

Set f2 = Sheets("1.2")
Set fc = Sheets("Calendrier")

d2 = f2.Cells(2, 3).Value

With fc.Range("E3:E2284")
Set C = .Find(d2, LookIn:=xlValues)
linkw = C.Row
MsgBox (linkw)
End With



End Sub
 
Re : fonction FIND

Bonjour,

A priori ce serait ceci, pour plus adapté à ton cas, joint un fichier exemple.

Code:
Sub essai()
    Set f2 = Sheets("1.2")
    Set fc = Sheets("Calendrier")
    d2 = f2.Cells(2, 3).Value
    With fc.Range("E3:E2284")
        Set c = .Find(d2, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows)
        If Not c Is Nothing Then
            linkw = c.Row
            MsgBox (linkw)
        End If
    End With
End Sub
A+
 
Re : fonction FIND

Bonjour,

Les recherches de dates avec Find, sont toujours aléatoires et fonctionnent rarement.
Dans le fichier joint une autre méthode qui renvoie la première cellule correspondant à la date cherchée.

D'où l'intérêt de tout dire quand on pose une question et de joindre un fichier.

A+
 
Re : fonction FIND

Bonjour Gruick,

Il s'agit simplement d'utiliser Application.Match avec comme paramètre un 'Long', cela fonctionne avec les dates sans heure derrière.

dim idx as variant

idx = Application.Match(clng(LaDateAtrouver), .Range("E3:E2284"), 0)

If Not isError(idx) then ....


Voici la macro écrite dans le fichier joint plus haut:

Code:
Sub essai()
    Dim f2 As Worksheet, fc As Worksheet
    Dim d2 As Long
    Dim c As Range
    Dim idx As Variant 'doit rester variant
    Set f2 = Sheets("1.2")
    Set fc = Sheets("Calendrier")
    d2 = CLng(f2.Cells(2, 3).Formula)
    
    idx = Application.Match(d2, fc.Range("E3:E2284"), 0)
    If Not IsError(idx) Then
          Set c = fc.Range("E3:E2284").Cells(idx, 1)
          MsgBox "La date est la " & idx & " ème de la plage de recherche " & vbCrLf & "la cellule correspondantes est la cellule " & c.Address
    End If
End Sub

A++
 
Re : fonction FIND

Re,

Petite précision:

Si la date à recherchée est dans une cellule (ex A1) il vaut mieux faire appel à :Clng(Range("A1").Value2) qui renverra toujours un double (qui sera convertit par clng). Range("A1").Value renvoie un type Date.

A+
 
Re : fonction FIND

Bonjour à tous,

On m'a suggéré d'aller voir ce topic car j'ai aussi besoin de chercher des dates dans mon tableau mais par rapport à une date saisie. J'ai adapté le code ainsi :

Code:
Dim ChercheX As Date
ChercheX = CDate(tmp1)
  
    Dim f2 As Worksheet, fc As Worksheet
    Dim d2 As Long
    Dim c As Range
    Dim idx As Variant 'doit rester variant
    Set fc = Sheets("Trains supprimés")
    d2 = CLng(ChercheX)
     
    idx = Application.Match(d2, fc.Range("C5:C50"), 0)
     If Not IsError(idx) Then
           Set c = fc.Range("C5:C50").Cells(idx, 1)
           MsgBox "La date est la " & idx & " ème de la plage de recherche " & vbCrLf & "la cellule correspondantes est la cellule " & c.Address
     End If

ChercheX prend par exemple la valeur : 05/07/2011.(saisi via un inputbox)
Dans mon tableau, colonne C5 à C50, il peut y avoir plusieurs fois cette date et j'aimerais que quelqu'un puisse me l'adapter car pour moi la finalitée est de supprimer toutes les lignes qui comportent la date saisie... La MsgBox ne n'est pas nécessaire....

Merci beaucoup
 
Re : fonction FIND

Re,

C'est bon j'ai trouvé :

Code:
For x = 5 To DerniereLigne
    maligne = "C" & x
    idx = Application.Match(d2, fc.Range(maligne), 0)
    If Not IsError(idx) Then
     Rows(x).Delete
     End If
     Next x
Bon certains vont rire .... devant mon adaptation d'amateur........
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
481
Réponses
2
Affichages
154
Réponses
4
Affichages
243
Réponses
4
Affichages
461
Réponses
10
Affichages
547
Retour