VBA problème macro et duplication de fichiers macro

Résolu/Fermé
caroouline Messages postés 35 Date d'inscription mardi 5 mai 2020 Statut Membre Dernière intervention 15 février 2024 - 5 juin 2020 à 09:30
f894009 Messages postés 17190 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 16 mai 2024 - 6 juin 2020 à 07:02
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.
A voir également:

4 réponses

Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 165
Modifié le 5 juin 2020 à 10:16
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


1
f894009 Messages postés 17190 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 16 mai 2024 1 706
5 juin 2020 à 10:09
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
0
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 165 > f894009 Messages postés 17190 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 16 mai 2024
5 juin 2020 à 10:21
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
0
f894009 Messages postés 17190 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 16 mai 2024 1 706 > Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022
6 juin 2020 à 07:02
Bonjour,
lecture/compréhension du code
Tout a fait Thierry mais: l'efficacité d'execution, le moins de ligne possible et "élever" le niveau doivent être le but a atteindre
Pout duplication, faite le manip avec le avec l'enregistreur de macro et modifiez
0
f894009 Messages postés 17190 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 16 mai 2024 1 706
5 juin 2020 à 09:41
Bonjour,

A quelle ligne est l'erreur?
0
caroouline Messages postés 35 Date d'inscription mardi 5 mai 2020 Statut Membre Dernière intervention 15 février 2024
5 juin 2020 à 09:50
Bonjour,

ActiveWorkbook.Worksheets("ACHATS 2018").AutoFilter.Sort.SortFields.Clear
0
f894009 Messages postés 17190 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 16 mai 2024 1 706
5 juin 2020 à 09:56
Re,
Avant de lancer la macro, c'est le bon nom de feuille et y a un flitre?
0
caroouline Messages postés 35 Date d'inscription mardi 5 mai 2020 Statut Membre Dernière intervention 15 février 2024
5 juin 2020 à 10:12
Bonjour yoyo01000,

Je te remercie beaucoup ça marche parfaitement.
Et j'ai compris l'erreur que je fais souvent.

Bonne journée à tous.
0