[Résolu] Find et donnée absente

dancar

XLDnaute Junior
Bonsoir à tous,

La portion de code suivante ne fonctionne pas si "00:00" est absent de la recherche

Dim Trouve As Date
FinCol = [E4].End(xlDown).Address 'Fin colonne E

'On recherche le premier 00:00
Trouve = "00:00"
Cible = Range("E4:" & FinCol).Find(What:=Trouve, lookat:=xlWhole).Offset(-1, 1).Address
'On supprime les dates en trop
Range("D4:" & Cible).Delete Shift:=xlUp

J'ai trouvé une solution à ma portée avec des On Error GoTo mais ça ne me plait pas et rallonge beaucoup le code.
Je préférerai quelque chose du genre (que j'ai trouvé dans ce forum) mais que je n'arrive pas à adapter à mon code :

Sub Recherche_3()
Dim TROUVE As Range, Quoi As Range, f As Worksheet
Set Quoi = ActiveCell: Set f = Sheets("Feuille")
Set TROUVE = f.Cells.Find(Quoi.Value, f.[G1], -4163, 1, 1, 1, , False)
If TROUVE Is Nothing Then
MsgBox "Valeur non trouvée!", vbInformation
Exit Sub
Else
f.Activate: TROUVE.Select
End If
End Sub


Votre aide sera la bienvenue.

Bien à vous
Christian
 

chris

XLDnaute Barbatruc
Bonjour

Code:
Dim Cible as range
Trouve = "00:00"
Set Cible = Range("E4:" & FinCol).Find(What:=Trouve, lookat:=xlWhole).Offset(-1, 1)
If not cible is nothing then
Range("D4:" & Cible.address).Delete Shift:=xlUp
....
 

chris

XLDnaute Barbatruc
BOnjour

J’avais zappé ton offset
Code:
Dim Cible As Range
Trouve = "00:00"
Set Cible = Range("E4:" & FinCol).Find(What:=Trouve, LookIn:=xlValues, LookAt:=xlWhole)
If Not Cible Is Nothing Then
   Range("D4:" & Cible.Offset(-1, 1).Address).Delete Shift:=xlUp
End If
fonctionne chez moi
 

dancar

XLDnaute Junior
Chez moi fonctionne oui et non , effectivement si 00:00 n'existe pas je n'ai plus de message d'erreur mais si 00:00 existe il ne le "voit" pas et zap cette partie Range("D4:" & Cible.Offset(-1, 1).Address).Delete Shift:=xlUp .
 

dancar

XLDnaute Junior
Les secondes sont bien à 00. Pour que ça fonctionne il faut absolument que le mette les heures au format 00:00:00 (ce que je ne veut pas), LookIn:=xlValues n'est pas indispensable et je doit supprimer Dim Trouve As Date du coup plus besoin de Trouve = "00:00*" , je mets directement Find(What:="00:00:00".
Solution : peut être mettre les heures au format 00:00:00 le temps d'exécuter le code et rétablir le format 00:00 à la fin.
Merci de ton aide
 

Discussions similaires

Réponses
28
Affichages
977

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16