Creare e copiare contenuto in nuovo file excel attraverso le macro

Anonimo
2015-10-19T07:46:58+00:00

Buongiorno a tutti,

vi espongo il mio problema:

  • Ho in partenza 2 file

 1) "ElencoOrdini.xls" che contiene nella colonna A a partire dalla riga 2 un elenco consecutivo di ordini (es: in riga due "Ordine1", in riga tre "Ordine2", in riga quattro "Ordine3", ecc...)

 2) "ModelloOrdine.xls" contenente più fogli, con formattazione e diverse formule al loro interno

  • Il mio obiettivo sarebbe quello di creare una macro che dato un elenco di n ordini nel file "ElencoOrdini.xls" mi crei n file nuovi intitolati Ordine1.xls , Ordine2.xls ecc.. con al loro interno però il contenuto completo di formule e formattazione del file "ModelloOrdine.xls"

-Sia i 2 file di partenza che i nuovi file si devono trovare nella cartella C:\desktop\Ordini

Il problema per me non è tanto il creare i nuovi file ma quanto inserirci le caratteristiche del file ModelloOrdine.xls e mi chiedevo se qualcuno di voi potesse in qualche modo aiutarmi.

Vi ringrazio già per l'aiuto e vi auguro buona giornata

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2015-10-19T11:14:48+00:00

Ciao Matteo,

Poiché i due file di esempio che hai caricati sono molto schematico e priva di dettagli, il mio codice deve necessariamente essere anche schematico. Tuttavia, per ogni ordine, il codice seguente inserisce i dettagli dell'ordine nella posizione indicata nel file modello e salva quel file con il nome del cliente la data corrente.

'=========>>

Option Explicit

'--------->>

Public Sub Tester()

    Dim srcWB As Workbook, destWB As Workbook

    Dim srcSH As Worksheet, destSH As Worksheet

    Dim srcRng As Range, destRng As Range, rCell As Range

    Dim sNome As String

    Dim dVal As Double

    Dim LRow As Long

    Dim CalcMode As Long

    Const NomeDelFileModello As String = _

            "Matteo Modello20151019.xlsx"                   '<<=== Modifica

    Set srcWB = ThisWorkbook

    Set srcSH = srcWB.Sheets("Foglio1")                       '<<=== Modifica

    On Error GoTo XIT

    With Application

        CalcMode = .Calculation

        .Calculation = xlCalculationManual

        .ScreenUpdating = False

    End With

    With srcSH

        LRow = LastRow(srcSH, .Columns("A:A"))

        Set srcRng = .Range("A2:A" & LRow)

    End With

    For Each rCell In srcRng.Cells

        Set destWB = Workbooks.Open(NomeDelFileModello)

        Set destSH = destWB.Sheets("Foglio1")               '<<=== Modifica

        Set destRng = destSH.Range("A3")

        With rCell

            sNome = .Offset(0, 1).Value

            dVal = .Offset(0, 2).Value

            destRng.Value = dVal

            With destWB

                .SaveAs Filename:=sNome & Format(Date, "yyyymmdd"), _

                        FileFormat:=.FileFormat

                .Close SaveChanges:=False

            End With

        End With

    Next rCell

XIT:

    With Application

        .Calculation = CalcMode

        .ScreenUpdating = True

    End With

End Sub

'--------->>

Public Function LastRow(SH As Worksheet, _

                        Optional Rng As Range)

    If Rng Is Nothing Then

        Set Rng = SH.Cells

    End If

    On Error Resume Next

    LastRow = Rng.Find(What:="*", _

                       after:=Rng.Cells(1), _

                       Lookat:=xlPart, _

                       LookIn:=xlFormulas, _

                       SearchOrder:=xlByRows, _

                       SearchDirection:=xlPrevious, _

                       MatchCase:=False).Row

    On Error GoTo 0

End Function

'<<=========

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-10-19T08:46:13+00:00

    Ciao Matteo,

    • Il mio obiettivo sarebbe quello di creare una macro che dato un elenco di n ordini nel file "ElencoOrdini.xls" mi crei n file nuovi intitolati Ordine1.xls , Ordine2.xls ecc.. con al loro interno però il contenuto completo di formule e formattazione del file "ModelloOrdine.xls"

    Ti chiederei di caricare un esempio dei due file - senza dati sensibili, su un servizio di condivisione come, ad esempio, Microsoft OneDrive o DropBox e postare un link ai file in una risposta qui.

    ===

    Regards,

    Norman

    Ciao Norman,

    ti ringrazio per la risposta, il link ai due file è https://www.dropbox.com/sh/3x6flbazdv9mx2k/AAAbR-C8NBNexxfO-pB5M6TQa?dl=0 

    Il file ModelloOrdini è in realtà molto più complesso ma non credo che questo influenzi la macro da scrivere.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-10-19T08:30:52+00:00

    Ciao Matteo,

    • Il mio obiettivo sarebbe quello di creare una macro che dato un elenco di n ordini nel file "ElencoOrdini.xls" mi crei n file nuovi intitolati Ordine1.xls , Ordine2.xls ecc.. con al loro interno però il contenuto completo di formule e formattazione del file "ModelloOrdine.xls"

    Ti chiederei di caricare un esempio dei due file - senza dati sensibili, su un servizio di condivisione come, ad esempio, Microsoft OneDrive o DropBox e postare un link ai file in una risposta qui.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento