Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro sur toutes les feuilles d'un classeur

fouggy

XLDnaute Junior
Bonjour le Forum,

Trop nul ce que j'ai à demander mais bon je sais pas pourquoi ça bloque...

J'ai une macro, ci-dessous, qui fonctionne parfaitement bien sur ma feuille active. Elle consiste à supprimer toutes les lignes dont les dates de la colonne A ne correspondent pas au créneau de dates renseigné.

J'ai par ailleurs la codification à intégrer à toutes macros pour que celles-ci s'appliquent à toutes les feuilles d'un classeur. Elle marche parfaitement bien aussi.

Sauf que pour la macro ci-dessous, j'arrive pas à faire en sorte qu'elle s'applique à toutes les feuilles du classeur !!! Probablement un problème de positionnement de ligne de commande.

Help, Please... Ans Thank's...

LA MACRO :

Sub SupprimeLignesDates()

Dim Debut As Date
Dim Fin As Date
Dim temp1 As Long
Dim temp2 As Long

Debut = InputBox("Quelle est la date de début d'analyse ? (jj/mm/aa)", "Date début")
Fin = InputBox("Quelle est la date de fin d'analyse ? (jj/mm/aa)", "Date fin")

With Range("a1:a10000")
Set c = .Find(Debut)
If Not c Is Nothing Then
temp1 = c.Row
End If
Set d = .Find(Fin, LookIn:=xlValues)
If Not c Is Nothing Then
temp2 = d.Row
End If
End With

Range(Cells(1, 1), Cells(temp1 - 1, 1)).EntireRow.Delete
Range(Cells(temp2, 1), Cells(10000, 1)).EntireRow.Delete

End Sub

LA CODIFICATION A INSERER :

On Error Resume Next
Dim w As Worksheet
For Each w In Worksheets
Next

LE POSITIONNEMENT DE LA CODIFICATION DANS LA MACRO QUI NE FONCTIONNE PAS :

Sub SupprimeLignesEnFonctionDates()

On Error Resume Next

Dim w As Worksheet

Dim Debut As Date
Dim Fin As Date
Dim temp1 As Long
Dim temp2 As Long



Debut = InputBox("Quelle est la date de début d'analyse ? (jj/mm/aa)", "Date début")
Fin = InputBox("Quelle est la date de fin d'analyse ? (jj/mm/aa)", "Date fin")


For Each w In Worksheets

With Range("a1:a10000")
Set c = .Find(Debut)
If Not c Is Nothing Then
temp1 = c.Row
End If
Set d = .Find(Fin, LookIn:=xlValues)
If Not c Is Nothing Then
temp2 = d.Row
End If
End With

Range(Cells(1, 1), Cells(temp1 - 1, 1)).EntireRow.Delete
Range(Cells(temp2, 1), Cells(10000, 1)).EntireRow.Delete

Next

End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…