Condividi:        

Copiare i dati da un file Excel con nome "variabile"

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Copiare i dati da un file Excel con nome "variabile"

Postdi fabio.mau » 17/02/16 23:56

Ciao a tutti,
ho necessità di importare dati da un file excel ad un altro. Fin qui tutto bene, il problema è che il file con i dati origine è estratto da una pagina web-based con nome file variabile per data e progressivo (ma fortunatamente radice costante).
Ho prodotto una piccola macro che funziona se il file excel ha sempre lo stesso nome, immaginiamo origine001

Codice: Seleziona tutto
Sub copiadato()
    Windows("origine001.xlsx").Activate
        Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Provamacro1.xlsx").Activate
    Cells.Select
    ActiveSheet.Paste
    Range("S3").Select

EBBENE, il problema è che il file origine ha un nome variabile indipendente dalla mia volontà ogni volta che viene estratto dal sito di origine; ad esempio: origine001; origine002; origine003.... ecc. ecc.
Per questo ho pensato di inserire un asterisco nella seconda riga, in questo modo:

Codice: Seleziona tutto
  Windows("origin*.xlsx").Activate


Ma non funziona! Il risultato è: "errore di run-time '9' - indice non incluso nell'intervallo, come se non trovasse il file o questo osse chiuso (ma è aperto)
Qualcuno riesce ad aiutarmi? GRAZEI!!!!
fabio.mau
Newbie
 
Post: 4
Iscritto il: 17/02/16 23:27

Sponsor
 

Re: Copiare i dati da un file Excel con nome "variabile"

Postdi Flash30005 » 18/02/16 03:23

Ciao Fabio.mau e benvenuto nel Forum

non capisco quale problema tu abbia
nel senso che la pagina origine (web) può cambiare ma è possibile variare il codice macro (se il link varia con un metodo tipo data o altro) quindi una volta importati i dati su un foglio di Excel (quindi un file di Excel) a questo punto sei tu che decidi il nome da dare al file e quindi a gestirlo quindi cosa mi sfugge o non hai descritto?
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Copiare i dati da un file Excel con nome "variabile"

Postdi fabio.mau » 18/02/16 10:46

Ciao Flash30005
Grazie per la risposta intanto,
Sono stato succinto, ma sulla tua richiesta specifico meglio. Credo che la difficoltà a comprendere la mia esigenza sia dovuta all banalità della stessa, probabilmente si tratta di una soluzione molto elementare, ma io non ho i rudimenti base si VBA e ciò che ho imparato è solo grazie ai forum come questo e allo smanettamento.

VENGO AL DUNQUE...
Ho un file "A" con una maschera e delle macro che filtrano alcuni campi. Questa maschera prende i dati da un file "B"... Banale copia e incolla in una cartella di lavoro del file "A".
Voglio automatizzare il tutto, perché do il file "A" ad una persona che non ci capisce nulla e voglio che possa fare l'operazione premendo semplicemente "un tasto"

Il file "B" è un csv periodicamente estratto in automatico da una pagina web-based e il nome del file "B" è generato da una radice più una serie di altri elementi tra cui data, ora e un progressivo. Per cui il nome del file "B" da cui ricordo, devo importare i dati (non mi serve aprirlo lo fa già la pagina web-based) è variabile, piuttosto lungo e complesso ma con una radice sempre comune (i primi sei o sette caratteri).

Per fare un esempio semplice; oggi potrebbe chiamarsi "PIPPO_18_02_2106.xlsx" e domani "PIPPO_19_02_2016.xlsx".

Quello di cui ho bisogno è che la mia macro vada a pescare i dati da un file "PIPPO*.xlsx", ma se nella macro ci metto semplicemente un asterisco dopo la radice del nome non funziona.
Sono stato più chiaro? Grazie 1000
fabio.mau
Newbie
 
Post: 4
Iscritto il: 17/02/16 23:27

Re: Copiare i dati da un file Excel con nome "variabile"

Postdi Anthony47 » 18/02/16 23:43

Da quello che hai scritto il file in questione e' tra quelli aperti... Prova a identificarne l'esistenza con questo codice:

