mosca

Excel

9 messaggi in questa discussione

ciao. vorrei sapere se con excel è possibile copiare tanti file A in unico file B in modo che sul nuovo fille unico ognuno dei file A crei un proprio foglio.

grazie

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

se non ho capito male, puoi farlo creando un collegamento ipertestuale dal menu inserisci, collegando un file A al file B

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

ciao, mmm...

io ho 90 file di 1 foglio: vorrei creare 1 file con 90 fogli;

però in un sol colpo, senza fare copia e incolla file per file.

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un file di Excel ed accedi a VisualBasic for Applications, quindi devi creare una macro come questa che ho trovato nel web:

Option Explicit

Public Sub TuttiPerUno()
On Error GoTo errore

Const cWorkbookExt = "*.xls"
Const cWshIndex = 1
Dim strPathSep	As String
Dim strPathName   As String
Dim strMyName	 As String
Dim strFilename   As String
Dim wbIn		  As Excel.Workbook
Dim wshIn		 As Excel.Worksheet
Dim wshOut		As Excel.Worksheet
Dim rngOut		As Excel.Range

With Application
.ScreenUpdating = False
.DisplayAlerts = False
strPathSep = .PathSeparator
With .ThisWorkbook
strPathName = .Path
strMyName = .Name
With .Worksheets
Set wshOut = .Add(Before:=.Item(1))
End With
End With
End With
If Right$(strPathName, 1) <> strPathSep Then
strPathName = strPathName & strPathSep
End If
strPathName = strPathName
strFilename = Dir(strPathName & cWorkbookExt, vbNormal)
Do While Len(strFilename)
If strFilename <> strMyName Then
'Debug.Print strFilename
Set wbIn = Workbooks.Open(strPathName & strFilename _
, ReadOnly:=True _
, AddToMru:=False)
'Debug.Print , wbIn.FullName
Set wshIn = wbIn.Worksheets.Item(cWshIndex)
'Debug.Print , , wshIn.Name
With wshOut.UsedRange
If .Rows.Count = 1 Then
Set rngOut = .Cells(1, 1)
Else
Set rngOut = .Resize(1 _
, 1).Offset(.Rows.Count)
End If
With wshIn.Cells
.Range(.Item(1, 1) _
, .Find("*" _
, After:=.Cells(1, 1) _
, LookIn:=xlFormulas _
, LookAt:=xlPart _
, SearchOrder:=xlByRows _
, SearchDirection:=xlPrevious _
, MatchCase:=False) _
).Copy rngOut
End With
End With
wbIn.Close SaveChanges:=False
End If
strFilename = Dir
Loop

ExitProcedure:
With Application
.DisplayAlerts = True
.ScreenUpdating = True
End With
Set rngOut = Nothing
Set wshOut = Nothing
Set wshIn = Nothing
Set wbIn = Nothing
Exit Sub

ErrorHandler:
MsgBox Err.Description, vbCritical
Resume ExitProcedure

End Sub

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

ciao e grazie per aver cercato sul web per me. non volevo dare troppo disturbo. purtroppo è la prima volta che provo le macro e non sono riuscito a farle funzionare. infatti mi esce questo errore:

post-3108-1223454712_thumb.jpg

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ciao,

se non vuoi usare il VBA puoi crearti il file raccoglitore, poi dovresti aprire ogni singolo file da includere e clicchi col destro sul nome del foglio scegliendo l'opzione "copia, sposta"

Per quanto riguarda l'errore dell'immagine quella riga di codice vuol dire "in caso di errore salta tutto il codice e vai alla riga denominata errore" solo che l'etichetta errore nel codice non c'è. c'è invece l'etichetta " ErrorHandler"

tu adesso o rinomini ErrorHandler in Errore, oppure Errore in ErrorHandler

Saluti

Modificato da tippolo

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

ciao. ho apportato la modifcia e la macro ha funzionato, però non come volevo. infatti invece di creare 1 file con 97 fogli ha copiato, uno sotto l'altro, tutti i file in 1 file unico con 1 solo foglio.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
ciao. ho apportato la modifcia e la macro ha funzionato, però non come volevo. infatti invece di creare 1 file con 97 fogli ha copiato, uno sotto l'altro, tutti i file in 1 file unico con 1 solo foglio.

Il codice postato da frman sicuramente fa quel che deve fare, solo che dovrebbe essere personalizzato alle tue esigenze. Io sinceramente sono un po arrugginito col VBA di excel e rimettermi ad aggiustarlo francamente non mi va, perderi più tempo della soluzione 2. Se qualcun altro te lo modifica ok altrimenti dovresti optare per la seconda soluzione:

Ciao,

se non vuoi usare il VBA puoi crearti il file raccoglitore, poi dovresti aprire ogni singolo file da includere e clicchi col destro sul nome del foglio scegliendo l'opzione "copia, sposta"

Modificato da tippolo

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora