Macro recherche dates
Résolu
Inguyone
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
Inguyone Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Inguyone Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis à la recherche d'une macro qui prendrait en charge la date du jour et la comparerait avec des dates dans une base de données. J'ai créé une formule pour contrôler ces dates et me les renvoyés avec un chiffre =SI(XX<XX ;2 ;1) et ensuite une macro
Sub suppr()
Dim I As Long
Dim Plage As Range
Set Plage = Range("m4:m" & Range("m4").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value > 1 Then
Plage.Cells(I).EntireRow.Delete
End If
Next
End Sub
Cela fonctionne, mais pourriez-vous m'aider pour que cette macro recherche directement dans la colonne « g »des dates et non dans celle de ma formule « m ».
En vous remerciant d'avance pour votre aide.
Je suis à la recherche d'une macro qui prendrait en charge la date du jour et la comparerait avec des dates dans une base de données. J'ai créé une formule pour contrôler ces dates et me les renvoyés avec un chiffre =SI(XX<XX ;2 ;1) et ensuite une macro
Sub suppr()
Dim I As Long
Dim Plage As Range
Set Plage = Range("m4:m" & Range("m4").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value > 1 Then
Plage.Cells(I).EntireRow.Delete
End If
Next
End Sub
Cela fonctionne, mais pourriez-vous m'aider pour que cette macro recherche directement dans la colonne « g »des dates et non dans celle de ma formule « m ».
En vous remerciant d'avance pour votre aide.
A voir également:
- Macro recherche dates
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Nombre de jours entre deux dates excel - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
3 réponses
Bonjour,
Ce code peut être :
précisions : la colonne G ne doit comporter que des dates.
Testez sur un petit nombre de lignes... Sinon pour arrêter une macro : Ctrl+Pause (à côté d'Impr Ecran)
"Laissez-moi deviner... Votre surnom, c'est «Bande Passante»? "
- Le Tribunal des flagrants délires- P.Desproges -
Ce code peut être :
Sub test() Dim I As Long Dim Plage As Range Set Plage = Range("G4:G" & Range("G4").End(xlDown).Row) For I = Plage.Cells.Count To 1 Step -1 If CDate(Date) > CDate(Plage.Cells(I).Value) Then MsgBox "Date du jour supérieure à date indiquée" Else MsgBox "Date du jour inférieure à date indiquée" End If Next End Sub
précisions : la colonne G ne doit comporter que des dates.
Testez sur un petit nombre de lignes... Sinon pour arrêter une macro : Ctrl+Pause (à côté d'Impr Ecran)
"Laissez-moi deviner... Votre surnom, c'est «Bande Passante»? "
- Le Tribunal des flagrants délires- P.Desproges -
Merci pour votre aide, mais malheureusement cela ne fonctionne pas. Je recois des messsages me signalant que la date est plus grande ou plus petite, mais la macro ne travaille pas.
Si vous recevez des messages, c'est que la macro "travaille". A vous de l'adapter un peu...
J'ai mis exprès ces messages pour que vous sachiez quoi faire.
Remplacez dans le code les lignes MsgBox par ce que vous souhaitez...
A TESTER SUR UNE COPIE DE VOTRE CLASSEUR EXCEL!!! Cette macro comporte un .Delete irréversible!!!
Exemple vous voulez supprimer toutes les lignes ou la date en colonne G est supérieure à la date du jour :
J'ai mis exprès ces messages pour que vous sachiez quoi faire.
Remplacez dans le code les lignes MsgBox par ce que vous souhaitez...
A TESTER SUR UNE COPIE DE VOTRE CLASSEUR EXCEL!!! Cette macro comporte un .Delete irréversible!!!
Exemple vous voulez supprimer toutes les lignes ou la date en colonne G est supérieure à la date du jour :
Sub test() Dim I As Long Dim Plage As Range Set Plage = Range("G4:G" & Range("G4").End(xlDown).Row) For I = Plage.Cells.Count To 1 Step -1 'ici on teste : si date du jour supérieure à date en G Alors If CDate(Date) > CDate(Plage.Cells(I).Value) Then 'ici on ne veux rien faire, donc on ne mets rien. Ici on mets une action si la date du jour est supérieure à la date en G Else 'ici on mets l'action si la date du jour est inférieure à la date en G Plage.Cells(I).EntireRow.Delete End If Next End Sub