Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[macro] excel importa fogli generico

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

[macro] excel importa fogli generico

Postdi Andrea84 » 08/11/17 21:46

Ho cercato in diversi post ma non ho trovato una risposta che corrisopnda a quello che sto provando a fare (con poco successo).

io ho un file excel BABBO con dentro 3 fogli, dal quele vorrei poter lanciare una macro che fa i seguenti 3 step:

1) mi apre un file excel scelto dall'utente: di cui non ho ne nome ne percorso, dovrebbe poterlo scegliere l'utente di volta in volta.

2) mi copia il contenuto di questo file (vanno benissimo le prime 20 colonne) (che sarà sempre fatto di un solo foglio, ma il cui nome del foglio può cambiare e io non posso conoscere a priori).

3) incolla questo contenuto nel primo dei 3 fogli già esistenti del file BABBO. (non voglio che crei un nuovo foglio).

----------------------------

da quanto leggevo nelle altre discussioni si doveva o sapere il percorso, o il nome del foglio, o altro...
Un grazie in anticipo a tutti quelli che volessero aiutarmi.
Andrea84
Newbie
 
Post: 5
Iscritto il: 08/11/17 21:36

Sponsor
 

Re: [macro] excel importa fogli generico

Postdi Zer0Kelvin » 08/11/17 23:34

Ciao.
Questa è una macro minimale che:
-apre la finestra di dialogo "Apri File"
-copia l'intero contenuto del primo foglio del file aperto sul primo foglio del file che contiene la macro
-chiude il file
Codice: Seleziona tutto
Public Sub TestCopia()
Dim fName As String
    fName = Application.GetOpenFilename( _
                filefilter:="Tutti i files di Excel, *.xl*", _
                Title:="Selezionare il file", _
                MultiSelect:=False)
    If fName <> "Falso" Then
        With Workbooks.Open(fName)
            .Sheets(1).Cells.Copy ThisWorkbook.Sheets(1).Range("A1")
            .Close False
        End With
    End If
End Sub
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: [macro] excel importa fogli generico

Postdi Andrea84 » 09/11/17 13:09

Funziona benissimo. e pensare che ieri mi ero tirato matto per ore.... :(

ma qual'è il campo di questa macro che mi permette di settargli su quale foglio copiare (in questo caso il primo foglio)?
Andrea84
Newbie
 
Post: 5
Iscritto il: 08/11/17 21:36

Re: [macro] excel importa fogli generico

Postdi Zer0Kelvin » 09/11/17 13:40

Quando ti riferisci ad un foglio, puoi indicare il nome
Codice: Seleziona tutto
Sheets("Pippo")
questo indica il foglio chiamato Pippo
oppure il n°
Codice: Seleziona tutto
Sheets(1)
questo indica il primo foglio.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: [macro] excel importa fogli generico

Postdi Andrea84 » 09/11/17 15:22

Funziona davvero bene! è perfetto!!!

ultimissima domanda, ma forse dovrei aprire un altro post.

Se volessi salvare/esportare solo il terzo foglio, togliendo le formule e facendo uscire il classico box "salva con nome", come dovrei fare?

in pratica i passaggi logici credo siano i seguenti:

1) copiare il terzo foglio
2) aprire un nuovo file excel e copiargli solo questo foglio senza formule
3) far comparire il box "salva con nome" per questo nuovo file appena creato
Andrea84
Newbie
 
Post: 5
Iscritto il: 08/11/17 21:36

Re: [macro] excel importa fogli generico

Postdi Andrea84 » 09/11/17 17:55

Andrea84 ha scritto:Funziona davvero bene! è perfetto!!!

ultimissima domanda, ma forse dovrei aprire un altro post.

Se volessi salvare/esportare solo il terzo foglio, togliendo le formule e facendo uscire il classico box "salva con nome", come dovrei fare?

in pratica i passaggi logici credo siano i seguenti:

1) copiare il terzo foglio
2) aprire un nuovo file excel e copiargli solo questo foglio senza formule
3) far comparire il box "salva con nome" per questo nuovo file appena creato


HO dimenticato di specificare due cose:
1)il file di output deve essere un TXT
2) non vi dovrebbe essere la necessità di specificare un separatore di colonne in quanto sull'excel il terzo foglio sarà sempre SOLO una colonna).
Andrea84
Newbie
 
Post: 5
Iscritto il: 08/11/17 21:36

Re: [macro] excel importa fogli generico

Postdi Anthony47 » 09/11/17 20:02

Mutuando la bella soluzione di Z0K:
Codice: Seleziona tutto
Sub SaveAsTxt()
Dim fName As String
'
    Sheets(3).Copy
    fName = Application.GetSaveAsFilename( _
                filefilter:="Text files, *.txt", _
                Title:="Selezionare la Directory e scegliere il Nome file")
    If fName <> "Falso" Then
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:=fName, FileFormat:=xlText, CreateBackup:=False
    End If
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
'
End Sub
Questa crea una copia del "terzo foglio", chiede all'utente di scegliere il percorso e il nome con cui salvare, salva in format txt, chiude la copia del foglio.

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

Re: [macro] excel importa fogli generico

Postdi Andrea84 » 10/11/17 10:32

Grazie mille a tutti, ogni soluzione che avete dato ha funzionato perfettamente!!!
Andrea84
Newbie
 
Post: 5
Iscritto il: 08/11/17 21:36


Torna a Applicazioni Office Windows


Topic correlati a "[macro] excel importa fogli generico":


Chi c’è in linea

Visitano il forum: Nessuno e 36 ospiti