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

  • Initiateur de la discussion Initiateur de la discussion RiversideB
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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😱" & 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 ?
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
475
Réponses
4
Affichages
371
Retour