Creare nuovo file excel estraendo i dati da altri file excel

Anonimo
2014-12-04T23:55:26+00:00

Ciao,

premetto che non conosco praticamente nulla di VBA.

Nel corso degli anni ho creato innumerevoli file Excel strutturati nel medesimo modo.

Ogni file è composto da diversi fogli, tutti uguali nella struttura tranne i fogli Pippo e Pluto (che sono diversi nella struttura e non ho necessità di prendere in considerazione).

Ogni foglio è strutturato in modo identico all'altro.

Il nome di questi fogli è composto da strighe che (ahimè) contengono anche punti (.) e parentesi e segni +-

Ora vorrei estrarre tutti i dati da questi fogli e riepilogarli in un unico foglio.

Esempio di un file

cartellann.xls

foglio23.5                 voglio prendere il contenuto della cella E8,E9,E10............

foglio2Ø3.5ES44      voglio prendere il contenuto della cella E8,E9,E10...........

foglio23.5+23(3)      voglio prendere il contenuto della cella E8,E9,E10............

pippo                       non voglio considerare

pluto                        non voglio considerare

vorrei creare una nuova cartella suppergiù così.

cartellann.xls             foglio23.5                contenuto cella E8                contenuto cella E9              contenuto cella E10 ................

cartellann.xls            foglio2Ø3.5ES44      contenuto cella E8                contenuto cella E9              contenuto cella E10 ................

cartellann.xls            foglio23.5+23(3)      contenuto cella E8                contenuto cella E9              contenuto cella E10 ................

cartellannnnnn.xls    così via.....

Come posso fare?

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2014-12-16T11:35:30+00:00

Ciao Red Mud,

     Const sAddress = "F2,K2,C4,H4,C6,H6,E8,I7,I8,J8,L8," _

          & "E9,I9,E10,E11,E12,E13,I14,J15,E16,J17,J18," _

    & "B21,E21,H21,J21,O21,B22,E22,H22,J22,O22," _

& "B23,E23,H23,J23,O23,B24,E24,H24,J24,O24," _

& "B25,E25,H25,J25,O25,B26,E26,H26,J26,O26,B28,J28,I30," _

& "L30,L32,D36,F36,I36,D37,F37,I37,D38,F38,I38," _

& "P15,P16,P17,P18"                     '<<==== Modifica

Credo che il tuo problema sia dovuto alla lunghezza della stringa sAddress e il numero di caratteri linebreak (_).

Pertanto, prova invece:

      Const sAddress As String = "F2,K2,C4,H4,C6,H6,J8,L8,I7:I9," _

& "E8:E13,I14,J15,E16,J17:J18,B21:B26,E21:E26," _

& "H21:H26,J21:J26,O21:O26,B28,J28,I30,L30,L32," _

& "D36:D38,F36:F38,I36:I38,P15:P18"                                

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

36 risposte aggiuntive

Ordina per: Più recente
  1. Anonimo
    2014-12-12T10:55:14+00:00

    Ciao Norman

    Set WB = Workbooks.Open(oFile)

    Al punto dell'errore, nella finestra Immediate (Ctrl+G), digita:

    ? oFile.Path e premi Invio

    Copia/incolla il risultato in una risposta. Inoltre, prova ad aprire quel file a mano.

     Risposta

    ? oFile.Path

    X:\Schede prezzo\Adam Pumps\Thumbs.db

    Ma io questo file non lo vedo nella cartella quindi non riesco ad aprirlo.

    Perché?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-12-12T10:05:56+00:00

    Ciao Red Mud,

    Errore di run-time '1004"

    Evidenzia la riga:

    Set WB = Workbooks.Open(oFile)

    Al punto dell'errore, nella finestra Immediate (Ctrl+G), digita:

    ? oFile.Path e premi Invio

    Copia/incolla il risultato in una risposta. Inoltre, prova ad aprire quel file a mano.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-12-12T08:03:13+00:00

    Ciao Norman,

                Ri-esegui il codice. Quando viene rilevato l'errore, quale riga viene evidenziata?

    Aggiornato il codice come da istruzioni.

    Rieseguito.

    Errore di run-time '1004"

    Evidenzia la riga:

    Set WB = Workbooks.Open(oFile)

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-12-11T17:10:03+00:00

    Ciao Red Mud,

    Se lancio la macro "diagnostica" la esegue correttamente e non dà errore.

    Se lancio la macro "tester" (tua ultima versione) dopo aver estratto correttamente dalla prima cartella, dà errore come file allegato.

    Dove sbaglio?

    Ti ho inviato file in pvt.

     Temporaneamente, sostituisci le righe:

        On Error GoTo XIT

        Application.ScreenUpdating = False

    con

        **'**On Error GoTo XIT

        Application.ScreenUpdating =True

    (nota l'apostrofo iniziale sulla prima riga).

    Ri-esegui il codice. Quando viene rilevato l'errore, quale riga viene evidenziata?

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento