Macro per riepilogo



  • Macro per riepilogo
    di Mark87 (utente non iscritto) data: 21/03/2017 10:52:56

    Buongiorno a tutti,
    Premetto che non sono un esperto di macro ed ho un problema.
    Ho una cartella di lavoro excel contenente molti fogli.. e la mia necessità è quella di avere alla fine del documento in un nuovo foglio di riepilogo tutti i dati di tutti i fogli del documento. In rete ho trovato una macro che fa più o meno quello di cui ho bisogno.. tranne per un problema.. mi copia tutto nel foglio di riepilogo comprese le formule, mentre io vorrei che mi copiasse solamente i dati contenuti nelle celle. come devo modificare la macro con l'incolla speciale?? Grazie in quanti mi aiuteranno..
     
    Public NumFog As Long, NumRig As Long, NumRTot As Long, I As Long, Riep As Object
    
    
    
     Sub Copia_Dati()
    
        Set Riep = Sheets("Riepilogo") ' <--- Da modificare eventualmente nome foglio del riepilogo
        
        
        NumRig = 0
    
        NumFog = Worksheets.Count ' <--- In questo modo si possono aggiungere altri fogli
    
        NumRTot = Riep.Range("A1500").End(xlUp).Row
    
        Application.ScreenUpdating = False
    
        If NumRTot > 1 Then
    
            Riep.Select
                                 
            Range(Cells(1, 1), Cells(NumRTot, 16)).ClearContents
    
            NumRTot = 1
                    
        End If
    
        For I = 1 To NumFog
    
            If Sheets(I).Name <> Riep.Name Then
    
                   NumRig = Sheets(I).Range("A65536").End(xlUp).Row
    
                   Sheets(I).Select
                                 
                   Range(Cells(1, 1), Cells(NumRig, 16)).Copy Destination:=Riep.Cells(NumRTot, 1)
                                   
                   NumRTot = NumRTot + NumRig - 1
                   
                                  
                   
            End If
    
        Next I
    
        Riep.Select
            
        Application.ScreenUpdating = True
    
    End Sub
    



  • di alfrimpa data: 21/03/2017 10:58:43

    Mare allega un file di esempio con qualche foglio, dati e risultato desiderato inserito a mano.





  • di Mark87 (utente non iscritto) data: 21/03/2017 11:18:23

    Il risultato che mi serve è la copia di tutti i dati di tutti i fogli in uno solo chiamato riepilogo e la macro che ho allegato lo fa in parte, perchè copia anche le formule, mentre a me servono solo i dati contenuti nei fogli.. diciamo che mi serve applicare a quella macro questa parte
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    ma non so come fare



  • di alfrimpa data: 21/03/2017 13:16:04

    Ti avevo chiesto un file di esempio con il risultato desiderato per, a prescindere dalla macro che hai postato, cercare di poterti aiutare.

    Se non vuoi allegarlo per me non ci sono problemi.

    Alfredo





  • di Marius44 data: 21/03/2017 19:49:10

    Ciao Mark
    Ha ragione Alfredo (ciao)! Con un file d'esempio si farebbe prima.
    Proviamo lo stesso.
    Non utilizzare
    - Range(Cells(1, 1), Cells(NumRig, 16)).Copy Destination:=Riep.Cells(NumRTot, 1)

    ma spezzala in due parti e unisci quello che hai proposto tu stesso:
    - Range(Cells(1, 1), Cells(NumRig, 16)).Copy
    - Riep.Cells(NumRTot, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    Prova e fai sapere. Al caso, allega il file.
    Ciao,
    Mario