VBA problème macro et duplication de fichiers macro
Résolu
caroouline
Messages postés
37
Statut
Membre
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé une macro avec l'outil enregistrement macro.
Le but de cette macro consiste à effacer certaines cellules et propager mes formules.
Ma VBA ressemble à ça :
Sub Effacement()
'
' Effacement Macro
'
'
ActiveWorkbook.Worksheets("ACHATS 2018").AutoFilter.Sort.SortFields.Clear
Range("C5").Select
Selection.ClearContents
Range("E5").Select
Selection.ClearContents
Range("B2").Select
Selection.ClearContents
Range("I5").Select
Selection.ClearContents
Range("N5").Select
Selection.ClearContents
Rows("6:6").Select
Range(Selection, Selection.End(xlDown)).Select
Rows("6:132").Select
Selection.FillDown
ActiveWindow.LargeScroll Down:=-2
Range("C5").Select
End Sub
Mon problème est que ma macro ne marche pas (l'indice n'appartient pas à la sélection)
De plus j'aimerais dupliquer ce fichier par la suite en changeant le nom du fichier et en gardant la macro. Est-ce possible? et comment?
Pourriez-vous m'expliquer ce que veut dire la première ligne qui commence par active et la dernière qui commence par active aussi.
J'ai créé une macro avec l'outil enregistrement macro.
Le but de cette macro consiste à effacer certaines cellules et propager mes formules.
Ma VBA ressemble à ça :
Sub Effacement()
'
' Effacement Macro
'
'
ActiveWorkbook.Worksheets("ACHATS 2018").AutoFilter.Sort.SortFields.Clear
Range("C5").Select
Selection.ClearContents
Range("E5").Select
Selection.ClearContents
Range("B2").Select
Selection.ClearContents
Range("I5").Select
Selection.ClearContents
Range("N5").Select
Selection.ClearContents
Rows("6:6").Select
Range(Selection, Selection.End(xlDown)).Select
Rows("6:132").Select
Selection.FillDown
ActiveWindow.LargeScroll Down:=-2
Range("C5").Select
End Sub
Mon problème est que ma macro ne marche pas (l'indice n'appartient pas à la sélection)
De plus j'aimerais dupliquer ce fichier par la suite en changeant le nom du fichier et en gardant la macro. Est-ce possible? et comment?
Pourriez-vous m'expliquer ce que veut dire la première ligne qui commence par active et la dernière qui commence par active aussi.
4 réponses
-
Bonjour,
la macro fonctionne très bien.
Ce qui fait qu'elle ne fonctionne pas, c'est le fait qu'aucun filtre n'est appliqué sur la feuille.
Puisque dans le code, tu demandes à réinitialiser les filtres qui n'existent pas.
Si tu dupliques ton fichier, la macro reste avec, si elle est intégrée au classeur.
Au passage, j'ai légèrement allégé ton code :
Sans pointer un nom de Sheet, il faut le mettre dans la Feuil2 (ACHATS 2018)
Ainsi, si tu dupliques ton fichier, la macro sera associé à Feuil2
Sub Effacement() AutoFilter.Sort.SortFields.Clear Range("C5").ClearContents Range("E5").ClearContents Range("B2").ClearContents Range("I5").ClearContents Range("N5").ClearContents Rows("6:6").Select Range(Selection, Selection.End(xlDown)).Select Rows("6:132").FillDown ActiveWindow.LargeScroll Down:=-2 Range("C5").Select End Sub
-
Bonjour,
Encore plus simple:
Ligne filtre a supprimer si en effet pas de filtre
Sub Effacement() ' Effacement Macro ActiveWorkbook.Worksheets("ACHATS 2018").AutoFilter.Sort.SortFields.Clear Range("B2, C5, E5, I5, N5").ClearContents Rows("6:132").ClearContents End Sub- J'avais pas allégé autant, pensant que ce serait plus compréhensible pour elle, en terme de lecture/compréhension du code :)
Et pour pouvoir dupliquer son fichier/macro, sans l'attribuer à un nom de feuille spécifique :
Sub Effacement() AutoFilter.Sort.SortFields.Clear Range("B2, C5, E5, I5, N5").ClearContents Rows("6:132").ClearContents End Sub
-
-
Bonjour,
A quelle ligne est l'erreur? -
Bonjour,
ActiveWorkbook.Worksheets("ACHATS 2018").AutoFilter.Sort.SortFields.Clear -
Bonjour yoyo01000,
Je te remercie beaucoup ça marche parfaitement.
Et j'ai compris l'erreur que je fais souvent.
Bonne journée à tous.