Codice: Seleziona tutto
Dim WB As Workbook, PrefiX As String, myWBN As String   'Dichiarazione variabili

'Ricerca tra i file aperti:
PrefiX = "MULTI"               '<<< Parte iniziale fissa
For Each WB In Workbooks
    If Windows(WB.Name).Visible = True Then
        If Left(WB.Name, Len(PrefiX)) = PrefiX Then
            myWBN = WB.Name
            Exit For
        End If
    End If
Next WB
If myWBN = "" Then
    MsgBox ("Nessun file tipo " & PrefiX & "*.* e' aperto; processo abortito")
    Exit Sub
End If
Windows(myWBN).Activate
'etc etc
A completamento del codice la variabile myWBN conterra' il nome del workbook che rispetta il vincolo indicato nell'istruzione marcata <<< (che quindi va personalizzata) e la userai al posto della stringa col nome file.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare i dati da un file Excel con nome "variabile"

Postdi fabio.mau » 19/02/16 09:33

Ciao :cry:
Ho provato a copiare paro paro.. come segue....
ma mi da un errore; ovvero mi si apre la finestra generata dalla macro dove mi dice 'nessun file aperto'

Mi chiedo: ma non è possibile semplicemente imporre di 'attivare' un file con nome "pippo*.xlsx" ?
Non esiste una corretta sintassi per mettere un nome parziale di file legato al comando .activate?
Questo risolverebbe il problema in un secondo.
...segue lista...
RI-grazie

Codice: Seleziona tutto
Sub copia()
'
' copia Macro
'

'Windows("origine001.xlsx").Activate
   
 'Ricerca tra i file aperti:
Prefix = "MULTI"               '<<< Parte iniziale fissa
For Each WB In Workbooks
    If Windows(WB.Name).Visible = True Then
        If Left(WB.Name, Len(Prefix)) = Prefix Then
            myWBN = WB.Name
            Exit For
        End If
    End If
Next WB
If myWBN = "" Then
    MsgBox ("Nessun file tipo " & Prefix & "*.* e' aperto; processo abortito")
    Exit Sub
End If
Windows(myWBN).Activate
   
       
    'operazione di copia
    Range("B6").Select
    Selection.Copy
    Windows("Provamacro1.xlsx").Activate
    Range("B6").Select
    ActiveSheet.Paste
    Range("N5").Select
End Sub
fabio.mau
Newbie
 
Post: 4
Iscritto il: 17/02/16 23:27

Re: Copiare i dati da un file Excel con nome "variabile"

Postdi Anthony47 » 19/02/16 21:13

1) Il comando che attiva un file a caso non esiste in Excel.

2) Hummm... Ho l'impressione che non hai letto per intero il messaggio che ti e' uscito; ne' hai letto il messaggio che ti avevo scritto e che parlava di una personalizzazione al codice da fare...
:evil:
O sbaglio?
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare i dati da un file Excel con nome "variabile"

Postdi fabio.mau » 19/02/16 23:12

OH MON DIEU!!!!!
FUNZIONAAAAAAA!!!!! :D

Grazie....

ne' hai letto il messaggio che ti avevo scritto e che parlava di una personalizzazione al codice da fare...

Leggere l'avevo letto... capito no. Grazie al tuo caziatone ho capito cosa si intendeva per "personalizzazione" e ora funziona!!!!

GRAZIE 1000

Spero di poter ricambiare, con le macro di Excel sicuramente no, ma se hai bisogno di informazioni didattiche sui funghi... quello è il mio mondo.

GRAZIE ANCORA!
fabio.mau
Newbie
 
Post: 4
Iscritto il: 17/02/16 23:27

Re: Copiare i dati da un file Excel con nome "variabile"

Postdi Flash30005 » 20/02/16 00:55

fabio.mau ha scritto:Spero di poter ricambiare, con le macro di Excel sicuramente no, ma se hai bisogno di informazioni didattiche sui funghi... quello è il mio mondo.


Che bella notizia!

A me i funghi piacciono da morire!
(specialmente se li vado a cogliere io) :lol:
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "Copiare i dati da un file Excel con nome "variabile"":


Chi c’è in linea

Visitano il forum: Nessuno e 83 ospiti

cron