XL 2016 Copie onglets avec macro affecter à un bouton

Maxou69

XLDnaute Nouveau
Bonjour,

J'ai un classeur avec 5 onglets.
Je souhaite affecter une macro à un bouton afin que 3 onglets soit copiés dans un nouveau classeur
J'ai effectuer des recherches sur internet et j'ai réussis à composer le code suivant pour effectuer mon macro

Sub copieonglet()
Dim a, e
Application.ScreenUpdating = False
Application.DisplayAlerts = False
a = Array("ITFORM", "FinanceForm", "NotilusAccess")
With Workbooks.Add(xlWBATWorksheet) 'nouveau document, 1 feuille
For Each e In a
ThisWorkbook.Sheets(e).Copy After:=.Sheets(.Sheets.Count)
Next

End With
End Sub

J'ai bien un nouveau fichier excel qui s'ouvre avec mes 3 onglets, et je peux le sauvegarder dans le dossier que je souhaite.
Le seul inconvénient, c'est que j'ai un onglet avant les 3 que j'ai copier
Je suppose que je dois modifier la ligne en bleu mais je ne sais pas trop quoi enlever..
J'ai essayer d'enlever After sheets mais ca ne fonctionne pas..

Si l'un d'entre vous peux me filer coup de main ca serait au top!

Merci par avance !

Bonne journée à vous
 

Maxou69

XLDnaute Nouveau
Bonjour Sylvanu,

Je reviens sur le sujet, j'ai encore une question..

Lorsque que je copie mes feuilles dans un nouveau classeur tout se passe très bien.
Sur un des mes onglets j'ai deux listes déroulantes dans deux cellules, alors la 1ere marche très bien sans soucis, mais la deuxième ne s'affiche pas
Aurai tu une idée sur ce petit soucis ?

Merci beaucoup !
 

Maxou69

XLDnaute Nouveau
Bonjour Sylvanu,

Merci pour ton aide !
La liste est dans le fichier initial, mais elle n'est pas présente dans le fichier exporté dans le nouveau classeur :(

Je te joins le fichier pour avoir une visibilité !
 

Pièces jointes

  • On_Boarding_File_template-Copie (1).xlsm
    227.4 KB · Affichages: 3

Maxou69

XLDnaute Nouveau
J'ai trouver ma solution pour cela, je vais finalement créer la macro pour que ma feuille Lists soit copié aussi dans le nouveau classeur mais masqué afin que les listes déroulantes soient disponibles

J'ai une autre question ducoup...

Sub EmployeeForm()
'
' EmployeeForm Macro
'

'
ActiveWorkbook.Save
Sheets(Array("Employee Form", "Lists")).Select
Sheets("Employee Form").Activate
Sheets(Array("Employee Form", "Lists")).Copy
Sheets("Lists").Select
ActiveWindow.SelectedSheets.Visible = False
chemin = ActiveWorkbook.Path
ActiveWorkbook.SaveAs Filename:=Worksheets("Feuil5").Range(R2).Value, CreateBackup:=False
Application.Dialogs(xlDialogSendMail).Show
End Sub


Dans ce code, j'ai fait en sorte de copier l'onglet EMPLOYEE FORM et LISTS
L'onglet LISTS est masqué dans le nouveau classeur
Et je souhaite, enregistrer le nouveau classeur dans un dossier particulier et que le nom du fichier soit égal au contenu d'une cellule de l'onglet LIST
Mais je n'arrive pas à faire en sorte que mon nouveau fichier soit nommé par le contenu d'une cellule..
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Maxou,
Vous n'avez pas répondu à ma question. En D5 il n'y a pas de liste déroulante?
Pour le second point, j'ai testé cela avec succés :
VB:
Sub EnregistrerSous()
Chemin = "C:\Users\PC_PAPA\Desktop\"                        ' Mettre le chemin, ne pas oublier le "\" final.
NomFichier = [A1]                                           ' Mettre la cellule où se trouve le nom du fichier
    ActiveWorkbook.SaveAs Filename:=Chemin & NomFichier, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
 

Maxou69

XLDnaute Nouveau
Bonjour Sylvanu,
En effet en D5 il me manque la Liste déroulante qui devrait être dans cette cellule, je ne comprenais pas pourquoi elle était disponible sur la cellule TITLE et non dans la cellule D5.. Finalement si je copie l'onglet LISTS où se trouve la base de la liste avec l'onglet Employee Form tout fonctionne :)

Pour la deuxième partie, je souhaite conserver le code VBA pour la copie de mes deux onglets et l'enregistrer dans un dossier partagé :

Sub Enregistrer sous()
'
' EmployeeForm Macro
'

'
ActiveWorkbook.Save
Sheets(Array("Employee Form", "Lists")).Select
Sheets("Employee Form").Activate
Sheets(Array("Employee Form", "Lists")).Copy
Sheets("Lists").Select
ActiveWindow.SelectedSheets.Visible = False
Chemin = " ' Mettre le chemin, ne pas oublier le "\" final."
NomFichier = ' Mettre la cellule où se trouve le nom du fichier'
ActiveWorkbook.SaveAs Filename:=Chemin & NomFichier, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Application.Dialogs(xlDialogSendMail).Show
End Sub

Le nom du fichier se trouve sur l'onglet LISTS en cellule R2, mon code sera alors
Nom fichier = Sheets("Lists") [R2] ?
je n'arrive pas à implementer le code que tu m'as donné dans le code que j'ai déjà.. :(

Merci beaucoup pour ton aide !
 

Discussions similaires

Statistiques des forums

Discussions
315 097
Messages
2 116 187
Membres
112 679
dernier inscrit
Yupanki