Hoppa till innehåll

Sida 1 av 1
  • Du kan inte starta en ny tråd
  • Du kan inte svara i tråden

Makro_ spara ner fil och skicka

#1

  • Användare
  • PipPip
  • Grupp: Medlemmar
  • Inlägg: 12
  • Gick med: 2011-02-15

Skrivet 21 mar 2012, 10:29

Hej
Jag är ny på makro och jag vill ha hjälp med att få till det första; att makrot ska spara ner filen med namnet som finns i mitt fil kolumn V rad 87samt spara ner den under rätt folder på nätverket. Kan ni hjälpa mig för det fungerar inte, den sparar inte ner den rätt.

Tack på förhand/ Helena


Public Sub test()
ThisFile = Range("V87").Value
ActiveWorkbook.SaveAs Filename:="N:\SE_Shared\Affarsutveckling\Master Data\Cust Master\KUNDUPPGIFTER\kundnummer"
ThisFile

Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String


If ActiveWorkbook.Path <> "" Then
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

strbody = "<font size=""3"" face=""Calibri"">" & _
"Hej!<br><br>" & _
"Ny kunduppgift, vänligen fyll i data och skicka vidare inom ledtid! :<br><B>" & _
ActiveWorkbook.Name & "</B> is created.<br>" & _
"klicka på länken : " & _
"<A HREF=""file://" & ActiveWorkbook.FullName & _
""">Klicka på länk</A>" & _
"<br><br>Hälsningar," & _
"<br><br>NPD ansvarig</font>"


On Error Resume Next
With OutMail
.To = "helena.frejd@carlsberg.se"
.CC = ""
.BCC = ""
.Subject = Range("A78" Or "F31")

.HTMLBody = strbody
.Send
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
Else
MsgBox "The ActiveWorkbook does not have a path, Save the file first."


End If

End Sub
0

#2
Medlem är utloggad   Monshi 

  • Beroende
  • Ikon
  • Grupp: Moderatorer
  • Inlägg: 23 561
  • Gick med: 2001-06-24
  • Ort:Enebyberg

Skrivet 21 mar 2012, 10:37

Du menar kanske att skriva
ActiveWorkbook.SaveAs Filename:="N:\SE_Shared\Affarsutveckling\Master Data\Cust Master\KUNDUPPGIFTER\kundnummer" & ThisFile

?
om då filnamnet/del av namnet finns i variabeln ThisFile.

Ett litet tips:
Öppna VBA editorn, klicka menyn Verktyg - > Inställningar
Bocka för att variabler måste deklareras.
Ger att alla i alla framtida moduler/böcker du skapar kommer
Option Explicit
skrivas in och du blir tvungen att deklarera allt.
0

#3

  • Användare
  • PipPip
  • Grupp: Medlemmar
  • Inlägg: 12
  • Gick med: 2011-02-15

Skrivet 22 mar 2012, 08:32

Hej
Jag får inte till detta ändå, "Compile error" expected expression

nedan rad blir rödmarkerad:
ActiveWorkbook.SaveAs Filename:= "N:\SE_Shared\Affarsutveckling\Master Data\Cust Master\KUNDUPPGIFTER\ "&

hela koden som jag har i makrot:

Public Sub test()

Dim sFile As String
sFile = Range("v87").xls
ActiveWorkbook.SaveAs Filename:= "N:\SE_Shared\Affarsutveckling\Master Data\Cust Master\KUNDUPPGIFTER\ "&
sFile


Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String


If ActiveWorkbook.Path <> "" Then
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

strbody = "<font size=""3"" face=""Calibri"">" & _
"Hej!<br><br>" & _
"Ny kunduppgift, vänligen fyll i er funktions fält och skicka vidare inom ledtid! :<br><B>" & _
ActiveWorkbook.Name & "</B> is created.<br>" & _
"klicka på länken : " & _
"<A HREF=""file://" & ActiveWorkbook.FullName & _
""">Klicka på länk</A>" & _
"<br><br>Hälsningar," & _
"<br><br>NPD ansvarig</font>"


On Error Resume Next
With OutMail
.To = "helena.frejd@carlsberg.se"
.CC = ""
.BCC = ""
.Subject = Range("v87")

.HTMLBody = strbody
.Send
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
Else
MsgBox "The ActiveWorkbook does not have a path, Save the file first."


End If

End Sub





0

#4
Medlem är utloggad   Monshi 

  • Beroende
  • Ikon
  • Grupp: Moderatorer
  • Inlägg: 23 561
  • Gick med: 2001-06-24
  • Ort:Enebyberg

Skrivet 22 mar 2012, 09:03

kan problemet vara så enkelt att du har en radbrytning där som inte ska vara där?

Test att skriv
Dim fName As String
fName = "N:\SE_Shared\Affarsutveckling\Master Data\Cust Master\KUNDUPPGIFTER\" & Range("v87") &".xls"

Ha, nu såg jag.
&-tecknet klistrar ihop strängar. Du hämtar ett värde från Range("V87") och använder det som del i filnamnet.

En detalj, du bör även ange vilket blad du hämtar värdet ifrån, exempelvis genom att skriva
Blad1.Range("V87")
eller än hellre namnge cellen men det kanske är överkurs.

Samt ActiveWorkbook? Ofta bättre att använda ThisWorkbook.
0
Sida 1 av 1
  • Du kan inte starta en ny tråd
  • Du kan inte svara i tråden

1 besökare läser just nu den här tråden, varav 0 medlem(mar) och 1 gäst(er)
 
 
Senast obesvarade trådar
Prenumerera på nyheter

Missa inte våra nya
smarta nyhetsbrev

Läs mer om nyhetsbreven här!
Beställ direkt:


Extreme
PC för Alla-nätverket