Condividi:        

Salva solo foglio attivo con percorso e nome

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

Salva solo foglio attivo con percorso e nome

Postdi angelo72 » 07/11/13 16:10

Salve. se volessi salvare solo il foglio attivo Dandoli il nome del contenuto
della cella B2 e D2, e salvarlo in un percorso es. C:\users\camel\desktop\lavoro
rimanendo nel file originale dove sto lavorando, come posso fare?
grazie
angelo72
Utente Junior
 
Post: 70
Iscritto il: 28/10/13 17:04

Sponsor
 

Re: Salva solo foglio attivo con percorso e nome

Postdi angelo72 » 07/11/13 20:50

Nessuno che può aiutarmi?
Grazie...
angelo72
Utente Junior
 
Post: 70
Iscritto il: 28/10/13 17:04

Re: Salva solo foglio attivo con percorso e nome

Postdi Flash30005 » 08/11/13 00:38

Sei un angelo con poca pazienza :D

Prova così
Codice: Seleziona tutto
Sub salva2()

Directory = "C:\users\camel\desktop\lavoro\"
ThisFile = [B2] & [D2] & ".xls"
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=Directory & ThisFile

'<<<< eliminare le righe che seguono se non occorrono
MsgBox _
" Il Tuo File è stato salvato correttamente " & vbCrLf & _
" " & vbCrLf & (ThisFile), vbInformation
End Sub


Elimina tutto il contenuto di Msgbox se non ti occorre
Ciao

EDIT ore 01:00 - modificata macro per poter salvare il foglio e non il file (mia svista)
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: Salva solo foglio attivo con percorso e nome

Postdi Anthony47 » 08/11/13 00:50

angelo72 ha scritto:salvare solo il foglio attivo Dandoli il nome del contenuto
della cella B2 e D2, e salvarlo in un percorso es. C:\users\camel\desktop\lavoro
rimanendo nel file originale dove sto lavorando
In alternativa alla macro di Flash (vedi sopra) io suggerirei:
Codice: Seleziona tutto
Sub angelo()
myDir = "C:\users\camel\desktop\lavoro"
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=myDir & "\" & Range("B2") & Range("D2") & ".xls"
ActiveWorkbook.Close
End Sub
Essa crea una copia del foglio attivo in un nuovo workbook, lo salva usando come nome il concatenamento dei valori contenuti in B2 e D2, e lo chiude; ti ritroverai quindi col file iniziale attivo.

Ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Salva solo foglio attivo con percorso e nome

Postdi angelo72 » 08/11/13 08:24

Nessuno delle due funziona.... mi da l'errore nel vba alla seguente riga: ActiveWorkbook.SaveAs Filename:=Directory & ThisFile

Io realizzato qualcosa del genere che potrebbe andare anche bene, senza specificare i Range del titolo file. La formula in questione, qui sotto riportata, mi copia tutto il file e non il Foglio attivo...... Come faccio a salvare solo il foglio attivo?

Dim ComboBox1 As Variant
Dim sPath As String
Dim sNomeFile As Variant
Dim lRisposta As Long
Set sh = ThisWorkbook.Worksheets("Servizio_Mensile")
sPath = "C:\users\camel\desktop\lavoro\"

'se la directory definita non esiste la creo
If Dir(sPath, vbDirectory) = "" Then MkDir sPath

Application.ScreenUpdating = False


'--------------------------------------------
'Definisco il nome del file da salvare
sNomeFile = InputBox("Dimmi il nome del file da salvare." _
, "... salvataggio file ...")

If sNomeFile = Empty Then
MsgBox "Non hai specificato il nome del File da salvare !" & vbNewLine _
& "!!! ATTENZIONE !!! Verrà utilizzato il nome ERRORE_di_SALVATAGGIO.XLSM."
sNomeFile = "ERRORE_di_SALVATAGGIO.XLSM"
ElseIf Right(sNomeFile, 5) <> ".xlsm" Then
sNomeFile = sNomeFile & ".xlsm"
End If
'--------------------------------------------

sNomeFile = sPath & sNomeFile

If Dir(sNomeFile) <> "" Then
lRisposta = _
MsgBox(Prompt:="Il file: " & sNomeFile & " !!! ATTENENZIONE !!! Esiste già! Vuoi sovrascriverlo?", _
Title:="Attenzione", _
Buttons:=vbYesNo + vbQuestion)
If lRisposta = vbNo Then Exit Sub
End If

'Application.CutCopyMode = False


ActiveWorkbook.SaveAs Filename:=sNomeFile, FileFormat:=xlOpenXMLWorkbookMacroEnabled
Workbooks.Open Filename:="c:\users\camel\desktop\lavoro\programmazione_turni" & a & T & ".xlsm"

Application.ScreenUpdating = True
Set sh = Nothing

End Sub

Come faccio a salvare solo il foglio attivo?
angelo72
Utente Junior
 
Post: 70
Iscritto il: 28/10/13 17:04

Re: Salva solo foglio attivo con percorso e nome

Postdi Anthony47 » 08/11/13 10:07

Ci hai voluto umiliare :D :D
Se la macro di Flash e la mia ti danno errore (quale errore?) sull' istruzione di salvataggio allora o ti manca la directory C:\users\camel\desktop\lavoro oppure quanto presente in D2 e B2 non e' compatibile con la struttura di attribuzione dei nomi in Windows. Quindi chiarisci cosa contengono quelle celle e potremo competere anche noi.

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

Re: Salva solo foglio attivo con percorso e nome

Postdi angelo72 » 08/11/13 10:47

aSSOLUTAMENTE NO.x ANTHONY47...LA DIRECTORY CON IL SUO PERCORSO ESISTE E NELLA CELLA B2 E' SCRITTO: QUADRO, NELLA D2: GIORNALIERO.
IL FILE VIENE SALVATO CORRETTAMENTE CON ESTENSIONE .XLS MA QUANDO APRO IL FILE, MI ESCE
FUORI QUESTA SCRITTA:
iL FORMATO DEL FILE CHE SI STA CERCANDO DI APRIRE, "QUADROGIORNALIERO"
è DIVERSO DA QUELLO SPECIFICATO DALL'ESTENSIONE DEL FILE. PRIMA DI APRIRE IL FILE,
VERIFICARE CHE NON SIA DANNEGGIATO E CHE PROVENGA DA UNA FONTE ATTENDIBILE.
APRIRE IL FILE ORA?
RISPONDO DI si, E IL FILE SI APRE...
fORSE POTREBBE ESSERE CHE IL FILE PRINCIPALE è UN FILE xlsm? SE è QUESTO COME POSSO
ELIMINARE QUESTO fastidioso MESSAGGIO?
angelo72
Utente Junior
 
Post: 70
Iscritto il: 28/10/13 17:04

Re: Salva solo foglio attivo con percorso e nome

Postdi Anthony47 » 08/11/13 13:06

Beh, se il file contiene macro che vuoi mantenere nel file nuovo userai
Codice: Seleziona tutto
ActiveWorkbook.SaveAs Filename:=myDir & "\" & Range("B2") & Range("D2") & ".xlsm"

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

Re: Salva solo foglio attivo con percorso e nome

Postdi angelo72 » 08/11/13 14:35

x anthony... Mi da l'errore nel vba se inserisco...xlsm.... cmq può andare cosi......Una cosa però mi interesserebbe. Si potrebbe aggiungere una selezione delle celle che si intende salvare?
Grazie....
angelo72
Utente Junior
 
Post: 70
Iscritto il: 28/10/13 17:04

Re: Salva solo foglio attivo con percorso e nome

Postdi Anthony47 » 09/11/13 00:22

Si puo' fare anche il salvataggio di un intervallo specificato.
Dovresti pero' chiarire se vuoi salvare i Valori o le Formule, i Formati , le eventuali Macro; e se salvando mettiamo B1:H50 questi vanno salvati in B1:H50 del nuovo file o basta farlo da A1.

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

Re: Salva solo foglio attivo con percorso e nome

Postdi angelo72 » 09/11/13 08:12

