Macro per aggiungere report giornaliero - Suggerimenti per Excel

Judith ha pubblicato la domanda su Excel di questa settimana.

Ho bisogno di importare un file ogni giorno. Vorrei aggiungere il file ogni giorno a una cartella di lavoro Excel esistente e assegnare al foglio di lavoro il nome d / m / y.

Una breve macro visiva di base renderà questo un compito semplice. Un problema: il nome della scheda di un foglio non può includere una barra. Quindi, la soluzione rinominerà il foglio di ogni giorno per avere un nome come "03 ottobre 1999".

La soluzione prevede l'aggiunta di un foglio di lavoro superiore al tuo libro esistente. Questo foglio, chiamato "Menu", fornisce una semplice interfaccia utente in modo che tu possa trasferire questa attività a un altro membro dello staff, se necessario. Il foglio superiore contiene celle in cui l'utente può specificare il nome del percorso e il nome del file da importare. Se stai importando un file creato da un altro sistema, questi campi non cambieranno di giorno in giorno. La scheda Menu contiene anche una cella con la data corrente formattata senza barre. Includerò una macro di apertura automatica che riempirà automaticamente questa cella per l'utente, ma sono sempre liberi di cambiarla prima di fare clic sul pulsante per importare il file. Infine, la scheda Menu ha un grande pulsante su cui l'utente farà clic.Questo pulsante richiamerà la macro per importare il file denominato nel menu nel libro corrente con il nome di scheda specificato.

Foglio di lavoro del menu

Apri una nuova cartella di lavoro con un solo foglio. Fare doppio clic sulla scheda del foglio e digitare un nome per il foglio denominato "Menu". Aggiungi un bel titolo nella cella A1. Nelle celle C3: C5, aggiungi il testo come mostrato a sinistra. Nella cella D3, immettere il percorso della directory in cui si trova il file ogni giorno. Nella cella D4, aggiungi il nome del file. Lascia vuoto D5. È più facile impostare il pulsante una volta creata la macro, quindi lo lasceremo per dopo.

  • Avviare l'Editor delle macro con alt = "" + F11
  • Scegli Inserisci - Modulo
  • Copia il testo seguente nell'editor delle macro
Sub Auto_Open() ' This macro will put today's date as the default new tab name Sheets("Menu").Select Range("D5").Select Selection.Formula = "=text(now(),""mmm dd yyyy"")" Selection.Copy Selection.PasteSpecial Paste:=xlValues Application.CutCopyMode = False Selection.Columns.AutoFit Range("D8").Value = "" End Sub Sub GetFile() ' This macro will import a file into this workbook ' Copyright 1999 www.MrExcel.com Sheets("Menu").Select PathName = Range("D3").Value Filename = Range("D4").Value TabName = Range("D5").Value ControlFile = ActiveWorkbook.Name Workbooks.Open Filename:=PathName & Filename ActiveSheet.Name = TabName Sheets(TabName).Copy After:=Workbooks(ControlFile).Sheets(1) Windows(Filename).Activate ActiveWorkbook.Close SaveChanges:=False Windows(ControlFile).Activate Sheets("Menu").Select Range("D8").Select ActiveCell.Value = "Completed" Range("D9").Select End Sub

Ora torna in Excel e aggiungi un pulsante al foglio Menu.

Come aggiungere un pulsante a un foglio di lavoro

Aggiungi pulsante
  • Mostra la barra degli strumenti dei moduli selezionando Visualizza - Barre degli strumenti - Moduli
  • Seleziona lo strumento Pulsante dalla barra degli strumenti
  • Tenere premuto il tasto alt = "", trascinare dall'angolo superiore di B8 nella cella C9
  • Dalla finestra di dialogo Assegna macro, seleziona la nostra macro chiamata GetFile e fai clic su OK
  • Mentre il pulsante è ancora selezionato, puoi fare clic e trascinare per selezionare il testo sul pulsante. Sostituisci questo testo con "Process!" o qualsiasi testo di tua scelta

Ora hai l'applicazione completa. Salva il file in una posizione comoda. Una volta impostato il file con le informazioni corrette nelle celle D3: D4, la procedura giornaliera sarà la seguente:

  • Apri il file che abbiamo appena creato
  • Verificare che la data mostrata nella cella D5 sia appropriata.
  • Fare clic sul pulsante grande.
  • Salva il file

Ecco alcuni modi in cui puoi modificare la macro:

  • Se desideri che la scheda sia denominata con la data del giorno precedente, aggiungi "-1" dopo "NOW ()" nella macro.
  • Se il file da importare ha più fogli e il foglio di destinazione potrebbe non essere in primo piano, aggiungere Fogli ("nome foglio"). Selezionare dopo la riga File.Open sopra.

Articoli interessanti...