Ik wil het active word document wat net is ingevuld verzenden, maar heb een probleem

Status
Niet open voor verdere reacties.

rkootje

Gebruiker
Lid geworden
24 okt 2011
Berichten
61
Ik heb een formulier gemaakt in word, als ik deze invul heb ik onder aan het formulier een cmb welke het ingevulde formulier moet verzenden.
echter wordt de laatste opgeslagen formulier opgestuurd.
wat doe ik fout, of moet ik aanpassen?
kan iemand mij hiermee helpen?

Gr. Rkootje

Code:
Private Sub CommandButton1_Click()
' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, Outlook 2010.

    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
        If TextBox1 = "" Then
        MsgBox "vul eigen naam in svp"
        Me.TextBox1.Activate
        
    ElseIf txtDatum = "" Then
        MsgBox "vul Datum in svp"
        Me.txtDatum.Activate
        
    ElseIf txtonderwerp = "" Then
        MsgBox "Vul onderwerp in svp"
        Me.txtonderwerp.Activate
        
    ElseIf txtadres = "" Then
        MsgBox "vul adres in svp"
        Me.txtadres.Activate
        
    ElseIf TextBox2 = "" Then
        MsgBox "vul aanvullende gegevens in svp"
        Me.TextBox2.Activate
        
        Else
        

    On Error Resume Next
   ' Change the mail address and subject in the macro before you run it.
    With OutMail
        .To = "rkootje@test.nl"
        .CC = ""
        .BCC = ""
        .Subject = Me.txtadres
        .Body = "Aanvraag woondiensten"
        .Attachments.Add ActiveDocument.FullName
        ' You can add other files by uncommenting the following line.
        '.Attachments.Add ("C:\test.txt")
        ' In place of the following statement, you can use ".Display" to
        ' display the mail.
        .Send
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
    

        
  End If
    
    
    
    
    
    
End Sub
 
Laatst bewerkt:
Visual Basic is iets anders dan VBA, verplaatst.
 
Je verstuurt het ActiveDocument, en dat is neem ik aan ook degene waarin je de velden laat vullen.... Wat wil je dan versturen?
 
Hallo OctaFish

dat is precies mijn punt,
ik heb een worddocument opgeslagen, als ik deze open, vul ik de nodige gegevens in de daarvoor bestemde txt velden.
druk ik daarna op de knop verzenden en sluit het document af zonder op te slaan, om een leeg formulier als default te houden.
als ik document open in outlook, zie ik dat de velden die ik heb ingevuld voor verzending, leeg zijn. bij subject veld bij outlook staat wel het adres wat ik had ingevuld.
maar in het geopende document is deze leeg.
als ik document eerst opsla en dan verzend gaat het wel goed, maar dat is eigenlijk niet de bedoeling. ik hoop dat je snapt wat ik bedoel.

gr. Rkootje
 
Het actieve document bestaat nog niet; je stuurt hem mee als attachment, en dat moet dan een fysiek bestand zijn. Heb je nog niks opgeslagen, dan valt er niks mee te sturen. Dus met jouw opzet zit er niks anders op dan het document eerst te bewaren.
Je kunt in dat geval misschien beter een formulier maken, waarin je alles laat invullen. Klik je dan op Verzenden, dan lees je de velden uit het formulier, en zet je die in de body tekst van de mail. Dan heb je geen bijlage meer nodig, want de tekst wordt dan dus in de body gezet.
 
Hoi OctaFish,

Oké duidelijk, maar als dan in de macro komt te staan dat die voor verzending het document in een temp op slaat die iedereen heeft of een temp wordt aangemaakt?
aangezien er meedere mensen op verschillende plekken dit formulier gaan versturen.
het formulier heeft diverse velden radiobuttons voor diverse keuzes en notitie velden.
als je dan niet het totale form. kan versturen krijg je veel antwoorden zonder vraagstelling, wat onduidelijkheden geeft.
 
Laatst bewerkt:
Een temp bestandje is natuurlijk prima; hier een voorbeeldje dat ik zelf gebruik in Excel. Kun je denk ik wel aanpassen naar Word.

Code:
    TempFilePath = Environ$("temp") & "\" 'Save the new workbook/Mail it/Delete it
    With OutMail
        .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum, ConflictResolution:=xlLocalSessionChanges
    End With
    Kill TempFilePath & TempFileName & FileExtStr
    Set OutMail = Nothing
 
Hoi Octafish

Ik ben een tijdje aan het knoeien geweest, maar het lukt me niet, hij blijft melding geven dat dit niet voor word is, kun jij of iemand anders mij hierin helpen?

in ieder geval, bedankt voor de moeite!

Gr. Rkootje
 
wie kan dit excel voorbeeld omzetten voor word

Hallo,
wie kan me met het onderstaande helpen, het lukt nog niet om het werkend te krijgen.
 
Wat is het probleem precies? Post anders ook de code erbij die je nu hebt, dat kijkt een stuk makkelijker.
 
Alvast een voorschotje:
Code:
     TempFileName="Temp.doc"
     TempFilePath = Environ$("temp") & "\" 'Save the new workbook/Mail it/Delete it
     With OutMail
          .SaveAs TempFilePath & FileName:=TempFileName, FileFormat:=wdFormatDocument
     End With
     Kill TempFilePath & TempFileName & FileExtStr
     Set OutMail = Nothing
 
hierbij de code.

Hoi Octafish,

hieronder de code, ik wil dus feitelijk het document wat er is ingevuld versturen zonder eerst op te slaan, zodat je altijd een leeg document moet invullen.
vandaar het idee om eerst een temp te maken van het document.
alvast bedankt!

Code:
Private Sub CommandButton1_Click()
' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, Outlook 2010.
' This example sends the last saved version of the Activeworkbook object .
    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
   ' Change the mail address and subject in the macro before you run it.
    With OutMail
        .To = "r.vankooten@domined.nl"
        .CC = ""
        .BCC = ""
        .Subject = Me.txtadres
        .Body = "Aanvraag woondiensten"
        .Attachments.Add ActiveDocument.FullName
        ' You can add other files by uncommenting the following line.
        '.Attachments.Add ("C:\test.txt")
        ' In place of the following statement, you can use ".Display" to
        ' display the mail.
        .Send
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
    
    If TextBox1 = "" Then
        MsgBox "vul eigen naam in svp"
    End If
    
End Sub
 
Getest, en werkt.


Code:
Sub Mailen()
Dim TempFileName As String
Dim TempFilePath As String
Dim OutApp As Object
Dim OutMail As Object
    
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
''    OutApp.Visible = True
    Set OutMail = OutApp.CreateItem(0)

    TempFileName = "Temp.doc"
    TempFilePath = Environ$("temp") & "\"
    'Save the new workbook/Mail it/Delete it
    ActiveDocument.SaveAs FileName:=TempFilePath & TempFileName, FileFormat:=wdFormatDocument
    With OutMail
        .To = "r.vankooten@domined.nl"
        .CC = ""
        .BCC = ""
        .Subject = Me.txtAdres
        .Body = "Aanvraag woondiensten"
        .Attachments.Add TempFilePath & TempFileName
        ' In place of the following statement, you can use ".Display" to display the mail.
        .Send
    End With
    ActiveDocument.Close
    Kill TempFilePath & TempFileName
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan