VBA problème macro et duplication de fichiers macro
Résolu
caroouline
Messages postés
37
Statut
Membre
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 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.
A voir également:
- VBA problème macro et duplication de fichiers macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Duplication écran - Guide
- Renommer des fichiers en masse - Guide
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
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
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 SubEt 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 Sublecture/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