Excel VBA #31 Dividere un database su più fogli con il ciclo For Each (split Excel database) Macro
Вставка
- Опубліковано 9 січ 2025
- Benvenuto nel mio canale, prendi nota dei link qui sotto potrebbero esserti utili 😉
****************DOWNLOAD********************
Se vuoi scaricare tutti i file dei miei video bisogna avere un abbonamento o fare una libera donazione, trovi i link qui sotto. Scrivimi su 📧 tuttosuexcel@gmail.com 📧 e ti invierò tutti i file
****************SUPPORTA********************
☑ Aiuta il canale a rimanere gratuito per tutti con Carta di Credito o PayPal www.paypal.com...
☑ Abbonati a questo canale per accedere ai vantaggi:
/ @gerardozuccala
*************SEGUIMI! ************************
✔ Instagram / gerryzucca
✔ Linkedin / gerardo-zuccal%c3%a0-4...
************* I MIEI LIBRI**********************
📌 Excel e Office VBA di Gianni Giaccaglini amzn.to/3znNksB
📌 Microsoft Excel 2016 Macro e VBA di Alessandra Selvaggio amzn.to/35nEbSY
📌 Slaying Excel Dragons di Mike Girvin (ENGLISH) amzn.to/35gTWeA
************ATTREZZATURE**********************
🛒Mouse Logitech MX Anywhere 3 (nuovo 2021) amzn.to/38tAuNO
🛒Tastiera Logitech MK270 amzn.to/2DMCJQ2
🛒 Webcam Logitech C920 HD Pro Webcam, Videochiamata Full HD 1080p/30fps amzn.to/39O5mcn
🛒Cuffie Audio Technica ATH-M30x amzn.to/3heGtaR
🛒Microfono Blue Yeti USB amzn.to/32hwZr9
🛒Rode PSA1 Braccio Portamicrofono amzn.to/3bIuMbh
🛒Monitor principale AOC AGON AG271QG da 27" IPS, QHD, 2560 x 144, 165 Hz amzn.to/3mkyjBS
🛒 Secondo Monitor HP 27w Monitor, Schermo 27 Pollici IPS Full HD, Risoluzione 1920 x 1080 amzn.to/39HdlrN
🛒Elgato Key Light Air Pannello LED amzn.to/38utGiW
🛒HP LaserJet Pro M15a Stampante Mono funzione Bianco e Nero, Solo USB, amzn.to/31MNb2m
🛒 PC assemblato (dal 2021) Corsair ONE i145s, PC Gaming Compatto Intel Core i7-9700K, NVIDIA GeForce RTX 2080 amzn.to/39MifDR
#GerardoZuccalà #PowerQuery #Excel_Vba
Buon sangue non mente, recita un famoso proverbio; Grazie sig.Gerardo del suo costante impegno!
Lol
È sempre un piacere vedere i tuoi video....non vedo l'ora di vedere il prossimo video.
Ciao Paolo, è appena uscito 😄
Gerardo sei davvero bravo come insegnate. Sei chiarissimo. Il fatto che tu scriva in modo sequenziale il codice aiuta davvero tanto la comprensione. Complimenti. Grazie
Grazie Antonio, si è vero questa è la chiave di tutto, perché ad esempio se iniziassi a scrivere un codice partendo dalla dichiarazione delle variabili non si capirebbe niente
@@gerardozuccala ed è la differenza che fai con le altre migliaia di video.
grande gerardo bellissimo video spiegato in modo semplice , grazieeee
Grazie Flavio, mi fa piacere
Ottimo Gerardo !!! Mi è stata utile la lezione per completare (anche se i casi come hai detto sono molti di più perchè i cicli sono ESSENZIALI nella programmazione VBA) la discussione sui cicli.
Ho raccolto il tuo invito e pubblico qui sotto in condivisione il codice con le implementazioni che hai proposto.
Ho ridondato un po' il codice per far si che col DEBUG si vedessero i vari passaggi nei fogli, in modo che risultasse in automatico il passaggio del copia incolla e della cancellazione dei dati.
Grazie e al prossimo VIDEO ...!!!
*************************************
Sub LoopShNames()
Dim cella As Range
Dim intervallo As Range
Application.ScreenUpdating = False
Set intervallo = wk1.Range("A2", wk1.Range("A999999").End(xlUp))
'Set intervallo = wk1.Range("A2:A" & wk1.Cells(999999, "A").End(xlUp).Row)
wk1.Activate
'Sheets(Array("Anna", "Nick", "Luis")).Select
'Range("A2:C500").Select
'Selection.ClearContents
'Sheets("DataBase").Select
'Range("A1").Select
'per cancellare la precedente esecuzione della macro
CancellaDivisioneSuFogli
Application.ScreenUpdating = False
For Each cella In intervallo
wk1.Range(cella, cella.End(xlToRight)).Copy
Sheets(cella.Value).Activate
'Sheets(cella.Value).Range("A999999").End(xlUp).Offset(1).PasteSpecial
Sheets(cella.Value).Range("A" & Sheets(cella.Value).Cells(999999, 1).End(xlUp).Row).Offset(1, 0).PasteSpecial
Sheets(cella.Value).Range("A1").Select
Application.CutCopyMode = False
wk1.Activate
Next cella
wk1.Activate
Application.ScreenUpdating = True
End Sub
Sub CancellaDivisioneSuFogli()
Dim Current As Worksheet
Application.ScreenUpdating = False
For Each Current In Worksheets
If Not Current.Name = "DataBase" Then
Current.Select
Current.Range("A2:C500").Select
Selection.ClearContents
Current.Range("A1").Select
End If
Next
Application.ScreenUpdating = True
Sheets("DataBase").Select
Range("A1").Select
End Sub
*******
Codice scaricabile da: pastebin.com/NrUXWaYw
Ciao Tore, vedo solo adesso questo messaggio, che era andato in " attesa di revisione" perchè c'era dentro un link e UA-cam lo blocca.. grazi e per la tua condivisione
ottima la macro per pulire i dati prima di inserirli, Tra l'altro non conoscevo questo PasteBin.. sei un fonte di sapere assoluta, grazie
As usually: grazie e complimenti
As usually thanks
Grazie!
Posso consigliarti di inserire in descrizione, quando fai tutorial divisi in piu video, i link alle altri parti del video? Grazie x i tuoi video molto utili
Grande Gerry!
Grazie a te Cucù, come sta andando il mio corso? la tua opinione conta e poi dammi qualche dritta didatica che gli argomenti si stanno esaurendo 🤪
👍
Buonasera Gerardo Complimenti per il tuo grande lavoro che stai facendo. Volevo chiederti se è possibile indicare due condizioni o più condizioni all'interno di un ciclo for each. Magari facendo un tuo esempio. Pensavo se era possibile nidificare due cicli for each. Grazie tanto. Paolo da Altofonte. Tuo Fedelissimo.
Ciao Paolo, certo che puoi inserire più condizione che siano di tipo AND o di tipo OR però le condizione sono un concetto completamente distaccato dai cicli nidificati ed in particolare con il ciclo For Each che lavora con gli oggetti, bisognerebbe capire meglio cosa vuoi realzzare e la soluzione migliore.. un saluto
Come al solito sei insuperabile , molto professionale e chiaro nelle spiegazioni ...Ti chiedo se puoi aiutarmi nell'estrarre il solo mese di una data e ricopiarlo nel mese di appartenenza ,mi spiego ,ho un file di Prima nota cassa e banca con 12 Fogli -- da Gen-Feb-Mar-ecc nel mese di dicembre ho dei titoli in cassa con scadenza gennaio--febbraio-Marzo-Aprile quello che vorrei fare e cancellare i dati dei mesi gennaio/aprile e riportarmi per ogni mese le scadenze dei titoli di appartenenza quello di gennaio nel Foglio Gen, febbraio nel foglio Feb. ecc ... il Range dei dati e da B7:G275 naturalmente deve copiare la riga B??:G?? Spero di essere stato chiaro Grazie
Ciao Gerardo ho un problema ho fatto come hai scritto fa tutto ma la 13 riga si blocca mi da l'errore run time 9 "Sheets(cella.Value).Range("A999999").End(xlUp).Offset(1).PasteSpecial"
dov'è che sbaglio?
grande come sempre vorrei chiederti un favore potresti aggiungere a questo video una cosa carina ? mi piacerebbe vedere una soluzione nel creare con vba il Foglio Anna, Nick, Luis .... in base a ciò che trova nella colonna ? quindi si parte con foglio DataBase e basta e si terminerà in base a quanti nomi ci saranno nella colonna A (spero di essermi spiegato e ti ringrazio in anticipo per il grande lavoro che fai complimenti)
Ciao Gerardo complimenti altro video molto interessante.
Ho un problema con Application.Screen.Updating = False con office 365 mentre lo stesso codice lavora perfettamente su office 2013.
Cosa si puó fare?
Che problema?
@@sscire Ciao Salvatore, in pratica é come se non funzionasse,si nota lo sfarfallio con office 365.
Mentre con office 2013 nessun sfarfallio
@@ThePero3067 stai usando la versione BETA/Insider?
@@sscire no. Pago il canone annuale da 3 anni almeno
@@ThePero3067 Si certo, questo non lo mettevo in dubbio, ma per gli utenti di M365 c'è la possibilità di iscriversi al canale BETA/Insider che permette di avere le ultimo novità in fatto di aggiornamenti. LO si fa dalla pagina ACCOUNT di una qualsiasi applicazione di Office.
Io avevo fatto questa iscrizione ad Insider e purtroppo lamentavo sempre dei piccoli o random malfunzionamenti ... avevo provato in tal modo la nuova funzione LAMBDA, ma sono tornato alla versione STABILE, disinstallando tutto e reinstallando la versione STABILE.
Altro problema potrebbe essere la scheda video/monitor, ma mi sembra remota la possibilità
Vi posto la mia proposta per la cancellazione celle nei fogli di cartella: