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.

Rechercher des sujets similaires à "probleme autofill couple"