Problème Macro Filtre

g.hayoune

XLDnaute Nouveau
coucou tous le monde!!

voila en fait j'ai récupérer un code pour filtre une feuille puis recopier le contenu sur une autre. sa a l'air de bien fonction lorsque j'active la macro qui me permet d'effacer les données recopiée ainsi que lorsque je choisie la date pour filtrer mais il y un problème lorsque le filtre veut x'executer:

le debogeur se lance et me marque "erreu d'execution 1004"
erreur defini par l'application opu par l'objet


voila mon code

Code:
Public la_date As Variant
Public DerL As Long
Public WS As Worksheet
Sub Macro_OK()
'suppression des filtres existants
For Each WS In Worksheets
If WS.AutoFilterMode = True Then WS.AutoFilterMode = False
Next
Application.ScreenUpdating = False
la_date = Format(Date, "mm/dd/yy")
a_filtre ("GAZ")
a_filtre ("WAN")
a_filtre ("STPS.ELEC")
Sheets("DISPONIBILITE").Columns("A:M").Columns.AutoFit
le_filtre
Application.ScreenUpdating = True
End Sub


Sub efface_agenda()
Sheets("DISPONIBILITE").Range(Cells(2, 1), Cells(200, 20)).Clear
For Each WS In Worksheets
If WS.AutoFilterMode = True Then WS.AutoFilterMode = False
Next
End Sub
Sub a_lademande()
'suppression des filtres existants
For Each WS In Worksheets
If WS.AutoFilterMode = True Then WS.AutoFilterMode = False
Next

Application.ScreenUpdating = False
la_date = Format(InputBox("Saisir la date désirée"), "mm/dd/yy")

a_filtre ("GAZ")
a_filtre ("WAN")
a_filtre ("STPS.ELEC")

Sheets("DISPONIBILITE").Columns("A:M").Columns.AutoFit
le_filtre
Application.ScreenUpdating = True
End Sub

Sub le_filtre()
Dim WS As Worksheet
For Each WS In Worksheets
If WS.AutoFilterMode = True Then WS.ShowAllData
Next
End Sub
Sub a_filtre(feuille As String)
DerL = Sheets("DISPONIBILITE").Cells(65536, 1).End(xlUp).Row + 1
With Worksheets(feuille)
.Range("A1").Copy Sheets("DISPONIBILITE").Range("A" & DerL)
.Range("A2").AutoFilter _
1, ">=" & la_date, xlAnd, "<=" & la_date
[COLOR="Red"][B].AutoFilter.Range.Copy Sheets("DISPONIBILITE").Range("A" & DerL + 1)[/B][/COLOR]
End With
End Sub


la partie rouge est celle remarquer par le debogueur comme mauvaise.

si quelqu'un a une idée je suis tout ouïe!!!:D
 

g.hayoune

XLDnaute Nouveau
Re : Problème Macro Filtre

merci beaucoup ernest je vais essayer tout sa une fois arriver au travail... parce que tu t'en doute c pas pour le plaisir que je me prend la tete comme sa sur excel:D (meme si j'aime bien sa).

je te tein au courrant
bonne journée
 

g.hayoune

XLDnaute Nouveau
Re : Problème Macro Filtre

re ernest!!

mauvaise nouvelle
:eek:

toujours ler meme probleme le debogueur se lance lorsque je rentre une date dans le inputbox.

en plus lors du démmarage la macro_ok bug sur ShowAllData... snif


je te recopie le code modifié comme tu me la conseiller et je te met en couleur les partie qui bug.

code des macro
Code:
Public la_date As Variant
Public DerL As Long
Public WS As Worksheet
Sub Macro_OK()
'suppression des filtres existants
For Each WS In Worksheets
If WS.AutoFilterMode = True Then WS.AutoFilterMode = False
Next
Application.ScreenUpdating = False
la_date = Format(Date, "mm/dd/yy")
a_filtre ("GAZ")
a_filtre ("WAN")
a_filtre ("STPS.ELEC")
Sheets("DISPONIBILITE").Columns("A:M").Columns.AutoFit
le_filtre
Application.ScreenUpdating = True
End Sub


Sub efface_agenda()
Sheets("DISPONIBILITE").Range(Cells(2, 1), Cells(200, 20)).Clear
For Each WS In Worksheets
If WS.AutoFilterMode = True Then WS.AutoFilterMode = False
Next
End Sub
Sub a_lademande()
'suppression des filtres existants
For Each WS In Worksheets
If WS.AutoFilterMode = True Then WS.AutoFilterMode = False
Next

Application.ScreenUpdating = False
la_date = Format(InputBox("Saisir la date désirée"), "mm/dd/yy")

a_filtre ("GAZ")
a_filtre ("WAN")
a_filtre ("STPS.ELEC")

Sheets("DISPONIBILITE").Columns("A:M").Columns.AutoFit
le_filtre
Application.ScreenUpdating = True
End Sub

Sub le_filtre()
Dim WS As Worksheet
For Each WS In Worksheets
If WS.AutoFilterMode = True Then WS.[COLOR="red"]ShowAllData[/COLOR] [COLOR="SeaGreen"]'ce code bug au demmarage du fichier[/COLOR]
Next
End Sub
Sub a_filtre(feuille As String)
DerL = Sheets("DISPONIBILITE").Cells(65536, 1).End(xlUp).Row + 1
With Worksheets(feuille)
.Range("A1").Copy Sheets("DISPONIBILITE").Range("A" & DerL)
.Range("A1").AutoFilter _
1, ">=" & la_date, xlAnd, "<=" & la_date
[COLOR="Red"].AutoFilter.Range.Copy Sheets("DISPONIBILITE").Range("A" & DerL + 1)[/COLOR] [COLOR="seagreen"]'ce code bug lorsque l'in clique sur ok apres avoir taper la date dans l'inputbox[/COLOR]
End With
End Sub

donc si tu voit pourquoi par hasard je suis preneur parce que sinan le pc va passer par la fenertre!!:mad:

lol:D

a bientot
 

g.hayoune

XLDnaute Nouveau
Re : Problème Macro Filtre

salut skoobi!!

g deja essayer le code que tu avai marquer au debut mais pareil sa bug. et cette macro fonctionne très bien sur excel 97 car il provient d'un autre fichier qui lui s'execute correctement sur excel 97...
par contre je te remerci vraiment car le deuxieme bug a disparue grace a ta ligne de code.

Mais je crois que pour mon premier probleme je ni arriverai jamais:( snif
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
361

Statistiques des forums

Discussions
312 505
Messages
2 089 101
Membres
104 031
dernier inscrit
RimeF