Excel VBA #26 For Next Loop (ciclo) per popolare un DataBase (video 3 di 4) - Macro per archiviare

Поділитися
Вставка
  • Опубліковано 24 січ 2025

КОМЕНТАРІ • 23

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

    Grazie Gerardo per quello che pubblichi, é molto interessante, sei molto chiaro nelle spiegazioni!

  • @svitlanakurilo9
    @svitlanakurilo9 Рік тому

    Complimenti! Molto chiaro e interessante. Bravo Sig. Gerardo. Mitico! Ho trovato Assolutamente tutte le risposte alle mie domande.

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

    Poche e semplici righe di codici; Tanti concetti spiegati; Tanti risultati ottenuti! Bravo sig.Gerardo! Grazie.

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

      I know Im asking the wrong place but does anyone know of a tool to log back into an instagram account?
      I was stupid forgot my account password. I love any tips you can offer me.

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

      @Reed Mohammed instablaster ;)

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

    Ogni volta si impara qualcosa di bello. Grazie Gerardo per le tue belle lezioni.

  • @ranger1519
    @ranger1519 3 роки тому +2

    Grande Gerry e grazie ancora di tutto

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

    Come già detto, i tuoi video sono sempre molto chiari e interessanti. Aggiungo che conviene vederli sempre fino alla fine, perchè si possono cogliere spunti interessanti, magari non centrano con il tema che stai trattando, oppure trattasi di ripetizione (es. questa volta è stato anche utile scoprire che si può far riferimento ad una cella senza indicare Range) . Ottimo come al solito.

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

    Bravo Gerry e chi ti ferma più, ciao grande.

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

    Interessante ad attuale.Mega complimenti

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

    Salve Mr.Gerardo, bene tutto e di facile comprensione, mentre ti guardo... il difficile viene dopo, ricordarsi tutti i passaggi. Ma quello è un problema mio, di comprendonio ! Continua così, che prima o poi ci arrivo anch'io... Saluti, Giampiero

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

    Come sempre bravissimo Gerardo. Ancora un'altra spiegazione eccellente. Concordo sulla necessità di insistere sui cicli che sono fondamentali per il VBA ma in generale per tutti i linguaggi di programmazione. Al prossimo video.

  • @dante.62
    @dante.62 3 роки тому

    Bel video e bello l'entusiamo che ci metti a fare e a spiegare. Ciao

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

    Sempre tutto molto interessante, complimenti!

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

    Che dire.... ottimo video!

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

    Ottimo continua cosi

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

    👍

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

    Scusami Gerry una domanda stupida. Se inizio a registrare una macro e poi la interrompo posso riprendere la registrazione dal punto in cui l'ho interrotta? grazie mille

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

      Ciao Giovanni, purtroppo no hai due macro separate

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

      Purtroppo immaginavo ma volevo la tua conferma

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

    Non riesco a controllare che venga inserita una data corretta. Se inserisco 25666 nel campo data me lo trasforma in una data strana.

  • @HotelVillaggioEurolido
    @HotelVillaggioEurolido 2 місяці тому

    Ciao Gerardo, utilizzo questa macro in un foglio xlsm per copiare dei dati di vari file xlsx in una cartella specifica. Tutto bene nel senso che il file funziona correttamente prelevando da tutti i file i dati dalla cella B1 alla cella B10 creando un database. L'unico dato che salta è quello della cella B11 che nonostante le mille prove non riesco a far copiare correttamente: posto il codice nella speranza che tu possa capire l'errore:
    Riepilogo cosa fa la macro:
    1. da una macro nel file xlsm preleva da ogni file xlsx presente nella cartella i dati dalla cella B1 alla cella B11 creando per ognuno una riga di database nel file xlsm
    2. prende tutti i file di cui ha copiato i dati e li sposta in un altra cartella
    Cosa non funziona:
    1. L'unico dato che non viene prelevato nel file xlsm è la cella B11 dei file xlsx (per il resto funziona tutto)
    Questa la Macro che uso:
    Option Explicit
    Sub esporta_e_muovi()
    Const folder_from = "Z:\Altri computer\Il mio computer\Archivio\UFFICO BOOKING\1 PREVENTIVI E VOUCHER\PREVENTIVI EXCEL\*.xlsx"
    Const folder_to = "Z:\Altri computer\Il mio computer\Archivio\UFFICO BOOKING\1 PREVENTIVI E VOUCHER\PREVENTIVI EXCEL\excel esportati"
    Dim percorso As String
    Dim nomeFile As String
    Dim wbDatabase As Workbook
    Dim WB As Workbook
    Dim sh As Worksheet
    Dim s As String
    Dim data_preventivo As String
    Dim uR As Long
    Dim arr() As Variant
    Dim j As Long
    Dim k As Integer
    Dim g As Integer
    Dim ei As Object

    With Application
    .Cursor = xlWait
    .DisplayAlerts = False
    .ScreenUpdating = False
    End With
    Set ei = CreateObject("Scripting.FileSystemObject")
    Set wbDatabase = ThisWorkbook 'file database
    percorso = "Z:\Altri computer\Il mio computer\Archivio\UFFICO BOOKING\1 PREVENTIVI E VOUCHER\PREVENTIVI EXCEL\"
    '''percorso = ThisWorkbook.Path & "\preventivi excel\" '''debug franz
    nomeFile = Dir(percorso)

    Do While nomeFile ""
    k = ei.GetFolder(percorso).Files.Count
    g = g + 1
    Application.StatusBar = "Avanzamento ... file " & g & "/" & k
    If nomeFile wbDatabase.Name Then
    Set WB = Application.Workbooks.Open(percorso & nomeFile)
    Set sh = WB.Worksheets(1)
    data_preventivo = Split(sh.Range("N46"))(3)
    With wbDatabase.Sheets(1)
    .AutoFilterMode = False
    uR = .Range("A65535").End(xlUp).Row + 1
    .Cells(uR, 1) = IIf(uR = 2, 1, Val(.Cells(uR - 1, 1)) + 1)
    arr = Application.Transpose(sh.Range("B1:B11"))
    For j = 11 To 5 Step -1
    arr(j) = arr(j - 1)
    Next
    arr(4) = Format(data_preventivo, "dd/mm/yyyy")
    .Range(.Cells(uR, 2), .Cells(uR, 12)) = arr
    .Cells(uR, "E") = "'" & arr(4)
    .Cells(uR, "F").NumberFormat = "General"
    .Cells(uR, "E").HorizontalAlignment = xlRight
    End With
    WB.Close False
    End If
    nomeFile = Dir
    Loop
    'prepara la stringa di comando per lo spostamento da un folder all'altro
    s = "cmd.exe /c move /Y ""%1"" ""%2"""
    s = Replace(s, "%1", folder_from)
    s = Replace(s, "%2", folder_to)

    'questa istruzione esegue il comando di spostamento.
    Shell s
    wbDatabase.Save

    With Application
    .Cursor = xlDefault
    .DisplayAlerts = True
    .ScreenUpdating = True
    End With

    MsgBox "Dati Importati e File Spostati. File database salvato.", vbInformation, "OK"
    Application.StatusBar = ""
    End Sub
    Spero tu riesca a darmi una mano. Grazie mille