Bonjour à tous!!
Bon débutant sous VBA, j'essaye de trouver des morceaux de codes sur internet en fonction des problématiques que je rencontre et comprendre le fonctionnement du codage.
ici mon souhait est de creer une macro qui a partir du classeur TESTMACRO, crée un nouveau fichier Excel avec 6 onglets (voir ci dessous). Je souhaite que la macro me fasse un tri sur la feuille du classeur Test Macro pour avoir dans le nouveau fichier crée les int futur regroupé sous l'onglet int futur etc... Je dois faire cette extraction tous les jours. donc deux conditions pour exporter les cellule vers les onglets, la date du jour et le nom de code.
j'ai fait ce bout de code pour creer un nouveau classeur avec mes onglets, mais au niveau de la copie ca coince...
HELP ME!! Merciiiii
Sub AddNewWorkbook()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Sheets("LISTE").Select
Range("A1:O63").Copy
'On créer l'objet Excel
Set xlApp = CreateObject("Excel.Application")
'On défini le nombre d'onglets (ici 6)
xlApp.SheetsInNewWorkbook = 6
'On ajoute un classeur
Set xlBook = xlApp.Workbooks.Add
'On rend le classeur visible
xlApp.Visible = True
'On créer l'objet onglet dans le nouveau classeur créé
Set xlSheet = xlBook.Worksheets(1)
'On affecte un nom aux l'onglets
xlSheet.Name = "Général"
'on libère l'objet onglet pour pouvoir en créer un nouveau ... etc
Set xlSheet = Nothing
'
'
Set xlSheet = xlBook.Worksheets(2)
xlSheet.Name = "Rendez-vous"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(3)
xlSheet.Name = "Int Futur"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(4)
xlSheet.Name = "Demande d'infos"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(5)
xlSheet.Name = "Refus"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(6)
xlSheet.Name = "Suivi"
Set xlSheet = Nothing
'On donne un nom à chaque onglets
With Worksheets("Général").Range("a1")
.PasteSpecial Paste:=xlPasteValidation
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
.PasteSpecial Paste:=xlPasteColumnWidths
'
End With
'On remet la propriété de l'application à 3 (par défaut)
xlApp.SheetsInNewWorkbook = 3
Bon débutant sous VBA, j'essaye de trouver des morceaux de codes sur internet en fonction des problématiques que je rencontre et comprendre le fonctionnement du codage.
ici mon souhait est de creer une macro qui a partir du classeur TESTMACRO, crée un nouveau fichier Excel avec 6 onglets (voir ci dessous). Je souhaite que la macro me fasse un tri sur la feuille du classeur Test Macro pour avoir dans le nouveau fichier crée les int futur regroupé sous l'onglet int futur etc... Je dois faire cette extraction tous les jours. donc deux conditions pour exporter les cellule vers les onglets, la date du jour et le nom de code.
j'ai fait ce bout de code pour creer un nouveau classeur avec mes onglets, mais au niveau de la copie ca coince...
HELP ME!! Merciiiii
Sub AddNewWorkbook()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Sheets("LISTE").Select
Range("A1:O63").Copy
'On créer l'objet Excel
Set xlApp = CreateObject("Excel.Application")
'On défini le nombre d'onglets (ici 6)
xlApp.SheetsInNewWorkbook = 6
'On ajoute un classeur
Set xlBook = xlApp.Workbooks.Add
'On rend le classeur visible
xlApp.Visible = True
'On créer l'objet onglet dans le nouveau classeur créé
Set xlSheet = xlBook.Worksheets(1)
'On affecte un nom aux l'onglets
xlSheet.Name = "Général"
'on libère l'objet onglet pour pouvoir en créer un nouveau ... etc
Set xlSheet = Nothing
'
'
Set xlSheet = xlBook.Worksheets(2)
xlSheet.Name = "Rendez-vous"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(3)
xlSheet.Name = "Int Futur"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(4)
xlSheet.Name = "Demande d'infos"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(5)
xlSheet.Name = "Refus"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(6)
xlSheet.Name = "Suivi"
Set xlSheet = Nothing
'On donne un nom à chaque onglets
With Worksheets("Général").Range("a1")
.PasteSpecial Paste:=xlPasteValidation
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
.PasteSpecial Paste:=xlPasteColumnWidths
'
End With
'On remet la propriété de l'application à 3 (par défaut)
xlApp.SheetsInNewWorkbook = 3