Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Possibile macro che a salvataggio file escel copi tutto il file e lo salvi o lo invii via mail?

Ultimo Aggiornamento: 14/12/2019 09:35
Post: 189
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
27/11/2019 09:22

Ciao a tutti,

mi servirebbe come da titolo una macro che mi possa:

1) salvare copia di tutto il file excel (composto da molti fogli) in una posizione nel pc o rete

2)che magari possa inviare suddetto file anche via mail con mail aruba.

possibile?

grazie
Post: 189
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
27/11/2019 12:35

CIAO A TUTTI,

ho trovato questo file nel ns forum,

Sub SalvaProgr()
'NOTA!! IL FILE ORIGINALE DA SALVARE NON DEVE CONTENERE "_" !!!!
trovato = False
prog = 0
mPath = "\\SERVER\Condivisa\SAVE\"
mFile = ActiveWorkbook.Name
mNome = Mid(mFile, 1, InStrRev(mFile, ".") - 1)
mFile = Mid(mFile, 1, InStrRev(mFile, ".") - 1) & "*.xlsm"
cerca = Dir(mPath & mFile)
Do While cerca <> ""
trovato = True
mNum = CInt(Mid(cerca, InStrRev(cerca, "_") + 1, 2))
If mNum < prog Then mNum = prog
cerca = Dir
Loop
If trovato = False Then
ActiveWorkbook.SaveCopyAs mPath & mNome & "_01" & ".xlsm"
Else
mNum = mNum + 1
ActiveWorkbook.SaveCopyAs mPath & mNome & "_" & Format(mNum, "00") & ".xlsm"
End If
End Sub


possibile farlo eseguire quando chiudo foglio, magari indicando nome del pc di provenienza, data ed orario?

inviarlo via mail in automatico credo sia impossibile

grazie di tutto
27/11/2019 19:00

Solo per prova per sapere se funziona pure con Aruba
Inserisci in K1 la Tua mail (Aruba)
Inserisci in K2 la password legata alla casella (Aruba), casomai prova con quella del Tuo ServerPosta
In B6/B7 inserisci un destinatario (amico) oppure Te stesso
Ps Per adesso allegato non funziona
Post: 191
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
29/11/2019 18:59

GRAZIE INFINITE,

per salvare invece un file cha abbia magari un percorso di rete per salvataggio, nome del computer che lo salva e salvataggio automatico alla chiusura / slavataggio del file?

Es io marco apro il file e lo salvo alle 14:00 del 12/12/19 nella posizione originale.
Dovrebbe restituirmi una copia del salvataggio in posizione \\SERVER\Condivisa\ save con nome pc-marco (preso dal nome pc) con nome del file aggiungendo data ed orario al salvataggio.

Mi serviorebbe copia salvataggio in excel e non pdf, di tutto il file excel e non del singolo foglio.

Possibile?

grazie
30/11/2019 02:29

Se inserisci codice sull'originale diventa un .xlsm ???
Decidi Tu come salvare...
Apri l'editor con ALT+F11, inserisci un modulo e copiaci il codice sotto
Devi scegliere se desideri salvare le macro (riga20 o riga21) e (riga24 o riga25). Adesso salva come xlsx
Per la prima volta salva l'originale fisicamente
Ps. Nel caso Tu abbia Excel in inglese. Devi cambiare nome alla Sub auto_close() in Sub Workbook_BeforeClose() e spostarlo in "Questa_cartella_di_lavoro"

A proposito dell'allegato (io te lo sconsiglio, perchè invieresti pure i dati della Tua mail), basterebbe cambiare la riga '.Attachments.Add(allegato) in .AddAttachment "C:\percorso completo\Documento.pdf". Naturalmente sarebbe logico salvare una copia senza codice ed eliminare il foglio dei dati mail
Non capisco il forum fà caprice se inserisco codice
[Modificato da ABCDEF@Excel 30/11/2019 02:44]
Post: 192
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
30/11/2019 09:34

Grazie infinite, testerò il tutto.
appena posso...
gentilissimo

p.s.
Sub auto_close()
Dim nome1 As String, nome2 As String, pat As String
nome1 = Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1)
nome2 = UserNameWindows
pat = "C:\Users\Lello\Desktop\" 'pat = "\\SERVER\Condivisa\" '<<< ' scegli tra queste due come desideri salvare
nome1 = pat & nome2 & "-" & nome1 & "-" & Year(Date) & Month(Date) & Day(Date) & ".xlsx" ' excel senza codice
'nome1 = nome & "-" & nome1 & "-" & Year(Date) & Month(Date) & dai(Date) & ".xlsm" ' excel con codice
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs 'salvo l'originale
ActiveWorkbook.SaveAs Filename:=nome1, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False ' excel senza codice
'ActiveWorkbook.SaveAs Filename:=nome, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False ' excel con codice
Application.DisplayAlerts = True
End Sub

quali sono i righi con scelte? una immagino dove hai scritto scegli come desideri salvare, altro?
[Modificato da Pako96 30/11/2019 09:44]
Post: 193
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
30/11/2019 10:41

scusa, ho letto meglio...ma non è servito. Che significa con o senza codice?
differenze?
Grazie
30/11/2019 11:37

La scelta... tra (riga20 o riga21) e tra (riga24 o riga25).
In questo momento salva XLSX, le due righe verdi (quelle che salvano come XSLM) sono disabilitate

Ps. pat = "C:\Users\Lello\Desktop\" è riferito al mio PC
Tu dovrai usare... pat = "\\SERVER\Condivisa\"
[Modificato da ABCDEF@Excel 30/11/2019 11:41]
Post: 194
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
30/11/2019 11:49

ehm facciamo finta che non sappia la differenza tra xslm etc...quale è? ;)
[Modificato da Pako96 30/11/2019 11:49]
Post: 195
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
30/11/2019 11:55

ho provato ad eseguire il file così come , salva in save ho messo \\SERVER\Condivisa\save\
ma funziona solo se faccio esegui su macro e non alla chiusura del file, inoltre non è possibile inserire anche orario e nome pc dal quale è stato aperto?
grazie
30/11/2019 12:43

Cerca su google la differenza tra XLSX e XLSM
1) Il nome del PC viene inserito tramite il codice da riga1 a riga13
2) Se hai la versione Excel-Italiano, auto_close funziona
a riguardo l'orario, sostituisci queste due righe
nome1 = pat & nome2 & "-" & nome1 & "-" & Replace(Format(Now, "dd/mm/yyyy-hh-mm"), "/", "") & ".xlsx" ' excel senza codice
'nome1 = pat & nome2 & "-" & nome1 & "-" & Replace(Format(Now, "dd/mm/yyyy-hh-mm"), "/", "") & ".xlsm" ' excel con codice

Alla riga 23 = ActiveWorkbook.SaveAs togli "As" finale
[Modificato da ABCDEF@Excel 30/11/2019 13:00]
Post: 196
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
03/12/2019 18:46

Grazie di tutto, devo provare ancora...altra domanda.
I fogli funzionano perfettamente, (devo ancora inserire macro salvataggio), ho dei pulsanti in ogni foglio per la stampa del foglio ma attivando la protezione del foglio i pulsanti non funzionano più...
come fare?

graie
Post: 197
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
13/12/2019 09:58

Grazie ho compilato male?

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long


Function UserNameWindows() As String
Dim lngLen As Long
Dim strBuffer As String
Const dhcMaxUserName = 255
strBuffer = Space(dhcMaxUserName)
lngLen = dhcMaxUserName
If CBool(GetUserName(strBuffer, lngLen)) Then
UserNameWindows = Left$(strBuffer, lngLen - 1)
Else
UserNameWindows = ""
End If
End Function
Sub auto_close()
Dim nome1 As String, nome2 As String, pat As String
nome1 = Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1)
nome2 = UserNameWindows
pat = "\\SERVER\Condivisa\SALVATAGGIO SCADERNZIARI\" 'pat = "\\SERVER\Condivisa\SAVE BACKUP\" '<<< ' scegli tra queste due come desideri salvare
nome1 = pat & nome2 & "-" & nome1 & "-" & Replace(Format(Now, "dd/mm/yyyy-hh-mm"), "/", "") & ".xlsx" ' excel senza codice
'nome1 = pat & nome2 & "-" & nome1 & "-" & Replace(Format(Now, "dd/mm/yyyy-hh-mm"), "/", "") & ".xlsm" ' excel con codice
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs 'salvo l'originale
ActiveWorkbook.SaveAs Filename:=nome1, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False ' excel senza codice
'ActiveWorkbook.SaveAs Filename:=nome, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False ' excel con codice
Application.DisplayAlerts = True
End Sub

Sub ListF()
Sheets("Indice").Range("A1").Value = "Nome Foglio"
For i = 1 To ThisWorkbook.Worksheets.Count
Sheets("Indice").Cells(i + 1, 1).Value = Sheets(i).Name
Next i
End Sub



non funziona
Post: 198
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
13/12/2019 10:05

volendo excel con codice come fare?
Post: 199
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
13/12/2019 11:34

Scusa...sono riuscito a farlo funzionare, se chiudo la prima volta lo salva, se richiudo dopo un minuto non ne salva altrea copia.

come fare:

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function UserNameWindows() As String
Dim lngLen As Long
Dim strBuffer As String
Const dhcMaxUserName = 255
strBuffer = Space(dhcMaxUserName)
lngLen = dhcMaxUserName
If CBool(GetUserName(strBuffer, lngLen)) Then
UserNameWindows = Left$(strBuffer, lngLen - 1)
Else
UserNameWindows = ""
End If
End Function
Sub auto_close()
Dim nome1 As String, nome2 As String, pat As String
nome1 = Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1)
nome2 = UserNameWindows
pat = "\\SERVER\Condivisa\SALVATAGGIO SCADERNZIARI\" 'pat = "\\SERVER\Condivisa\" '<<< ' scegli tra queste due come desideri salvare
nome1 = pat & nome2 & "-" & nome1 & "-" & Replace(Format(Now, "dd/mm/yyyy-hh-mm"), "/", "") & ".xlsx" ' excel senza codice
'nome1 = pat & nome2 & "-" & nome1 & "-" & Replace(Format(Now, "dd/mm/yyyy-hh-mm"), "/", "") & ".xlsm" ' excel con codice
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs 'salvo l'originale
ActiveWorkbook.SaveAs Filename:=nome1, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False ' excel senza codice
'ActiveWorkbook.SaveAs Filename:=nome, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False ' excel con codice
Application.DisplayAlerts = True
End Sub



grazie
13/12/2019 15:37

Premesso che continuo a non capirTi.
Ho corretto alcuni piccoli errori miei, ho disabilitato pure due righe verdi che "nascondevano i messaggi provenienti dal PC" dopo se Ti va bene le riabiliterai togliendo il carattere = '

Questo codice salva con NomePC-Files-Data-Minuti-secondi.XLSM (con codice)
Ps. Il forum non accetta codice con scritte simili...\\server ???
>>>Prima di tutto salva il files sul PC, dopo lo apri e nel codice modifica la riga della "pat"<<<
Presumo che Tu sappia come farlo funzionare..., apri il files sul Tuo-PC.
Fai quello che desideri e poi chiudi. Mentre Excel si chiude salva la copia originale sul Tuo-PC e dopo salva un'altra copia sul server.
NB. Tu non devi "MAI" avviare il codice auto_close, perchè non sarai più sul Tuo-PC mà sulla copia già fatta sul server.
Allego il files, mà Tu devi sostituire la riga = "pat" = al mio PC
[Modificato da ABCDEF@Excel 13/12/2019 16:01]
Post: 200
Registrato il: 06/12/2005
Città: ACCIANO
Età: 46
Utente Junior
excel 2010-2013
OFFLINE
14/12/2019 09:35

Perfetto grazie davvero....all'inizio non capivo cosa fosse il codiceprima del nome del file...è il nome del pc....grazie

auguri di buon Natale e Felice Anno Nuovo a tutti
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 09:23. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com