És possible que de vegades vulgueu o necessiteu crear un llibre d'Excel de manera automatitzada. Per exemple, és possible que hàgiu de copiar dades d'una taula i enganxar-les en un llibre de treball acabat de crear. La macro següent copia un rang de cel·les del full actiu i enganxa les dades en un nou llibre de treball.
Com funciona la macro
Com veureu quan llegiu les línies del codi, aquesta macro és relativament intuïtiva:
Sub macro1()
'Pas 1 Copieu les dades
Fulls("Exemple 1").Range("B4:C15").Copia
"Pas 2 Creeu un llibre de treball nou
Quaderns de treball.Afegir
"Pas 3 Enganxeu les dades
ActiveSheet.Paste Destinació:=Range("A1")
"Pas 4 Desactiveu les alertes de l'aplicació
Application.DisplayAlerts = Fals
"Pas 5 Deseu el llibre de treball acabat de crear
ActiveWorkbook.SaveAs _
Nom del fitxer:="C:TempMyNewBook.xlsx"
"Pas 6 Torneu a activar les alertes de l'aplicació
Application.DisplayAlerts = Veritable
End Sub
Al pas 1, simplement copieu les dades que van des de les cel·les B4 a C15. Tingueu en compte que especifiqueu tant el full com l'interval pel nom. Aquest enfocament és una pràctica recomanada quan es treballa amb diversos llibres de treball oberts.
Al pas 2, utilitzeu el mètode Add de l'objecte Workbook per crear un llibre de treball. El llibre de treball en blanc equival a triar manualment Fitxer → Nou → Document en blanc a la cinta d'Excel.
Al pas 3, utilitzeu el mètode Enganxa per enviar les dades copiades a la cel·la A1 del nou llibre de treball.
Preste atenció al fet que el codi fa referència a l'objecte ActiveSheet. Quan afegiu un llibre de treball, el nou llibre de treball es centra immediatament i es converteix en el llibre de treball actiu. (Excel fa el mateix quan afegiu un llibre de treball manualment.)
Al pas 4 del codi, configureu el mètode DisplayAlerts a Fals, desactivant efectivament els avisos d'Excel. Ho feu perquè al següent pas del codi, deseu el llibre de treball acabat de crear. Podeu executar aquesta macro diverses vegades, en aquest cas Excel intenta desar el fitxer diverses vegades.
Què passa quan intenteu desar un llibre de treball diverses vegades? Així és: Excel us avisa que ja hi ha un fitxer amb aquest nom i després us pregunta si voleu sobreescriure el fitxer existent anteriorment. Com que el vostre objectiu és automatitzar la creació del llibre de treball, voleu suprimir aquest avís.
Al pas 5, deseu el fitxer mitjançant el mètode SaveAs. Tingueu en compte que introduïu el camí complet de la ubicació de desat, inclòs el nom del fitxer final.
Com que vau desactivar els canvis d'aplicació al pas 4, heu de tornar-los a activar (vegeu el pas 6). Si no ho feu, Excel continua suprimint tots els avisos durant la sessió actual.
Com utilitzar la macro
Per implementar aquesta macro, podeu copiar-la i enganxar-la en un mòdul estàndard:
Activeu Visual Basic Editor prement Alt+F11.
Feu clic amb el botó dret al nom del projecte/llibre de treball a la finestra del projecte.
Seleccioneu Insereix → Mòdul.
Escriviu o enganxeu el codi al mòdul acabat de crear.
Probablement haureu de canviar el nom del full, l'adreça de l'interval i la ubicació de desar.