foglio di riepilogo



  • foglio di riepilogo
    di Alex11 (utente non iscritto) data: 19/11/2013 00:36:49

    Buona sera a tutti,
    premetto che non conosco il vba ma ho sempre usato le formule, ma edesso non riesco a risolvere in mio problema perchè con le formule impiegherei troppo tempo.
    Vi espongo il mio problema:
    Ho una cartella di lavoro con fogli (n) + un foglio di riepilogo, in questo ultimo foglio dovrei portare il range G2:G30 di ogni foglio in tante colonne quanti sono i fogli, esempio foglio 1 range G2:G30 copiare in foglio riepilogo C2:C30, foglio 2 range G2:G30 copiare in foglio riepilogo E2:E30,foglio 2 range G2:G30 copiare in foglio riepilogo G2:G30.
    Spero di essere stato abbastanza chiaro, spero che qualcuno mi possa aiutare


  • riepilogo nome fogli e range
    di canapone (utente non iscritto) data: 19/11/2013 06:52:24

    Ciao,

    prova a copiare sul foglio riepilogo di un file di prova il seguente codice.

    Saluti
     
    Sub riepilogo()
    
    Application.ScreenUpdating = False
    
    Range("2:2").ClearContents
    
    For I = 2 To Sheets.Count
        Cells(2, I + 1) = Sheets(I).Name
        Sheets(I).Range("G2:G30").Copy Cells(3, I + 1)
        Next I
    
    Application.ScreenUpdating = True
    
    End Sub
    


  • lista fogli e range
    di canapone (utente non iscritto) data: 19/11/2013 07:00:17

    Ciao,

    ho modificato

    Range("2:2").ClearContents

    in

    Range("2:32").ClearContents

    Potresti anche sosituire

    Sub riepilogo()

    con

    Private Sub Worksheet_Activate()

    per ottenere l'elenco aggiornato ogni volta che vai sul foglio

    Saluti
     
    Sub riepilogo()
    
    Application.ScreenUpdating = False
    
    Range("2:32").ClearContents
    
    For I = 2 To Sheets.Count
        Cells(2, I + 1) = Sheets(I).Name
        Sheets(I).Range("G2:G30").Copy Cells(3, I + 1)
        Next I
    
    Application.ScreenUpdating = True
    
    End Sub



  • di alex11 (utente non iscritto) data: 19/11/2013 23:32:29

    Ciao ho provato il codice che mi hai postato ma non funzione cioè inserisce il nome del foglio nella prima cella ma nella collonna non riporta i dati poi se non chied troppo avrei bisogno che il primo foglio viene inserito nella colonna C il secondo foglio dovrebbe andare nella colonna E e così via per gli altri fogli cioè tra una colonna e l'altra deve rimanere una colonna vuota



  • di Alex11 (utente non iscritto) data: 19/11/2013 23:53:18

    Dimenticavo di dire che la colonna che devo riportare nel riepilogo contiene una formula attivata con vba che è la seguente: =SE.ERRORE(SINISTRA(INDIRIZZO(1;CONFRONTA("X";B2:F2;0);4;1);1);"0")



  • di Alex11 (utente non iscritto) data: 20/11/2013 05:49:38

    Credo di essere entrato in totale confusione....
    Allora nel frattempo ho dovuto apportare altre modifiche quindi adesso nel foglio di Riepilogo devo portare il range G2:H31 ma in questo range ci sono dei valori ottenuti con una macro che posto qui sotto, quindi con la macro già con la precedente macro i dati vengono presi ma con riferimenti delle formule e non funziona
    Attendo altre soluzioni o consigli
     
    Option Explicit
    Sub boh()
    Dim ws As Worksheet
      For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "Riepilogo" Then ''qui il nome
          With ws
            .Cells.Font.Name = "Arial"
            .Cells.Font.Size = 12
            .Range("G2:G31 ").FormulaR1C1 = "=IFERROR(LEFT(ADDRESS(1,MATCH(""X"",RC[-5]:RC[-1],0),4,1),1),""O"")"
            .Range("H2:H31 ").FormulaR1C1 = "=IF(RC[-1]=Riepilogo!R[1]C[-7],1.5,IF(RC[-1]=""O"",0,-0.4))"
                
          End With
          
        End If
      Next ws
    End Sub


  • copia valori
    di canapone (utente non iscritto) data: 20/11/2013 06:40:57

    Ciao,

    in attesa di soluzioni migliori fai un tentativo un file di prova.

    la macro dovrebbe incollare i valori prodotti dalle formule in g2:g30 dei vari fogli, nelle colonne C-E-G...del primo foglio che ho chiamato riepilogo.

    Spero sia d'aiuto
     
    Option Explicit
    
    Sub provaprova
    
    Dim i As Integer
    
    Application.ScreenUpdating = False
    
    Range("2:35").ClearContents
    
    For i = 2 To Sheets.Count
        Cells(2, i + i - 1) = Sheets(i).Name
        Sheets(i).Range("G2:G30").Copy
        Sheets("Riepilogo").Cells(3, i + i - 1).PasteSpecial xlPasteValues
        Next i
    
    Application.ScreenUpdating = True
    
    End Sub


  • copia incolla speciale saltando colonne
    di canapone (utente non iscritto) data: 20/11/2013 07:08:28

    Ciao,

    forse non serve

    Range("2:35").ClearContents

    E' più prudente levarlo dal codice.

    Se non servisse il nome del foglio, basta levare (è ancora nel codice)

    Cells(2, i + i - 1) = Sheets(i).Name


    Spero sia d'aiuto
     
    Option Explicit
    
    Sub provaprova
    
    Dim i As Integer
    
    Application.ScreenUpdating = False
    
    Range("2:35").ClearContents
    
    For i = 2 To Sheets.Count
        Cells(2, i + i - 1) = Sheets(i).Name
        Sheets(i).Range("G2:G31").Copy
        Sheets("Riepilogo").Cells(3, i + i - 1).PasteSpecial xlPasteValues
        Next i
    
    Application.ScreenUpdating = True
    
    End Sub



  • di Alex11 (utente non iscritto) data: 20/11/2013 20:19:43

    Grazie Mille funziona alla perfezione


  • vba colonne alterne
    di canapone (utente non iscritto) data: 21/11/2013 07:01:34


    Grazie a te del cortese riscontro.

    Spunto "risolto"

    Alla prossima