x Anthony47. Nelle varie celle ho delle formule come questa sotto riportato:
=CERCA.VERT("bianchi MARIO";Programmazione_Turni!$H$6:$K$10000;3;0)
Questa formula mi restituisce ciò che è riportato nel foglio: Programmazione_turni, che potrebbe essere ad esempio Il turno di lavoro, ferie,malattia,eccc.
A me servirebbe il salvataggio del file da un Range A1:H2755 del solo risultato ottenuto dalle formule, Cioè il turno,malattia, ferie,ecc...
angelo72
Utente Junior
 
Post: 70
Iscritto il: 28/10/13 17:04

Re: Salva solo foglio attivo con percorso e nome

Postdi angelo72 » 09/11/13 11:33

C'è qualcuno che potrebbe aiutarmi con questo problema?
Questa è la formula di Anthony47, che salva il foglio attivo in un percorso

myDir = "C:\users\camel\desktop\lavoro"
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=myDir & "\" & Range("B2") & Range("D2") & ".xls"
ActiveWorkbook.Close


Mi servirebbe specifare anche il Range. Faccio l'esempio:

Nelle varie celle ho delle formule come questa sotto riportata:
=CERCA.VERT("bianchi MARIO";Programmazione_Turni!$H$6:$K$10000;3;0)
Questa formula mi restituisce ciò che è riportato nel foglio Programmazione_turni, che potrebbe essere ad esempio Il turno di lavoro, ferie,malattia,eccc.
Il salvataggio del file deve essere da un Range A1:H2755 del solo risultato ottenuto dalle formule, Cioè il turno,malattia, ferie,ecc...
Grazie...
angelo72
Utente Junior
 
Post: 70
Iscritto il: 28/10/13 17:04

Re: Salva solo foglio attivo con percorso e nome

Postdi Anthony47 » 09/11/13 12:26

Hai risposto alla meta' delle domande e ora metti fretta?
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Salva solo foglio attivo con percorso e nome

Postdi angelo72 » 09/11/13 12:52

Assolutamente no... non sapevo se tu fossi online o meno... Quindi ho chiesto se qualcuno poteva aiutarmi... Lungi da me Anthony47 metterti fretta.....Ti abbraccio
angelo72
Utente Junior
 
Post: 70
Iscritto il: 28/10/13 17:04

Re: Salva solo foglio attivo con percorso e nome

Postdi Anthony47 » 10/11/13 01:02

:D :D
Se vuoi salvare solo uno specifico intervallo, potresti usare una macro del tipo
Codice: Seleziona tutto
Sub FoRAnge()
Dim mySorg As String, myRange As String, myDir As String, myFile As String
'
'>>> PARAMETRI:
mySorg = "Foglio2"      '<< Il foglio da copiare
myRange = "B2:Z50"      '<< L'area da copiare
myDir = "C:\users\camel\desktop\lavoro"     '<< La directory di salvataggio
'
Sheets(mySorg).Select
ActiveSheet.Copy
Cells.ClearContents
Range(myRange).Value = ThisWorkbook.Sheets(mySorg).Range(myRange).Value
myFile = myDir & "\" & Range("B2").Value & Range("D2").Value & ".xls"
ActiveWorkbook.SaveAs Filename:=myFile, _
    FileFormat:=xlExcel8, Password:="", WriteResPassword:=""
ActiveWorkbook.Close
MsgBox ("Salvato file " & myFile & vbCrLf & "nella directory " & myDir)
End Sub
Solo l' area specificata in myRange sara' salvata nella copia del foglio, sotto forma di valori (non formule); all' uscita dalla macro sarai nuovamente nel file di origine.
Se come foglio vuoi lavorare sul foglio attivo, allora sostituisci mySorg = "Foglio2" con mySorg=Activesheet.name

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

Re: Salva solo foglio attivo con percorso e nome

Postdi angelo72 » 10/11/13 10:32

x Anthony47....Ti ringrazio per il tempo dedicatomi.La formula funziona, però mi da delle Note informative
che vorrei superare... cerco di spiegarmi in ordine eventi:



