Problème macro de recopiage

Bonsoir,

dans un fichier j'ai mis en place une macro de recopiage afin pour créer des fichiers ne comportant qu'une partie définie du fichier principal.

Pour faire plus clair, j'ai un planning général qui comporte le planning de tous les sites. Afin de faire des calculs sur chaque sites et éviter de surcharger le planning principal ou de créer de nombreux liens, j'ai mis une macro qui recopie d'après un modèle vierge.

La macro "génère" va créer un fichier par site depuis le planning général et grâce au planning modèle. Chaque fichier site aura 12 feuilles pour les 12 mois de l'année.

Tout ça fonctionne mais j'ai tout de même un problème.

Mon planning général comporte plus de 12 feuilles car j'ai une légende, une feuille d'heures sup que je ne veux pas recopier sur les plannings sites et qui ne rentre pas sur le format de mon modèle.

Comment rajouter dans ma macro une limitation aux seules 12 premières feuilles (ou uniquement aux noms des feuilles)?

Merci pour votre aide.

En pièce jointe le planning général et le planning modèle.

Bonsoir,

Une solution parmi d'autres :

Option Compare Text

Sub Controle12Mois()
    Dim TabMois As Variant, Sh As Worksheet, sMois As String, sMsg As String
    sMois = "JANVIER-FEVRIER-MARS-AVRIL-MAI-JUIN-JUILLET-AOUT-SEPTEMBRE-OCTOBRE-NOVEMBRE-DECEMBRE"
    For Each Sh In ActiveWorkbook.Worksheets
        If InStr(1, sMois, Sh.Name) = 0 Then
            sMsg = sMsg & Sh.Name & vbCr
        End If
    Next Sh
    If Not sMsg = Empty Then
        MsgBox "Les noms des feuilles suivantes ne sont pas autorisés :" _
                & vbCr & sMsg, vbOKOnly + vbExclamation, ActiveWorkbook.Name
    End If
End Sub

A adapter en fonction de ton besoin.

A+

Benead

Bonjour

Si tes 12 onglets sont au début

tu peux supprimer cette ligne

      For Each feuille In ThisWorkbook.Sheets

et la remplacer par

  For i = 1 To 12
    Set feuille = Sheets(i)

le reste ne change pas

merci à vous 2.

Je voudrais utiliser la proposition de Banzai64, bien plus simple mais j'ai une erreur lors du lancement de la macro :

"variable objet ou variable de bloc with non définie"

'définition de la zone concernant le site
        For i = 1 To 3
        Set feuille = Sheets(i)
        deb = feuille.Columns(1).Find(listesite(n)).Row + 1
        fin = feuille.Columns(1).Find(listesite(n + 1)).Row - 1
             Set zone = feuille.Rows(deb & ":" & fin)

je n'arrive pas à comprendre l'erreur. Dans mon exemple, je n'avais mis que 3 feuilles et j'ai donc mis de 1 à 3

Bonjour

Désolé l'erreur vient du fait que tu ouvres un fichier avant (enfin je le pense)

Donc il faut modifier le code

For i = 1 To 3
  Set feuille = ThisWorkbook.Sheets(i)

oui merci c'est exactement ça

Rechercher des sujets similaires à "probleme macro recopiage"