copia incolla intero foglio



  • copia - incolla intero foglio
    di Escounpo (utente non iscritto) data: 01/09/2014 16:15:22

    Ciao a tutti..
    mi trovo in difficoltà nella creazione di una macro..
    praticamente dovrei Copiare ed incollare un intero foglio (copiandolo dalla linguetta in basso) e una volta creato il nuovo foglio copiare ed incollare i valori..
    facendo quest'ultima fase mi da un errore :(

    allego il codice (dove si capisce meglio cosa voglio dire)

    grazie mille a tutti

     
    Sub provA()
    Dim miofile As String
    Dim carea As String
    Dim csettore As Variant
    Dim settore As Variant
    Dim area As Variant
    Dim wk1 As Workbook
    Dim wk2 As Workbook
    Dim wk3 As Workbook
    Dim wk4 As Workbook
    Dim sh1 As Worksheet
    Dim sh2 As Worksheet
    Dim ultimariga As Integer
        
        Sheets("Budget").Select
        Sheets("Budget").Copy
    
        With thisworbook
        .Foglio1.Activate
        .Cells.Select
        .Selection.Copy
        .Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        End With
        
    End Sub
    



  • di Grograman (utente non iscritto) data: 01/09/2014 16:39:50

    Metti l'istruzione "Option Explicit" e vedrai perchè ;)

    P.s. non è l'unico errore.



  • di lepat (utente non iscritto) data: 01/09/2014 16:44:00

    non si capisce qual'è il foglio da copiare e quello in cui copiare, comunque puoi adattare questo codice
     
    Sub a()
    Set Rng = Sheets(1).UsedRange ' foglio da cui copiare
    LC = Rng.Columns.Count
    LR = Rng.Rows.Count
    Sheets(2).Range(Cells(1, 1), Cells(LR, LC)).Value = Rng.Value ' foglio su cui copiare
    End Sub
    



  • di Escounpo (utente non iscritto) data: 01/09/2014 16:55:21

    ciao e grazie per la risposta
    dovrei copiare il foglio "budget" contenuto in una workbook in un'altra workbook,
    ma non dovrei fare copia-incolla valori tra i 2 fogli (come farebbe la macro che mi hai gentilmente postato) ma dovrei copiare l'intero foglio (andando proprio sulla linguetta del foglio "budget", schiacciando il tasto destro, selezionando "sposta o copia", selezionando "nuova cartella", fleggando "crea una copia") ed una volta fatto questo dovrei "eliminare le formule" nel nuovo foglio facendo un copia ed incolla dei valori..
    mi sono spiegato?!:(



  • di Grograman (utente non iscritto) data: 01/09/2014 16:58:59

    Versione brutta, ma bruttabruttabrutta:
     
    Option Explicit
    
    Sub Scopiazzo()
    ThisWorkbook.Worksheets("Budget").Copy
    ActiveSheet.UsedRange = ActiveSheet.UsedRange.Value
    End Sub
    



  • di lepat (utente non iscritto) data: 01/09/2014 17:00:16

    nel tuo codice non c'è niente che faccia riferimento all'altro workbook, se rimani sul vago otterrai risposte vaghe



  • di Escounpo (utente non iscritto) data: 01/09/2014 17:02:05

    perchè bruttabruttabrutta?!:)
    sembra funzionare..
    se io invece volessi copiare ed incollare solo delle parti di foglio?
    devo modificare Usedrange? come?

    grazie



  • di Escounpo (utente non iscritto) data: 02/09/2014 12:18:31

    "nel tuo codice non c'è niente che faccia riferimento all'altro workbook, se rimani sul vago otterrai risposte vaghe"
    hai ragione scusa! non volevo essere vago, davo per scontato pezzi di discorso ( )
    cmq si, il foglio "budget" dovrebbe essere copiato ed incollato così da andare a creare un'altra workbook (proprio come fa la formula di Grograman ), ora sarebbe molto bello capire come copiare ed incollare a valore solo alcuni range e non tutta il foglio..
    :( grazie



  • di Escounpo (utente non iscritto) data: 02/09/2014 15:51:10

    la mia richiesta si completa (ma aihme, anche se ultimamente sto imparando molto, arrivo fino ad un certo punto con vba).
    Ora, tenendo valido il codice di Grograman dovrei solo definire il range da copiare ed incollare, per farlo dovrei utilizzare come "filtro" il colore delle celle, a tal proposito ho trovato questa formula che dovrebbe essere quindi integrata dentro la prima. qualcuno sa come si può fare? incollo le tue formule
     
    Option Explicit
    
    Sub Scopiazzo()
    ThisWorkbook.Worksheets("Budget").Copy
    ActiveSheet.UsedRange = ActiveSheet.UsedRange.Value
    End Sub
    
    
    
    Sub definisci_celle()
    Dim c As Range, Yc As Range
    For Each c In ActiveSheet.UsedRange
        If c.Interior.Color = RGB(219, 229, 241) Then
            If Yc Is Nothing Then
                Set Yc = c
            Else
                Set Yc = Application.Union(Yc, c)
            End If
        End If
    Next c
    End Sub