Erreur exécution '1004' Macro VBA [la méthode Autofilter de la classe Range a échoué]

RiversideB

XLDnaute Nouveau
Bonjour à tous !

Je débute tout juste avec le langage VBA dans Excel et je suis confronté à un problème que je n'arrive pas à résoudre, j'aimerais obtenir votre aide.

Voici la partie de ma macro qui bug :

Sub VL06_()
'

'Selection feuille & clear des données
Sheets("VL06").Select
'ote et remet les filtres
Range("e12").Select

If Not ActiveSheet.AutoFilter Is Nothing Then
Selection.AutoFilter
Selection.AutoFilter
Else
Selection.AutoFilter
End If


nb = Range("e" & Rows.Count).End(xlUp).Row + 1

Range("a13:j" & nb).Clear
Range("e13").Select

'Ouverture du fichier d'import
Workbooks.OpenText Filename:=AdrFichImport, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array _
(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8 _
, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 4), Array(13, 1)), _
TrailingMinusNumbers:=True


'Trouve la dermiere ligne a importer

nb = Range("e" & Rows.Count).End(xlUp).Row + 1


'Trouve la dermiere ligne a importer

nb = Range("e" & Rows.Count).End(xlUp).Row


'copie des valeurs
Range("b2:eek:" & nb).Copy
Windows(FichTrav).Activate
ActiveSheet.Paste

'Fermeture fichier source
Windows(FichImport).Activate
Application.CutCopyMode = False
ActiveWorkbook.Close False




End Sub

Quand je lance la macro, excel me dit : Erreur d'exécution '1004' La méthode Autofilter de la classe Range a échoué et quand je clique sur Débogage, Excel me colore en jaune Selection.Autofilter (comme présenté ci-dessus), je n'arrive absolument pas à comprendre pourquoi, pourriez-vous m'aider svp ?
 

Orodreth

XLDnaute Impliqué
Re : Erreur exécution '1004' Macro VBA [la méthode Autofilter de la classe Range a éc

Bonjour,

Pour reprendre la partie de ton code qui pose problème ... Elle ne sert pas à grand chose en fait.

Code:
If Not ActiveSheet.AutoFilter Is Nothing Then
    Selection.AutoFilter
    Selection.AutoFilter
Else
    Selection.AutoFilter
End If

Concrètement, tu dis "Si les filtres automatiques de ma feuille existent, alors filtrer la sélection, sinon, filtrer la sélection.
La conditionnelle ne servant à rien, je te propose de base de transformer ton code comme ceci:
Code:
Selection.Autofilter

Certes, ça ne résout pas le problème. Donc on y arrive.
Si tu veux tester la présence des filtres automatiques, préfère l'instruction
Code:
    If ActiveSheet.FilterMode then 'Test booléen pour savoir si la feuille est filtrée, True si oui
        '...
    Else
        '...
    End If

Ensuite, que veux-tu faire exactement ? Ca sera plus simple pour corriger ton code si on sait ce que tu veux en faire.

Cordialement,
Orodreth
 

Discussions similaires

Réponses
1
Affichages
120

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG