[Résolu] Find et donnée absente

  • Initiateur de la discussion Initiateur de la discussion dancar
  • 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 !

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
 
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
....
 
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
 
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
 
- 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

Réponses
2
Affichages
154
Réponses
28
Affichages
2 K
Réponses
2
Affichages
1 K
Retour