Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Vba excel Importare più file aperti con nome variabile su di un file

  1. #1
    Ciao a tutti son un neofita del forum e anche per il VBA di Excel.

    Ho un problemone con dei file, allora la situazione è questa:

    ho circa 7 file di excel diversi da importare in un unico file (già predisposto, ed in un certo senso, fisso), questi 7 file (piccolo problema) hanno nomi di giorno in giorno diversi. Quindi sarebbe meglio, credo, avere una macro in Vba che importi sul file "fisso" gli "n" fogli dei file aperti in quel momento. File attivi, una cosa del genere.

    Se qualcuno può aiutarmi, ne sarei veramente grato.

    Grazie

  2. #2
    GiuseppeMN non è in linea Scribacchino
    Buona sera, pippobpmaster;
    i Foglio di lavoro presenti in un file .xls possono essere copiati o spostati in un altro file .xls
    Dobbiamo solo capire se, nei 7 file aperti, ci sono Fogli di lavoro con lo stesso nome; in questo caso, nel file di destinazione, vengono rinominati con indice (n) (dove "n" è il numero di fogli di lavoro con lo stesso nome).

    Questa è una procedura che può essere eseguita manualmente piuttosto che con un codice VBA.

    A dispsosizione.

    Buona serata.

    Giuseppe

  3. #3
    ricky53 non è in linea Scribacchino
    Ciao,
    quanti fogli contiene ogni file EXCEL?
    Tu devi fare l'operazione ogni giorno?
    ℹ️ Leggi di più su ricky53 ...

  4. #4
    Salve a tutti, scusate per il ritardo... ma in questi giorni ho avuto uno sgradevole contrattempo.

    Allora i file sono 7 con ognuno un foglio nominato sempre "Sheet1", come giustamente ha anticipato ricky53 l'operazione deve essere fatta ogni giorno e più volte al giorno, ad esempio 30 volte * 7 files * ogni giorno.

    Sarebbe ottimo poter copiare un'area, ad esempio 10 righe * 20 colonne per i file aperti (i 7 di prima), su di un file di raccordo. Poi chiudo i 7 files.

    Può reggere un ipotesi del genere?

    Grazie

  5. #5
    ricky53 non è in linea Scribacchino
    Ciao,
    i dati da copiare sono contigui?
    Puoi indicare le effettive righe/colonne/celle da copiare?
    I sette file sono in un percorso dove ci sono solo loro?
    E' preferibile che sia così, si facilita l'operazione di copia/incolla

    Come te la cavi con il VBA?

    Qualcosa si può fare ma prima vediamo cosa rispondi.
    ℹ️ Leggi di più su ricky53 ...

  6. #6
    Buongiorno a tutti! Allora i dati da copiare sono presenti su di un'area variabile, possono essere 10 colonne clone 5 ed 1 riga come 10, dipende sono variabili. Volendo i 7 files si possono anche salvare in una cartella (percorso) fissa xo' dovrei salvarmi 7 * 30 * ogni giorno files. Sarebbero tanti e ogni volta da salvare... X quello pensavo se si potesse fare con i files aperti senza salvare i famosi 7 files. Comq i dati copiati possono tranquillamente andare a finire su di un foglio sotto qualsiasi forma, anche trasposti va bene. Il Vba l'ho scoperto recentemente quindi cerci di aggiustarmi per quello che capisco immedesimandomi nella logica di funzionamento.


    Grazie

  7. #7
    ricky53 non è in linea Scribacchino
    Ciao,
    con il VBA si può fare tutto, o quasi, ma occorre avere chiare le necessità e sapere come si opera!

    Alcune domande:
    Tu come operi?
    I 7 file che hai sono tutti aperti contemporaneamente?
    Sono aperti partendo da una pagina web oppure sono su un server?
    sono prodotti automaticamente e ti arriva l'avviso che c'è un nuovo file e tu lo apri manualmente?
    Sono file tutti file excel?
    le volte in cui fai l'operazione sono fisse per ogni giorno (il tuo 30) ?
    per ogni volta hai sempre 7 file excel da copiare?

    Come fai ad individuare quali righe/colonne sono da copiare?
    ecc. ecc.

    Pensandoci ancora mi posso venire in mente altre domande che posso aiutare ad arrivare a definire bene il flusso, le necessità e, quindi, pensare a come risolvere la questione da te posta.
    ℹ️ Leggi di più su ricky53 ...

  8. #8
    Buongiorno a tutti,

    allora i files sono tutti aperti contemporaneamente, sarebbe bello avere qualche cosa che riesce a pescare i dati d'interesse per i files aperti in quell'istante. Li apro io manualmente e son tutti file .xls, le volte che ripeto l'operazione sono variabili 2, 3, 10, 30... volte e così via, in qualsiasi momento della giornata. I files da copiare xo' son sempre 7. Le righe o colonne da copiare sono, in base alla tipologia di files, variabili. Un ottimo criterio può essere "copia le celle valorizzate". E' un'idea, in genere le ricghe e colonne da copiare sono sempre poche al max 10 righe per 20 colonne, nel caso peggiore.

    Son stato esaustivo? non essendo un informatico, per forma mentis difforme dalle logiche del software, può ovviamente sfuggirmi qualche dato necessario per poter elaborare una risposta. Mi scuso per questo, ma allo stesso tempo credo che la problematica presentata ora sia più chiara.

  9. #9
    ricky53 non è in linea Scribacchino
    Ciao,
    mi sembra di aver chiaro cosa ti occorre.
    Appena posso provo ad inviarti del codice sul quale lavorare per arrivare al risultato.
    ℹ️ Leggi di più su ricky53 ...

  10. #10
    ricky53 non è in linea Scribacchino
    Ciao,
    ecco un esempio di codice che copia, nel "Foglio1" del file attivo, TUTTI i dati presenti nel "Primo Foglio" (Attenzione non è necessariamente il "Foglio1") di tutti i file aperti
    Option Explicit
    Option Compare Text
    
    Sub Copia_Dati_da_File_Aperti()
    ' Copia, nel "Foglio1" del file attivo, TUTTI i dati presenti nel "Primo Foglio" di tutti i "FILE Aperti"
        
        Dim WB As Workbook, I As Integer, Ur As Integer, Indirizzo As String
        Dim Cartella As Workbook
        Set WB = ActiveWorkbook
        
        I = 2
        For Each Cartella In Workbooks
            If Left(Cartella.Name, 8) <> "Personal" And Cartella.Name <> WB.Name Then
                Ur = WB.Sheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row + 1
                Indirizzo = Cartella.Sheets(1).UsedRange.Address
                Cartella.Sheets(1).Range(Indirizzo).Copy Destination:=WB.Sheets("Foglio1").Cells(Ur, 1)
                I = I + 1
            End If
        Next Cartella
    End Sub
    
    Il codice è un punto di partenza sul quale lavorare.

    ATTENZIONE: Prima di tutto fai una copia del "File sul quale copiare i dati" è una forma di sicurezza !!!

    Dopo aver aperto i tuoi "7" file vai sul "File sul quale copiare i dati" e lancia la macro.
    ℹ️ Leggi di più su ricky53 ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Risposte: 2
    Ultimo Post: 19-10-2015, 07:11
  2. Risposte: 4
    Ultimo Post: 01-03-2012, 01:12
  3. assegnare a una variabile il nome del file excel in uso
    Da lorddago nel forum Microsoft Excel
    Risposte: 2
    Ultimo Post: 21-07-2009, 20:34
  4. Importare un dati da un file excel verso un altro file excel
    Da ciccios100 nel forum Microsoft Excel
    Risposte: 3
    Ultimo Post: 11-09-2008, 16:20
  5. Recuperare il nome dei file aperti
    Da cippalippa nel forum Visual Basic .Net
    Risposte: 12
    Ultimo Post: 21-09-2007, 19:59