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

КОМЕНТАРІ • 42

  • @FB-ti5od
    @FB-ti5od 3 роки тому

    Buon sangue non mente, recita un famoso proverbio; Grazie sig.Gerardo del suo costante impegno!

  • @paolosoloperto4948
    @paolosoloperto4948 3 роки тому

    È sempre un piacere vedere i tuoi video....non vedo l'ora di vedere il prossimo video.

  • @4nt0n104
    @4nt0n104 3 роки тому

    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

    • @gerardozuccala
      @gerardozuccala  3 роки тому +1

      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

    • @4nt0n104
      @4nt0n104 3 роки тому

      @@gerardozuccala ed è la differenza che fai con le altre migliaia di video.

  • @flaviomarini9745
    @flaviomarini9745 3 роки тому

    grande gerardo bellissimo video spiegato in modo semplice , grazieeee

  • @sscire
    @sscire 3 роки тому

    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

    • @gerardozuccala
      @gerardozuccala  3 роки тому

      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

    • @gerardozuccala
      @gerardozuccala  3 роки тому +1

      ottima la macro per pulire i dati prima di inserirli, Tra l'altro non conoscevo questo PasteBin.. sei un fonte di sapere assoluta, grazie

  • @vittoriomanfredini8259
    @vittoriomanfredini8259 3 роки тому

    As usually: grazie e complimenti

  • @robertobraicovick6867
    @robertobraicovick6867 3 роки тому

    Grazie!

  • @alterchannel2501
    @alterchannel2501 2 роки тому

    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

  • @perronemarcello7555
    @perronemarcello7555 3 роки тому

    Grande Gerry!

    • @gerardozuccala
      @gerardozuccala  3 роки тому

      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 🤪

  • @grazia6035
    @grazia6035 3 роки тому

    👍

  • @paoloferlito2633
    @paoloferlito2633 3 роки тому

    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.

    • @gerardozuccala
      @gerardozuccala  3 роки тому

      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

  • @salvatorebello1621
    @salvatorebello1621 3 роки тому

    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

  • @giuseppedimaio6097
    @giuseppedimaio6097 27 днів тому

    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?

  • @jdmingo
    @jdmingo 3 роки тому

    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)

  • @ThePero3067
    @ThePero3067 3 роки тому

    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?

    • @sscire
      @sscire 3 роки тому

      Che problema?

    • @ThePero3067
      @ThePero3067 3 роки тому

      @@sscire Ciao Salvatore, in pratica é come se non funzionasse,si nota lo sfarfallio con office 365.
      Mentre con office 2013 nessun sfarfallio

    • @sscire
      @sscire 3 роки тому

      @@ThePero3067 stai usando la versione BETA/Insider?

    • @ThePero3067
      @ThePero3067 3 роки тому

      @@sscire no. Pago il canone annuale da 3 anni almeno

    • @sscire
      @sscire 3 роки тому

      @@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à

  • @fcfrac3808
    @fcfrac3808 3 роки тому

    Vi posto la mia proposta per la cancellazione celle nei fogli di cartella: