Problème AUTOFILL couplé avec IF
Bonjour à tous !
Je suis sur une fonction depuis 1 heure et je n'arrive pas à déceler l'erreur.
En fait j'ai un fichier avec plusieurs feuilles, chaque feuille représente 1 mois et en fait je cherche à faire la fonction autofill sur tous les mois sauf pour le mois de janvier.
Mois de janvier = MJANVIER; mois de février = MZFEVRIER; mois de mars = MZMARS
Voici le principe du code. J'enlève la protection des feuilles, j'affiche tous les filtres et derrière sur les feuilles commençant par "MZ" j'applique un autofill de la plage C12 à L12 sans modifier la mise en forme et derrière je reprotège la feuille.
Sub Autofill()
Dim i As Long
Dim f
For Each f In Worksheets
f.Unprotect
On Error Resume Next
f.ShowAllData
On Error GoTo 0
i = ActiveSheet.Range("A65536").End(xlUp).Row
If Left(f.Name, 2) = "MZ" Then
f.Range("C12:L12").Select
Selection.Autofill Destination:=f.Range("C12:L" & i), Type:=xlFillValues
End If
f.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowSorting:=True, AllowFiltering:= _
True, AllowUsingPivotTables:=True
Next f
End Sub
Le message d'erreur est "La méthode select de la classe Range a échoué"
Est-ce que vous voyez l'erreur dans le code?
Merci d'avance pour vos lumières !!
Bonjour,
essaie ainsi (non testé)
tu ne peux pas sélectionner directement une cellule (des cellules) sans avoir selectionné la feuille au préalable.
donc
soit tu ajoutes
f.select
f.Range("C12:L12").select
selection.autofill
soit tu évites d'utiliser les select
proposition en enlevant les select :
Sub Autofill()
Dim i As Long
For Each f In Worksheets
f.Unprotect
On Error Resume Next
f.ShowAllData
On Error GoTo 0
i = ActiveSheet.Range("A65536").End(xlUp).Row
If Left(f.Name, 2) = "MZ" Then
f.Range("C12:L12").Autofill Destination:=f.Range("C12:L" & i), Type:=xlFillValues
End If
f.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowSorting:=True, AllowFiltering:= _
True, AllowUsingPivotTables:=True
Next f
End Sub
Super merci beaucoup pour cette réponse rapide et efficace !!
Je suis parti sur la solution sans select et ça fonctionne très bien.
Bonne journée.