• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA Fout 1004 bij gebruiken Macro

Status
Niet open voor verdere reacties.

satudiri

Gebruiker
Lid geworden
17 feb 2010
Berichten
8
Hallo,

Na enig knip en plak werk heb ik een VBA code in mijn excel inschrijf formulier gekregen.

In het formulier zit een macro die het bestand als PDF opslaat ( C:\) en daarna verstuurd naar het gewenste e-mila adres.
Ik heb het bestand als xls opgeslagen omdat niet iedereen over 2010 beschikt of het conversie programma geinstalleerd heeft.

Het xls bestand heb ik met FTP geupload naar onze website, open dit bestand en excel vraagt netjes om het op te slaan of te openen, ik kies voor openen want opslaan zit in de macro, het word geopend als een Alleen Lezen bestand en de mogelikheid om te bewerken en Macro inschakelen gaat goed.
Het werkblad is beveiligd met een wachtwoord maar dit zou geen probleem moeten even.

Nu vul ik gegevens in en wil het bestand opslaan en verzenden, ik krijg dan de melding:
Fout 1004 tijdens uitvoering:
Het document is niet opgeslagen. Mogelijk is het document nog geopend of is een fout opgetreden bij het opslaan van het document.

Thuis vanaf mn laptop werkt dit als een trein, heb het nog niet kunnen testen via de website.

Dit is de gele VBA code

Sub OPSLAANenmail()
' Bestand exporteren als PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\" & Range("A2") & " " & Range("D5") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False


Bij voorbaat al mijn dank voor de hulp.

Hendrik
 
Op het eerste gezicht zou ik zeggen dat niet iedereen in C:\ mag schrijven.
Maak daar eens %temp% & "\" van.
Ik kan me alleen niet voorstellen dat dat een fout 1004 oplevert.
Maar niet geschoten is altijd mis.
 
Laatst bewerkt:
satudiri,

Ik heb je macro even hier getest en het werkt uitstekend.
Geen foutmelding.
 
Mijn dank zo ver, ik kan vanavond pas weer bij de site (geen toegan op mn werkt tot FTP client :(

Ik zal C:\ wijzigen in het voor gestelde.

hendrik
 
edmoor,

als ik "C:\" wijzig in %temp% & "\" dan krijg ik een compileerfout.

Het is niet noodzakelijk dat het bestand opgeslagen wordt maar het moet wel middels de macro verstuurd worden als bijlage, welke VBA code heb ik hier voor nodig om het bestand als XLS me te sturen?

Ik kan de optie opslaan wel verwijderen en het path naar het Att maar dan wordt er verstuurd zonder attachment.
 
Die %temp% moet uiteraard wel tussen de " tekens staan.
 
Had ik gedaan:

OPSLAANenmail()
' Bestand exporteren als PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"%temp%\" & "\" & Range("A2") & " " & Range("D5") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Kan zijn dat ik geen admin meer ben op mn werk laptop, ik kan dit nog wel even thuis proberen en post ik dan nog wel even.
 
Helaas ook thuis krijg ik de error, bij foutopsporing wordt het stukje eerder vermeld geel weer gegeven.
 
Stom van mij, dat kan zo ook helemaal niet.
En deze?

Code:
Sub OPSLAANenmail()
' Bestand exporteren als PDF

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    Environ("temp") & "\" & Range("A2") & " " & Range("D5") & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

End Sub
 
Laatst bewerkt:
edmoor, je bent geweldig, hij doet het nu...op mijn laptop in iedergeval, kan volgende week pas testen op een systeem waarvan de user geen schrijfrechten heeft op C.

Tot zover TOP en mijn dank.
 
Ok dan.
Het PDF bestand wordt dan aangemaakt in de temp map van de gebruiker.
Waar nu environ("temp") staat mag je vervangen door iedere map waar de gebruiker schrijfrechten heeft.
 
Heb de gegevensin VBA staan en als ik het form online zet en een collega gaat het testen krijgt i Error 438.

Dit is de code.

Sub OPSLAANenmail()
' Bestand exporteren als PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Environ("temp") & "\" & Range("A2") & " " & Range("D5") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False


' Verzenden via mail.
Err.Number = 0
On Error Resume Next
Set OutApp = GetObject(, "Outlook.Application")
If Err.Number > 0 Then
Set OutApp = CreateObject("Outlook.Application")
Err.Clear
End If
On Error GoTo 0
OutApp.Session.Logon
stbody = "Beste" & " " & Range("C49") & vbNewLine & "" _
& vbNewLine & "Hierbij mijn inschrijf formulier voor het 164 Glassculptuur." _
& vbNewLine & vbNewLine & "" _
& vbNewLine & vbNewLine & "Cordiale saluti," _
& vbNewLine & vbNewLine & Range("E5") _
& vbNewLine & vbNewLine & ""
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = Range("B1")
.CC = ""
.BCC = ""
.Subject = "164 jubileum sculptuur" & " " & Range("D5")
.Body = stbody

.Attachments.Add Environ("temp") & "\" & Range("A2") & " " & Range("D5") & ".pdf"
.Send
End With
Set OutMail = Nothing
Set OutApp = Nothing


' Venster zegt .
MsgBox "Dank je voor je aanmelding, het inschrijf formulier is verstuurd naar Hendrik en Erwin "

End Sub


Wil graag dat de mensen het form openen en dan met verzenden kunnen sturen anders moeten ze het weer als attachment terug mailen.

Als jullie een betere oplossing hebben hou ik me aanbevolen.
Moet wel zeggen dat ik geen VBA wizzkid ben.:)
 
Allen,

Dit topic mag gesloten worden, is nog niet opgelost maar het form wordt al gebruikt met een workarround.

mijn dank voor de genomen moeite.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan