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. :
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
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
Je vous joint aussi le fichier et d'avance merci à ceux qui se pencherons sur mon soucis...
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
Test 6.xls
Partager