macro dupliquer des feuilles

  • Initiateur de la discussion Initiateur de la discussion nat38
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nat38

Guest
bonjour,

je veux réaliser une macro qui duplique des feuilles par manager.
A chaque feuille correspond des infos pour le manager concerné.
J'arrive à créer des feuilles par manger mais comment faire pour que le manager n'aperçoive que les infos de ces collaborateurs.?????
je joins un fichier en exemple
Dupliquer la feuille base pour chaque manager
Chaque manager ne doit voir que les infos de ces collaborateurs ou il est manager
voir l'exemple
d'avance merci bcp pour votre aide
😕
 

Pièces jointes

Re : macro dupliquer des feuilles

Bonjour nat38,

Ta demande n'est pas très claire: si tu ne veux pas que les managers voient les infos sur les employés des autres managers, fais trois fichiers distincts, plutôt que trois feuilles dans un même fichier!?

D'autre part, précise pourquoi tu as besoin d'une macro: la manipulation (sans macro) n'a pas l'air d'être fastidieuse.

Et si je n'ai rien compris, c'est que je suis sourd, aveugle et (un peu!?) sot ... ou qu'il manque des infos! 🙂
 
Re : macro dupliquer des feuilles

salut
en fait j'ai un fichier base avec 6000 lignes et 35 managers.
Je voudrais creer 35 fichiers, donc un pour chaque manager avec seulement les salariés qu'il encadre.
ensuite envoyer a chaque manager son fichier.
merci
 
Re : macro dupliquer des feuilles

Bonjour nat38 , Salut Modeste 🙂
Une proposition
Dans le code choisir le type d'enregistrement (.xls, .xlsx, .Xlsm)
Les fichiers seront créées dan le même dossier que l'exemple.
VB:
Private Sub CommandButton1_Click()
Dim i&, LNbrSht&, F As Worksheet
LNbrSht = Sheets.Count
Application.ScreenUpdating = False
For i = 2 To Cells(Rows.Count, 1).End(3).Row
    On Error Resume Next
    Set F = Sheets(Cells(i, 6).Value)
    If Err Then
        Err.Clear
        Sheets.Add(After:=Sheets(Sheets.Count)).Name = Cells(i, 6)
        Set F = Sheets(Sheets.Count)
        Rows(1).Copy F.Cells(1, 1)
    End If
    Rows(i).Copy F.Cells(Rows.Count, 1).End(3)(2)
    Set F = Nothing
Next i

If Sheets.Count > LNbrSht + 1 Then
    Application.DisplayAlerts = False
    For i = Sheets.Count To LNbrSht + 1 Step -1
        Sheets(i).Move
        With ActiveWorkbook
            '.SaveAs Filename:=ThisWorkBoock.Path & "\" & Sheets(1).Name & ".xlsx"
            '.SaveAs Filename:=ThisWorkBoock.Path & "\" & Sheets(1).Name & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
            .SaveAs Filename:=ThisWorkbook.Path & "\" & .Sheets(1).Name & ".xls"
            .Close False
        End With
    Next i
    Application.DisplayAlerts = False
End If

Application.ScreenUpdating = True
End Sub
Cordialement
 

Pièces jointes

Re : macro dupliquer des feuilles

Re-bonjour nat38,

Si c'est bien de créer autant de fichiers que de noms de managers qu'il s'agit, tester le fichier joint. Le code est dans un module standard.
Attention, les nouveaux fichiers sont créés à l'emplacement où le fichier joint sera sauvegardé!

Tester donc ce fichier, puis essayer sur une version "réduite" de la liste réelle. Je suis parti du principe que 2 managers différents n'auraient pas le même nom. C'est un filtre avancé qui est utilisé dans le code, pour filtrer avant de copier.

Oups! 😱 Sorry Efgé, pas rafraîchi ... je regarde ton code
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
Réponses
5
Affichages
249
Didierpasdoué
D
Retour