Codice Vba per copiare da un foglio e incollare sui fogli attivi

Anonimo
2016-03-02T08:50:19+00:00

Buongiorno a tutti,

ho impostato un foglio excel che mi permette di automatizzare il processo dei costi.

I file sono strutturati in modo che c'è un Foglio Mastro nel quale risiedono tutte le formule e i dati, e poi ho tantissimi altri fogli delle varie aziende.

Dopo svariati tentativi che mi incrociano i dati, mi sono bloccato sull'ultimo passaggio, non riesco ad automatizzare la copia dal Foglio Mastro e l'incolla sui vari fogli tramite codice vba.

Ho provato a registrare una macro, ma mi tiene in considerazione solo un foglio di destinazione della copia.

questo è quanto ho prodotto:

Sub copia_incolla()

'

' copia_incolla Macro

'

'

    Range("C7:C18").Select

    Selection.Copy

Windows("Foglio1ditta.xlsm").Activate

    Range("C14").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

    Windows("costi prova.xlsm").Activate

End Sub

Quindi la mia domanda è, se c'è un modo con cui copiare dal Foglio Mastro e incollare automaticamente sul Foglio Excel Attivo (indipendentemente dal nome del file ecc)?

Grazie per l'assistenza a tutti

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
2016-03-02T17:03:39+00:00

Hai scritto:

<tu>

Scusa se non mi sono espresso bene, ogni ditta ha un proprio file, ho circa 150 fogli diversi relativi alle diverse aziende.

Per questo motivo sto cercando di ottimizzare i tempi con queste formule. :)

</tu>

e forse ho frainteso.

Se devi farlo solo per un file aperto:

Public Sub m()

    Dim wk As Workbook

    Dim wkAperto As Workbook

    Dim sh As Worksheet

    Dim shDati As Worksheet

    Set shDati = ThisWorkbook.Worksheets("Foglio1")

    For Each wk In Application.Workbooks

        If wk.Name <> ThisWorkbook.Name Then

            Set wkAperto = wk

            Exit For

        End If

    Next

    If Not wkAperto Is Nothing Then

        For Each sh In wkAperto.Worksheets

            shDati.Range("C7:C18").Copy

            sh.Range("C14").PasteSpecial xlPasteValues

        Next

    End If

    Application.CutCopyMode = False

    Set wkAperto = Nothing

End Sub

Dove copio i dati dal Foglio1, Range C7:C18 del file che contiene il codice e lo incollo nel Range C14:C25 di TUTTI i fogli dell'altro file aperto. I file aperti devono essere quello che contiene il codice e il file dove vuoi copiare i dati.

La risposta è stata utile?

0 commenti Nessun commento

17 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-03-02T09:44:33+00:00

    i file sono contenuti tutti nella stessa cartella, a parte il Foglio Mastro che è sul desktop, mentre i fogli sono rinominati in questo modo: "NomeDitta Costi 2016"

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-03-02T09:40:46+00:00

    I file sono tutti nella stessa directory?

    I fogli dei file, hanno tutti lo stesso nome?

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-03-02T09:29:12+00:00

    Semplificando, questa macro copia il contenuto della cella A1 del foglio Mastro nelle celle K1 di fogli specificati nell'array (in grassetto nel codice):

    Public Sub m()

        Dim shMastro As Worksheet

       

        Set shMastro = ThisWorkbook.Worksheets("Mastro")

        shMastro.Range("A1").Copy

       

        Sheets(Array("Foglio2", "Foglio3", "Foglio4", "Foglio5")).Select

        Range("K1").Select

        ActiveSheet.PasteSpecial

        Application.CutCopyMode = False

        shMastro.Select

       

        Set shMastro = Nothing

       

    End Sub

    Nel mio esempio tutti i fogli sono nello stesso file. Non si capisce cosa intendi tu per foglio. Intendi che ciascuna ditta ha un proprio file?

    Grazie per l'interessamento,

    Scusa se non mi sono espresso bene, ogni ditta ha un proprio file, ho circa 150 fogli diversi relativi alle diverse aziende.

    Per questo motivo sto cercando di ottimizzare i tempi con queste formule. :)

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-03-02T09:10:40+00:00

    Semplificando, questa macro copia il contenuto della cella A1 del foglio Mastro nelle celle K1 di fogli specificati nell'array (in grassetto nel codice):

    Public Sub m()

        Dim shMastro As Worksheet

        Set shMastro = ThisWorkbook.Worksheets("Mastro")

        shMastro.Range("A1").Copy

        Sheets(Array("Foglio2", "Foglio3", "Foglio4", "Foglio5")).Select

        Range("K1").Select

        ActiveSheet.PasteSpecial

        Application.CutCopyMode = False

        shMastro.Select

        Set shMastro = Nothing

    End Sub

    Nel mio esempio tutti i fogli sono nello stesso file. Non si capisce cosa intendi tu per foglio. Intendi che ciascuna ditta ha un proprio file?

    La risposta è stata utile?

    0 commenti Nessun commento