Bonjour à tous,

Niveau débutant :

Sur un classeur 3 feuilles :

Feuille 1 : feuilles d'hébergements à remplir au jour le jour.

Feuille 2 "Base" : Suivie des entrées / Sorties + Stat

Feuille 3 "Stat" : Stat générale

Ce que je souhaite faire :

Je souhaite pouvoir modifié une entrée sur la feuille "Base" à la date donnée de la feuille 1 (en "F1") en passant par une recherche sur le range "F2" à "AI2" de la feuille "Base" (Ces cellule sont en format date et les valeur sont trouvées via formule).
Exemple : Le Dédé1 a été enregistré par erreur, l'utilisateur doit alors le supprimé.

Problème :
je n'arrive pas à trouvé une méthode de recherche ni à trouver d'où vient le problème entre le format date ou le fait de rechercher une valeur issue d'une formule...

mes deux tentatives me paraissant les plus abouties :

Via Find. :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Sub Test1()
'déclaration des variables :
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String
 
'********* à adapter ***********
'affectation de valeurs aux variables :
    'on cherche le mot "Trouve"
 
Valeur_Cherchee = ActiveSheet.Range("F1").Value
MsgBox Valeur_Cherchee
    'dans la première colonne de la feuille active
Set PlageDeRecherche = Sheets("Base").Range("I2")
'*******************************
 
'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlPart, LookIn:=xlValues)
 
'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
MsgBox AdresseTrouvee
'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Sub
Via Application Match :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Test2()
 
Dim LaDate As Date, D As Long
LaDate = ActiveSheet.Range("F1").Value
MsgBox LaDate
On Error Resume Next
With Sheets("Base")
D = Application.Match(LaDate, Sheets("Base").Range("I2"), 0)
MsgBox Sheets("Base").Range("I2").Value
If Err = 0 Then
MsgBox Range("A" & D).Address & " " & Range("A" & D).Value
Else
MsgBox "Pas trouver la date demandée"
End If
End With
End Sub
Je vous joint aussi le fichier et d'avance merci à ceux qui se pencherons sur mon soucis...

Test 6.xls