Copiare un foglio Excel in più file Excel

Anonimo
2024-02-29T00:23:57+00:00

Buongirono,

ho un file excel con un "Foglio1" e dovrei copiare questo "Foglio1" in "più" file excel anzichè fare continui copi aed incolla.

Come posso ? VBA? Altro?

Ringrazio in anticipo per la gentlile attenzione

Microsoft 365 e Office | Excel | Per l'istruzione | Altro

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

12 risposte

Ordina per: Più recente
  1. Anonimo
    2024-03-03T13:07:16+00:00

    Difficile trovare qualcosa di preconfezionato che possa soddisfare le svariate esigenze.

    Qui un esempio di quello che si potrebbe fare (mutuando parte del codice proposto da Eleuterio con qualche aggiustamento):

    Sub CopiareUnFoglioInPiuFile()

    Dim sFileOrigineFullName As String

    Dim sPercorsoFileDestinazione As String

    Dim strFileDest As String

    Dim WkbOrig As Workbook, WkbDest As Workbook

    With Application.FileDialog(msoFileDialogFilePicker)

      .Title = "Seleziona File Origine Dati" 
    
      .AllowMultiSelect = False 
    
      With .Filters 
    
         .Clear 
    
         .Add "xlsx", "\*.xlsx" 
    
      End With 
    
      If .Show Then 
    
         sFileOrigineFullName = .SelectedItems(1) 
    
      End If 
    

    End With

    If sFileOrigineFullName <> vbNullString Then

      With Application.FileDialog(msoFileDialogFolderPicker) 
    
         .Title = "Seleziona Percorso File Destinazione" 
    
         If .Show Then 
    
            sPercorsoFileDestinazione = .SelectedItems(1) 
    
         End If 
    
      End With 
    

    End If

    If sPercorsoFileDestinazione <> vbNullString Then

      Application.ScreenUpdating = False 
    
      Set WkbOrig = Workbooks.Open(sFileOrigineFullName) 
    
      strFileDest = Dir(sPercorsoFileDestinazione & "\\*.xlsx") 
    
      Do Until strFileDest = "" 
    
         If sFileOrigineFullName &lt;&gt; sPercorsoFileDestinazione & "\" & strFileDest Then 
    
            Set WkbDest = Workbooks.Open(sPercorsoFileDestinazione & "\" & strFileDest) 
    
            WkbOrig.Worksheets("Foglio1").Copy WkbDest.Sheets(1) 
    
            WkbDest.Close True 
    
         End If 
    
         strFileDest = Dir 
    
      Loop 
    
      WkbOrig.Close False 
    
      Application.ScreenUpdating = True 
    
      MsgBox "Copia terminata!", vbInformation, "CopiareUnFoglioInPiuFile" 
    

    End If

    End Sub

    Qui un file dove nel modul1 è presente il codice da copiare (se il copia/incolla dal sito dovesse dare problemi):

    File Esempio

    Prova a vedere se riesci ad ottenere quello che desideri

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2024-03-03T11:32:49+00:00

    Buongiorno,

    grazie per la gentile risposta !

    Data l'inesperienza pensavo che vi fosse già un'applicazione sviluppata da qualcuno.

    Qualcosa di preconfezionato da sfruttare oppure semplice aggiustamenti partendo dal registratore.

    Se non c'è ... peccato !

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2024-03-03T11:21:53+00:00

    Interessante la tua osservazione gianfranco55-Office365 e colgo la palla al balzo....

    Chiedo, per chiarire data la mia inesperienza in vba:

    1. ho un'applicazione VBA ma questa non è specifica di quel file perchè potrei doverla lanciare in N file... Devo necessariamente salvare un generico file Pippo in .xslm ?
    2. come posso fare per richiamare un'applicazione VBA su N file ?
    1. Se una certa procedura non è specifica di un determinato file ma hai la necessità di utilizzarla periodicamente puoi salvare la stessa nella cartella di lavoro PERSONAL.XLSB.

    Per creare tale cartella registra una semplice macro e indica di salvare la macro in "Cartella macro personale".

    Immagine

    Verrà creato un file nel quale salvare le procedure personali.

    Una alternativa è creare un "Add-In" personale dove salvare eventuali procedure da utilizzare quando serve, da "caricare" o "scaricare" all'occorrenza tramite "Componenti aggiuntivi di Excel"

    Immagine

    Ad es. io, al momento, ho caricato l'AddIn "Comandi personali" che contiene una serie di comandi particolari legati ad una barra ribbon personalizzata con pulsanti per richiamare le procedure.

    1. Una volta salvata la procedura in PERSONAL.XLSB puoi creare dei menù personalizzati alla barra RIBBON a cui associare le macro presenti nel file personal.

    O, come ho fatto con l'addin, associare barra ribbon personalizzata (ma questa opzione richiede alcune conoscenze che non son proprio di base).

    Detto questo poi il problema è creare delle procedure che facciano esattamente quanto desiderato.

    Nel tuo caso, se non ho capito male, dovresti poter aprire un file origine da cui copiare dei dati i quali dovrebbero essere incollati ad una serie di file esistenti in un determinato percorso.

    In questo caso, se non si desidera che il file origine sia un XLSM che contiene la procedura che copia i dati di un proprio foglio in file presenti in un determinato percorso, la procedura dovrà indentificare il file di origine tramite il suo percorso intero (comprensivo del nome del file), aprirlo, e dopo, con un ciclo come quello proposto da Eleuterio (che saluto), copiare i dati dal file di origine e copiarli nei file di destinazione.

    Il come individuare il nome del file di origine e il percorso dei file di destinazione può essere differente in base alle esigenze.

    Se i file si trovassero sempre nelle medesime posizioni basterebbe impostare delle "costanti" che indichino i due percorsi.

    Se non fosse così si dovrebbe pensare ad una procedura che consenta di selezionare il file di origine e il percorso in cui si trovano i file di destinazione.

    Per fare ciò una possibilità sarebbe quella di avere una procedura che, in sequenza, apra una finestra di dialogo per selezionare il file di origine e, successivamente, una finestra di dialogo per selezionare il percorso dove sono presenti i file di destinazione.

    Tutte cose, però, che richiedono una certa esperienza.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Eleuterio Tedeschi 18,750 Punti di reputazione Moderatore volontario
    2024-03-03T01:15:44+00:00

    Chiedo, per chiarire data la mia inesperienza in vba:

    1. ho un'applicazione VBA ma questa non è specifica di quel file perchè potrei doverla lanciare in N file... Devo necessariamente salvare un generico file Pippo in .xslm ?

    Il file che contiene codice VBA deve essere salvato in .xlsm altrimenti perde il codice associato.

    1. come posso fare per richiamare un'applicazione VBA su N file ?

    Lanciandola dal file che la contiene, puoi impostare il nome del/dei file nel codice o far aprire una finestra di dialogo per selezionare il/i file da aprire e su cui dovrà agire il codice.

    Ma vista la tua poca esperienza, dovrai studiare un po' per poterlo fare.

    Ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2024-03-02T17:29:48+00:00

    Interessante la tua osservazione gianfranco55-Office365 e colgo la palla al balzo....

    Chiedo, per chiarire data la mia inesperienza in vba:

    1. ho un'applicazione VBA ma questa non è specifica di quel file perchè potrei doverla lanciare in N file... Devo necessariamente salvare un generico file Pippo in .xslm ?
    2. come posso fare per richiamare un'applicazione VBA su N file ?

    La risposta è stata utile?

    0 commenti Nessun commento