Méthode Find qui n'aboutit pas avant 10h00 du matin ???
Bonjour à tous,
La macro ci-dessous recherche dans la première feuille du classeur un horaire existant généré par une saisie à la souris dans la deuxième feuille du classeur.Lorsque l'horaire est supérieur à 10h00 du matin, la recherche aboutit et la suppression de l'horaire est effective, c'est ce que je veux.
En revanche, lorsque l'horaire est inférieur à 10h00 du matin, la recherche n'aboutit pas !!!
Une subtilité qui m'échappe !
Sub Effacement()
Dim CIBLE As String
Dim LSS As Integer
Dim I As Byte
Dim RHD As Object
Dim X As Byte
LSS = ActiveCell.Row
CIBLE = Format(ActiveSheet.Cells(2, ActiveCell.Column).Value, "hh:mm")
Application.ScreenUpdating = False
For I = 1 To Sheets.Count
Sheets(I).Activate
Set RHD = Sheets("PLANNING").Range("E" & LSS & ":R" & LSS).Find(CIBLE, LookIn:=xlValues, LookAt:=xlWhole)
If Not RHD Is Nothing Then
Do
' MsgBox RHD.Address '
X = X + 1
RHD.ClearContents: RHD.Offset(0, 1).ClearContents
Loop While Not RHD Is Nothing And RHD.Address <> RHD.Address
Else
MsgBox "La valeur cherchée n'existe pas !"
End If
Next I
Ecriture_Couleurs
End Sub
Dans le classeur joint, des précisions pour l'utilisation du classeur. Macro "Effacement" dans le module 1.
Merci de m'aider à résoudre cette particularité.
AL 22
Bonsoir AL 22,
L'heure pour 10:00 h est en valeur excel 0,41666...
Donc vu que qu'en dessous on a un zéro devant si l'on prend hh:mm, il est possible que cela influe sur la recherche.
LSS = ActiveCell.Row
Cible= iif(ActiveSheet.Cells(2, ActiveCell.Column).Value < 0,41666, Format(ActiveSheet.Cells(2, ActiveCell.Column).Value, "h:mm"), Format(ActiveSheet.Cells(2, ActiveCell.Column).Value, "hh:mm")
Note: je n'ai pas téléchargé le fichier.
Je le ferais si possible en fin de soirée.
Bonsoir X Cellus, bonsoir le forum,
Très, très bien vu !!!
Je n'ai pas pensé à mettre une condition...
J'ai corrigé ton idée comme ceci et "BOOM", ça fonctionne avec :
CIBLE = IIf(ActiveSheet.Cells(2, ActiveCell.Column).Value < 10, _
Format(ActiveSheet.Cells(2, ActiveCell.Column).Value, "h:mm"), _
Format(ActiveSheet.Cells(2, ActiveCell.Column).Value, "hh:mm"))
L'heure 0,41666... n'était pas plus reconnue, finalement 10 ça passe !
Je fais pleins de test d'abord puis je clôture le Post ensuite, bravo !
A+
AL 22