Risultati da 1 a 26 di 26

Discussione: Excel fogli lavoro



  1. #1
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1

    Excel fogli lavoro

    Buona sera, ho un file excel e, al suo interno ho 246 fogli di lavoro e, vorrei copiare in unico foglio di lavoro i dati contenuti nei 246 fogli lavoro, non so se c'è un modo semplificato per poter far questo, perché fare il copia e incolla non mi conviene perché così facendo impiegherei tantissimo tempo...grazie

  2. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2820
    Versione Office
    Excel 2013
    Likes ricevuti
    1024
    Likes dati
    983
    Tramite VBA si può fare. Ma i Fogli hanno tutti le stesse intestazioni?
    Allega un file senza dati sensibili per creare il ciclo.

  3. #3
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1
    Si ha le stesse intestazioni cioè : "conto, ragione sociale, saldo iniziale, dare, avere, saldo fianle"

  4. #4
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1
    In sostanza ho convertito un file pdf in excel ed excel mi ha aperto tante pagine quante sono le pagine di pdf, ed io però vorrei in unico foglio lavoro tutti i dati dei restanti fogli

  5. #5

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4028
    Versione Office
    2013
    Likes ricevuti
    1232
    Likes dati
    925
    Ciao a tutti,

    @CRISTIAN
    come ha detto "Rubik" (un saluto) con VBA si potrebbe fare ma suppongo che non sei pratico di codici (altrimenti lo avresti già fatto personalmente), quindi conviene che alleghi un file di esempio (anche di soli 3 o 4 fogli) che abbia la stessa struttura di quello originale per capire come sono disposti i dati e quindi cercar di trovare il modo più semplice per "l'importazione" in un unico foglio.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  6. #6
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1
    Non posso allegare alcun file perchè trattasi di informazioni riservate, ok dai mi tocca fare il copia e incolla, comunque grazie...io volevo sapere se ci fosse un metodo che copiasse in unico foglio tutti i dati degli altri fogli a preiscindere di come sono poi disposti i dati nei sudetti fogli

  7. #7

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4028
    Versione Office
    2013
    Likes ricevuti
    1232
    Likes dati
    925
    Citazione Originariamente Scritto da CRISTIAN Visualizza Messaggio
    Non posso allegare alcun file perchè trattasi di informazioni riservate, ok dai mi tocca fare il copia e incolla, comunque grazie...io volevo sapere se ci fosse un metodo che copiasse in unico foglio tutti i dati degli altri fogli a preiscindere di come sono poi disposti i dati nei sudetti fogli
    Potresti anche creare un file con la stessa struttura (tabelle etc...) ed inserire dati fittizi.
    Questo se vuoi ottenere più risposte, perchè anche per fare delle prove con il codice che si scriverà si dovrà pur sempre "costruire" un file su cui poter lavorare. Se questo "lavoro" lo facessi tu eviteresti a chi vuole aiutarti di crearlo da zero.

    Se puoi farlo bene.... altrimenti aspetta e appena qualcuno avrà un pò di tempo (me compreso) proverà a proporti qualcosa di pratico.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  8. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4028
    Versione Office
    2013
    Likes ricevuti
    1232
    Likes dati
    925
    Ciao a tutti,

    Questo potrebbe essere un modo veloce per fare quello che chiedi (indipendentemente da cosa ci sia nei vari fogli) :

    Codice: 
    Option Explicit
    
    
    Sub Importa_Fogli()
    Dim Inizio As Single, iRiga As Long, i As Long, FBase As Worksheet
    
    
    Set FBase = Worksheets("Tutti i fogli in uno")
    Inizio = 6
    For i = 2 To Worksheets.Count
        iRiga = FBase.Range("A" & Rows.Count).End(xlUp).Row + 1
        If iRiga < Inizio Then
            iRiga = Inizio
        End If
        Sheets(i).UsedRange.Copy FBase.Range("A" & iRiga)
    Next i
    MsgBox "Importazione completata!"
    Set FBase = Nothing
    End Sub
    Nel foglio "Tutti i fogli in uno" clicca sopra la scritta "Importa tutti i fogli" per avviare il codice.
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  9. I seguenti utenti hanno dato un "Like"


  10. #9
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    821
    Versione Office
    2016 64bit
    Likes ricevuti
    149
    Likes dati
    55
    Vabbè, ho finito tardi ma visto che l'ho fatto riporto il codice anche se ormai inutile. Il codice va copiato in un modulo VBE.
    Copia solo fino alla colonna F e fino all'ultima riga compilata in colonna A di ogni foglio presente e mette tutto in un nuovo foglio riepilogativo.
    Codice: 
    Option Explicit
    
    Sub Compatta_Fogli()
    
        Dim mwsh As Worksheet   'foglio master ("Compatta")
        Dim wsh As Worksheet    'tutti gli altri
        Dim uru As Long         'ultima riga utile
     
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
        
        On Error Resume Next
        If Not Evaluate("ISREF('Compatta'!A1)") Then
            Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Compatta"           'Crea il foglio se manca
        Else
            Sheets("Compatta").Range("A2:F" & Rows.Count).ClearContents                     'Svuota il foglio se già esiste
        End If
        Set mwsh = Sheets("Compatta")
        For Each wsh In ActiveWorkbook.Sheets                                               'Cicla tutti i fogli
            With wsh
                If .Name <> mwsh.Name Then                                                  'escluso "Compatta"
                    uru = .Range("A" & Rows.Count).End(xlUp).Row                            'Conta le rige presenti
                    .Range("A2:F" & uru).Copy                                               'Copia fino alla colonna F
                    mwsh.Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues  'Incolla in coda a "Compatta"
                End If
            End With
        Next
        
        Application.CutCopyMode = False
        mwsh.Columns.EntireColumn.AutoFit
        mwsh.Range("A1").Select
        
        Application.ScreenUpdating = True
        Application.DisplayAlerts = True
    
    End Sub

  11. I seguenti 5 utenti hanno dato un "Like" a rollis13 per questo post:


  12. #10

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4028
    Versione Office
    2013
    Likes ricevuti
    1232
    Likes dati
    925
    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Vabbè, ho finito tardi ma visto che l'ho fatto riporto il codice anche se ormai inutile.
    Ciao rollis,
    non direi proprio che è inutile... anzi :246:

    Io ho postato il mio giusto per dare un'idea a CRISTIAN su cosa poteva fare.

    P.S.
    Il tuo codice mi ha ricordato che nel mio ho dimenticato di cancellare i dati dal foglio prima dell'importazione :288:

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  13. #11
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    821
    Versione Office
    2016 64bit
    Likes ricevuti
    149
    Likes dati
    55
    Ciao cromagno,
    ho scritto "inutile" perché il tuo codice già risolveva la richiesta "generica" dell'utente. Così almeno si vedono diverso modi di affrontare lo stesso problema. Nel mio le colonne sono bloccate sull' "F" e questo è un segnale di poca flessibilità.
    :261:

  14. #12
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1
    Grazie molto..stasera o domani comunque proverò ad eseguire il codice vba così mi potrà servire per una prossima volta

  15. #13
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1
    Scusami io scrivendo tale codice in vba premendo alt+f11 dovrei poi eseguire la macro e cosi mi importa tutto in unico foglio?

  16. #14
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    821
    Versione Office
    2016 64bit
    Likes ricevuti
    149
    Likes dati
    55
    Nel mio caso, sì, una volta inserito il codice in un modulo con l' Alt+F11 poi lo puoi lanciare con Alt+F8.

  17. #15
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1
    Grazie sei stato veramente d'aiuto, ah proposito cosa devo fare per indicare che ho risolto il problema?

  18. #16
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    821
    Versione Office
    2016 64bit
    Likes ricevuti
    149
    Likes dati
    55
    Vai nella barra dei menu, situata all’inizio di questa discussione, dove troverai il menu "Strumenti Discussione" quindi scegli "Segna questo Thread come risolto".

  19. #17
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1

    Post

    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    vabbè, ho finito tardi ma visto che l'ho fatto riporto il codice anche se ormai inutile. Il codice va copiato in un modulo vbe.
    Copia solo fino alla colonna f e fino all'ultima riga compilata in colonna a di ogni foglio presente e mette tutto in un nuovo foglio riepilogativo.
    Codice: 
    option explicit
    
    sub compatta_fogli()
    
        dim mwsh as worksheet   'foglio master ("compatta")
        dim wsh as worksheet    'tutti gli altri
        dim uru as long         'ultima riga utile
     
        application.screenupdating = false
        application.displayalerts = false
        
        on error resume next
        if not evaluate("isref('compatta'!a1)") then
            worksheets.add(after:=worksheets(worksheets.count)).name = "compatta"           'crea il foglio se manca
        else
            sheets("compatta").range("a2:f" & rows.count).clearcontents                     'svuota il foglio se già esiste
        end if
        set mwsh = sheets("compatta")
        for each wsh in activeworkbook.sheets                                               'cicla tutti i fogli
            with wsh
                if .name <> mwsh.name then                                                  'escluso "compatta"
                    uru = .range("a" & rows.count).end(xlup).row                            'conta le rige presenti
                    .range("a2:f" & uru).copy                                               'copia fino alla colonna f
                    mwsh.range("a" & rows.count).end(xlup).offset(1).pastespecial xlvalues  'incolla in coda a "compatta"
                end if
            end with
        next
        
        application.cutcopymode = false
        mwsh.columns.entirecolumn.autofit
        mwsh.range("a1").select
        
        application.screenupdating = true
        application.displayalerts = true
    
    end sub

    ok va benissimo ma per copiare fino alla colonna g, cioè come mai fino alla colonna f?

  20. #18
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1
    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    ciao a tutti,

    questo potrebbe essere un modo veloce per fare quello che chiedi (indipendentemente da cosa ci sia nei vari fogli) :

    Codice: 
    option explicit
    
    
    sub importa_fogli()
    dim inizio as single, iriga as long, i as long, fbase as worksheet
    
    
    set fbase = worksheets("tutti i fogli in uno")
    inizio = 6
    for i = 2 to worksheets.count
        iriga = fbase.range("a" & rows.count).end(xlup).row + 1
        if iriga < inizio then
            iriga = inizio
        end if
        sheets(i).usedrange.copy fbase.range("a" & iriga)
    next i
    msgbox "importazione completata!"
    set fbase = nothing
    end sub
    nel foglio "tutti i fogli in uno" clicca sopra la scritta "importa tutti i fogli" per avviare il codice.
    vi ringrazio molto per la disponibilità, ma eseguendo il tuo codice mi dice "errore", invece eseguendo il codice vba di "rollis" me lo esegue anche se fino alla colonna f.

  21. #19

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7166
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1305
    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio

    Codice: 
    Option Explicit
    Sub Compatta_Fogli()
        Dim mwsh As Worksheet   'foglio master ("Compatta")
        Dim wsh As Worksheet    'tutti gli altri
        Dim uru As Long         'ultima riga utile
     
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
        
        On Error Resume Next
        If Not Evaluate("ISREF('Compatta'!A1)") Then
            Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Compatta"           'Crea il foglio se manca
        Else
            Sheets("Compatta").Range("A2:G" & Rows.Count).ClearContents                     'Svuota il foglio se già esiste
        End If
        Set mwsh = Sheets("Compatta")
        For Each wsh In ActiveWorkbook.Sheets                                               'Cicla tutti i fogli
            With wsh
                If .Name <> mwsh.Name Then                                                  'escluso "Compatta"
                    uru = .Range("A" & Rows.Count).End(xlUp).Row                            'Conta le rige presenti
                    .Range("A2:G" & uru).Copy                                               'Copia fino alla colonna F
                    mwsh.Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues  'Incolla in coda a "Compatta"
                End If
            End With
        Next
        
        Application.CutCopyMode = False
        mwsh.Columns.EntireColumn.AutoFit
        mwsh.Range("A1").Select
        
        Application.ScreenUpdating = True
        Application.DisplayAlerts = True
    End Sub
    Citazione Originariamente Scritto da CRISTIAN Visualizza Messaggio
    ok va benissimo ma per copiare fino alla colonna g, cioè come mai fino alla colonna f?
    Per compattare fino alla colonna G basta cambiare il codice di Rollis, che saluto, nelle parti che sopra ho indicato in rosso.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  22. #20

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4028
    Versione Office
    2013
    Likes ricevuti
    1232
    Likes dati
    925
    Citazione Originariamente Scritto da CRISTIAN Visualizza Messaggio
    vi ringrazio molto per la disponibilità, ma eseguendo il tuo codice mi dice "errore", invece eseguendo il codice vba di "rollis" me lo esegue anche se fino alla colonna f.
    Dà errore dove? Che errore? Hai modificato qualcosa,cosa?
    Per questo era meglio che allegassi tu il file.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  23. #21
    L'avatar di mb63
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Torino
    Età
    54
    Messaggi
    484
    Versione Office
    2007/10/13 w10
    Likes ricevuti
    18
    Likes dati
    94
    Buon pomeriggio a tutti

    essendo interessato a capire vba ho letto quanto scritto da cromagno che non c'era la cancellazione dell'area precedentemente acquisito
    ho cercato di fare qualche modifica andando a leggere su Google, premesso che la soluzione migliore è impostare la cancellazione dalla prima riga piena all'ultima, volevo chiedere se qualcuno mi può spiegare meglio questo file che ho allegato che lavora sull'area, cioè prima cella di partenza fino ad ultima cella/colonna piena.

    se i dati acquisiti vanno fino alla cella I19, perché
    ActiveCell.SpecialCells(xlCellTypeLastCell).Activate
    lastcell dichiara 11

    e poi in effetti ( ma va bene cosi) cancella l'area A2:I19

    grazie e scusate l'intromissione
    File Allegati File Allegati

  24. #22

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4028
    Versione Office
    2013
    Likes ricevuti
    1232
    Likes dati
    925
    Citazione Originariamente Scritto da mb63 Visualizza Messaggio
    Buon pomeriggio a tutti

    essendo interessato a capire vba ho letto quanto scritto da cromagno che non c'era la cancellazione dell'area precedentemente acquisito
    ho cercato di fare qualche modifica andando a leggere su Google, premesso che la soluzione migliore è impostare la cancellazione dalla prima riga piena all'ultima, volevo chiedere se qualcuno mi può spiegare meglio questo file che ho allegato che lavora sull'area, cioè prima cella di partenza fino ad ultima cella/colonna piena.

    se i dati acquisiti vanno fino alla cella I19, perché

    lastcell dichiara 11

    e poi in effetti ( ma va bene cosi) cancella l'area A2:I19

    grazie e scusate l'intromissione
    Ciao mb63,

    quell'11 che vedi non è il risultato di "xlCellTypeLastCell" ma è effettivamente il valore con il quale viene identificato l'oggetto "xlCellTypeLastCell".

    Se modifichi la riga interessata:
    Codice: 
    ActiveCell.SpecialCells(xlCellTypeLastCell).Activate
    in questo modo:

    Codice: 
    ActiveCell.SpecialCells(11).Activate
    otterresti lo stesso risultato.

    Questa la tabella degli oggetti con i propri valori:



    da questo link (guida):
    https://msdn.microsoft.com/en-us/lib...or=-2147217396

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  25. #23
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1
    grazie molto...risolto

  26. #24
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    821
    Versione Office
    2016 64bit
    Likes ricevuti
    149
    Likes dati
    55
    Citazione Originariamente Scritto da CRISTIAN Visualizza Messaggio
    ok va benissimo ma per copiare fino alla colonna g, cioè come mai fino alla colonna f?
    Semplicemente perché nel tuo post #3 avevi riportato tale indicazione, in mancanza di altre indicazioni o file d'esempio allegati mi sono attenuto all'unico dato disponibile in tutto il thread.

  27. #25
    L'avatar di CRISTIAN
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Francavilla Fontana
    Messaggi
    76
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    1
    grazie molto e vi auguro una Buona Pasqua :)

  28. #26
    L'avatar di mb63
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Torino
    Età
    54
    Messaggi
    484
    Versione Office
    2007/10/13 w10
    Likes ricevuti
    18
    Likes dati
    94
    Grazie a tutti per le info che mi avete dato per accrescere la mia conoscenza VBA

    Buona Pasqua

Discussioni Simili

  1. [Risolto] ordinare i fogli di una cartella di lavoro
    Di CEPE77 nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 20/01/17, 09:52
  2. Pivot su più fogli di lavoro
    Di joseph nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 08/01/17, 08:06
  3. [Risolto] Stampare da un file excel fogli di lavoro presenti su un altro file excel
    Di Lorex nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 09/12/16, 20:21
  4. Unire fogli di lavoro
    Di andrea.t nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 15/06/16, 14:57
  5. Fogli di lavoro con pulsanti
    Di Theinvoker nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 06/02/16, 16:39

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •