Forudsat at Navn står i f.eks. celle B1, og at filen skal gemmes det samme sted blot under det nye navn, og at måned angives som et tal fra 1 til 12:
Gem og Luk:
Private Sub cmdGemogLuk() Dim Sti As String, Navn As String Sti = ActiveWorkbook.Path Navn = "Timeregistrering " & Cells(1, 2).Value & Date If Cells(1, 2).Value = "" Then If vbNo = MsgBox("Der er ikke angivet et navn. Vil du gemme filen som " & Navn & "?", vbYesNo) Then MsgBox "Fil ikke gemt" Exit Sub End If End If ActiveWorkbook.SaveAs Filename:=Sti & "\" & Navn MsgBox "Fil gemt som " & Navn & " i mappen " & Sti 'Application.Quit End Sub
Du kan også vælge helt af droppe if-sætningerne - de er blot en ekstra service til brugeren.
Gem og Send:
Det meste fra Gem og Luk går igen (så det kunne jo laves som en seperat procedure). Men du bliver nødt til at kommunikere med outlook - eller hvilket program du nu bruger. Og det er straks værre - og noget jeg vil lade de rigtige eksperter svare på. Har du overvejet om det nu også ER det du vil - starte et emailprogram op, vedhæfte en fil og sende en mail fra en macro der udføres i Excel?
Jeg tror du skal have fat i Dim obj_Outlook As Outlook.Application - og så vil jeg lade de næste 20-50 linier op til de kloge ;o) (Men er med på en lytter)
Prøv lige denne, den virker desværre ikke på alle maskiner.Private Sub cmdGemogSend() Dim Sti As String, Navn As String Sti = ActiveWorkbook.Path Navn = "Timeregistrering " & Cells(1, 2).Value & Date If Cells(1, 2).Value = "" Then If vbNo = MsgBox("Der er ikke angivet et navn. Vil du gemme filen som " & Navn & "?", vbYesNo) Then MsgBox "Fil ikke gemt" Exit Sub End If End If ActiveWorkbook.SaveAs Filename:=Sti & "\" & Navn ************************************** Application.Dialogs(xlDialogSendMail).Show _ arg1:="navn@domaene.dk", _ arg2:="Her er subjektlinien" ****************************** MsgBox "Fil gemt som " & Navn & " i mappen " & Sti 'Application.Quit End Sub
Doh! - word har jo en funktion der hedder "send til > postmodtager". Veg havde noget helt andet i tankerne - noget med at man skulle starte et mail-program osv. osv. Så er det jo ikke så kompliceret endda ;o) /Martin
If mvarAttachment <> "" Then Set objAttachment = objMessage.Attachments.Add objAttachment.ReadFromFile mvarAttachment objAttachment.Name = "File from me" End If
Denne funktion gemmer og sender aktuelt regneark som vedhæftet fil. Uden errorhandler men på noget færre linier kode. Den forudsætter at navnet står i celle p1, men det kan hurtigt ændres. Modtager navnet skal selvfølgelig også ændres:
Sub GemSend()
navn = Range("p1").Value md = Month(Date)
ActiveWorkbook.SaveAs Filename:= _ "C:\bifmedlem\" & "timeregistrering " & navn & " " & md & ".xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.SendMail Recipients:="bruger@server.dk", Subject:="Dette er en Prøve" ActiveWindow.Close End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.