1- quando salvo il file, mi esce una schermata: Microsoft Excel- Verifica Compatibilità, ecc. ecc..
e ho due scelte quella di: CONTINUA o ANNULLA. Se scelgo CONTINUA mi salva il file in .xls della
versione Excel 97-2003. Ciò lo verifico passandoci sopra con il mouse sul file salvato.
Se invece dovessi optare per ANNULLA, mi da errore del VBA... errore di run-time 1004, metodo 'SaveAs' dell'oggetto'_Workbook
non riuscito. Debug o FINE.

2- Il file salvato contiene delle Formule che all'oro volta mi restituiscono un risultato, ma quando
salvo e poi riapro il file, le celle sono vuote. Ho visto che tu l'hai specificato, ho sbagliato
io a non specificarlo che deve salvare le formule.

3- Il salvataggio del Range è perfetto, però mi salva oltre al range anche i pulsanti. Si potrebbe
salvare solo il Range senza i pulsanti?

P.s. Uso Excel 2010 e il mio file contiene più macro.

Ciao
angelo72
Utente Junior
 
Post: 70
Iscritto il: 28/10/13 17:04

Re: Salva solo foglio attivo con percorso e nome

Postdi Anthony47 » 11/11/13 03:37

Se vuoi evitare quel messaggio allora salva in formato xslx oppure xlsm; es (formato xlsx):
Codice: Seleziona tutto
myFile = myDir & "\" & Range("B2").Value & Range("D2").Value & ".xlsx"
ActiveWorkbook.SaveAs Filename:=myFile, _
    FileFormat:= xlOpenXMLWorkbook, Password:="", WriteResPassword:=""
(due righe da modificare)

Quanto alle formule scomparse, mi pareva che avessi tu chiesto di salvare solo i valori: "Il salvataggio del file deve essere da un Range A1:H2755 del solo risultato ottenuto dalle formule"
Se vuoi salvare le formule (che ovviamente ora faranno riferimento al file iniziale, non al file copia), tulla la macro diventa:
Codice: Seleziona tutto
Sub FoRAnge2()
Dim mySorg As String, myRange As String, myDir As String, myFile As String
'
'>>> PARAMETRI:
mySorg = "Foglio11"      '<< Il foglio da copiare
myRange = "A2:AM50"      '<< L'area da copiare
myDir = "C:\users\camel\desktop\lavoro"     '<< La directory di salvataggio
'
Sheets(mySorg).Select
Workbooks.Add
ThisWorkbook.Sheets(mySorg).Range(myRange).Copy Destination:=Range(myRange).Cells(1, 1)
'
myFile = myDir & "\" & Range("B2").Value & Range("D2").Value & ".xlsx"
ActiveWorkbook.SaveAs Filename:=myFile, _
    FileFormat:=xlOpenXMLWorkbook, Password:="", WriteResPassword:=""
ActiveWorkbook.Close
MsgBox ("Salvato file " & myFile & vbCrLf & "nella directory " & myDir)
End Sub
Questa gia' ingloba anche la modifica descritta prima (salvataggio in formato xlsx)

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

Re: Salva solo foglio attivo con percorso e nome

Postdi angelo72 » 11/11/13 10:42

Grazie mille Anthony47... Era ciò che volevo....Funziona che è una meraviglia...
Grazie.....
angelo72
Utente Junior
 
Post: 70
Iscritto il: 28/10/13 17:04

Re: Salva solo foglio attivo con percorso e nome

Postdi robi1112 » 11/11/13 15:27

ciao a tutti
scusate se mi intrometto;
ho modificato per le mie esigenze l'ultimo codice di antony47.
pero' se provo a salvare un foglio attivo dandogli il nome del contenuto
della cella a4 e af4 (sono celle unificate),mi si modifica anche il file attivo.( praticamente mi divide le celle unificate).
cosa sbaglio?
robi1112
Utente Junior
 
Post: 45
Iscritto il: 29/10/13 17:05

Re: Salva solo foglio attivo con percorso e nome

Postdi Anthony47 » 11/11/13 15:45

cosa sbaglio?
Sbagli a usare le celle unite; se vuoi sapere cosa ne penso guarda qui: viewtopic.php?f=26&t=85065

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

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Salva solo foglio attivo con percorso e nome":


Chi c’è in linea

Visitano il forum: Nessuno e 17 ospiti