unire 1108 fogli excel



  • unire 1108 fogli excel
    di menenic (utente non iscritto) data: 18/08/2016 21:38:04

    Buona sera.
    Ho un file excel contenente una lista di nominativi in 1108 fogli da circa 90 righe e 10 colonne ciascuno e volevo raggruppare tutto in un unico foglio.
    Qui nel forum avete suggerito una macro, che però, per quello che credo di aver capito, non funziona per il fatto che un foglio excel ha un limite massimo di righe.
    Anche ottenere il minor numero di fogli possibile sarebbe un ottimo risultato.

    Questa è la mcro trovata da modificare per il mio caso:

    Public Sub m()

    Dim wrks As Worksheet
    Dim lng As Long

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    With Worksheets("Storico")
    .Select
    For Each wrks In Worksheets
    If wrks.Name <> "Storico" Then
    wrks.Range("A2:F42").Copy
    lng = .UsedRange.Rows.Count + 1
    .Cells(lng, 1).Select
    ActiveSheet.Paste
    wrks.Delete
    End If
    Next
    End With

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

    End Sub


    Grazie.



  • di alfrimpa data: 18/08/2016 22:13:06

    Ciao menenic

    Da Excel 2007 il numero max delle righe per foglio è di oltre un milione per cui nin credo sia quello il problema.

    I 1108 fogli hanno tutti 10 colonne ed hanno tutti la stessa struttura?

    Al momento sono in ferie e senza pc per cui non posso aiutarti direttamente e la macro non mi pare, a occhio, faccia quello che hai chiesto.

    Allega un file di esempio con 4/5 fogli che siano strutturalmente uguali ai tuoi ma con dati fittizi ed un foglio di riepilogo dove mostri come devono essere riportati dati dei fogli precedente ossia il risultato da te atteso.

    Alfredo





  • di Raffaele_53 data: 19/08/2016 06:34:38

    Ciao a tutti
    Se ho capito hai in un file, 1108 fogli da 90 righe = quasi 100.000 righe
    Come dice alfrimpa(ciao), dopo excel 2003 puoi farlo.
    Se è già presente bene, oppure inserisci un foglio col nome "Storico"
    Ps. Prova se va bene. Se proprio desideri eliminare i fogli togli il simbolo ' alle tre righe

     
    Sub copia()
    Dim ws As Worksheet, Ur As Long, Rg As Long
    Rg = 1 ' metti due per iniziare dalla riga2 in Storico
    Application.ScreenUpdating = False
    'Application.DisplayAlerts = False
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "Storico" Then ''qui il nome
            With ws
                Ur = ws.Range("A" & Rows.Count).End(xlUp).Row
                If Rg + Ur > 1048576 Then MsgBox "Mancanza di righe, Esco dalla procedura": GoTo Fine
                ws.Range("A1:J" & Ur).Copy ' casomai modificalo
                Sheets("Storico").Range("A" & Rg).PasteSpecial
                Rg = Rg + Ur
                'ws.Delete 'Se desideri eliminare, devi attivare le due righe DisplayAlerts
            End With
        End If
    Next ws
    MsgBox "Fatto"
    Fine:
    Application.ScreenUpdating = True
    'Application.DisplayAlerts = True
    End Sub



  • di menenic (utente non iscritto) data: 19/08/2016 14:58:49

    Innanzitutto ringrazio entrambi per la pronta risposta.
    Mi è un po complicato fare un file di prova da inviarvi.
    In sostanza il file in questione è stato estratto da un pdf con il programma Renee PDF Aide.
    Il file ottenuto è un po incasinato nel senso che non tutti i fogli hanno la stessa formattazione, in alcuni le celle sono unite in altri no.
    Prima di scaricare questo programma di conversione ho provato con vari siti online, ma mi convertivano solo le prime 25 pagine. Con il file così ottenuto, a mano (senza fretta) e con qualche formuletta semplice, sono riuscito ad ottenere ciò che voglio, ma la lista totale dei dati è ovviamente incompleta perchè ha solo le prime 25 pagine e non tutte 1108.
    Quindi la mia necessità è quella di unire tutti i fogli e poi allineare le celle e le colonne.
    Ovviamente in automatico essendo improponibile fare il lavoro che ho fatto a mano per 1108 pagine.

    Per farvi capire la formattazione del file, cerco di spiegarvi come ho agito per ottenere ciò che ho ottenuto.
    Ho agito nel seguente modo:
    - separato tutte le celle che erano unite su tutto il foglio.(selezionandole in alto a sx).
    - ciò facendo però ho ottenuto i dati relativi alla stessa voce su 2 colonne diverse a seconda di come erano formattati prima della separazione, quindi (pagina per pagina) ho eliminato le celle vuote spostando a dx o sx a seconda della necessità ed ho ottenuto per ogni colonna i dati relativi alla stessa voce. (Magari questo lavoro può essere risparmiato facendo qualcosa a tutto il documento prima della separazione, me lo direte voi se c'è un modo).
    - A questo punto, i dati alla prima colonna sono composti da un numero progressivo seguito da un nome e sono nella stessa cella (es. 12 Nome). Così scritti viene impossibile per esempio ordinarli in ordine alfabetico, quindi ho creato una nuova colonna e vi ho copiato e incollato tutta la lista ottenendo due colonne vicine identiche. Poi con la formula =DESTRA o =SINISTRA ho eliminato in una i numeri e nell'altra i nomi ottenendo due colonne, una con i numeri progressivi ed in quella a fianco i rispettivi nomi.

    Spero di essere stato esauriente e chiaro.

    Grazie



  • di Raffaele_53 data: 19/08/2016 22:14:44

    Con i PDF ci sono solo problemi, che io sappia non esiste un vero programma che funziona per tutti i tipi di PDF (sono le varie tabelle che sfalsano il tutto).
    Programmi, anche dal Web. Pure Acrobat Professional (Carissimo, ho visto certe sue importazioni disastrose).
    Devi riuscire a tradurlo per excel, poi si vedrà se sono in grado di darTi una mano



  • di menenic (utente non iscritto) data: 20/08/2016 15:25:16

    Aggiornamento:

    in parte ho risolto.
    Altro problema.....
    per modificare il contenuto di alcune celle ho creato una formula che, essendo le celle da modificare molte, per comodità ho copiato su tutta la colonna di tutto il foglio. Adesso, mi trovo il documento con più di 17000 pagine, cioè fino alla fine possibile del documento. Finchè c'erano celle da modificare le ha modificate e poi c'è #VALORE.
    Siccome devo copiare il documento su di un'altro.......come faccio ad eliminare quest'ultime per poter selezionare direttamente tutto il foglio in alto a sinistra senza selezionare l'area che è molto ampia?