Ik kom stukje bij beetje verder met mijn Excel bestand/Sjabloon. Ik heb inmiddels al verschillende knopjes met stukjes VBA code weten te produceren, onder ander een knop waarmee ik eerst een "opslaan als" dialoog box openen, waarna vervolgens het bestand verzenden wordt naar een vats opgegeven e-mail adres.
Nu loop ik nog tegen een paar probleempjes aan:
1. Wanneer ik op Annuleren druk in het dialoog box "opslaan als" wordt het bestand als nog verzonden dit is niet de bedoeling het bestand moet eerst opgeslagen worden voordat het verzonden mag worden.
2. Wanneer Outlook niet open staat verschijnt er, op het moment dat het bestand verzonde moet worden, een scherm waarin ik een Exchange profiel moet kiezen. Kan dit ook voorkomen worden?
edit: Oke, ik heb nu het een en ander aan code weten te combineren. Als ik nu op de knop verzenden klik krijg ik eerste een dialoog box met de vraag of het bestand is opgeslagen ja of nee. Kies ik voor ja dan wordt het bestand netjes verzonden naar het opgegeven e-mail adres.
Kies ik voor nee, dan wordt het dialoof venster "opslaan als" geopend, zodat er een naam voor het bestand opgegeven kan worden en de locatie waar het bestand op te slaan. Wanneer ik op opslaan klik wordt wederom de code uitgevoerd om het bestand te verzenden.
Maar nu, wanneer ik in het dialoog venster "opslaan als" op annuleren klik, dan wordt het bestand als nog verzonden onder een verkeerde naam. Dit is niet zo erg, maar het betreft een sjabloon en ik wil niet dat het wordt verzonden als sjabloon.
De code die ik nu heb:
Private Sub CommandButton1_Click()
Dim Msg, Style, Title, Help, Response, MyString
Msg = "Heeft u de bestelling opgeslagen, voor het verzenden?"
Style = vbYesNo + vbQuestion + vbDefaultButton1
Title = "Opslaan voor het verzenden"
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
file_name = ThisWorkbook.Name
Workbooks(file_name).HasRoutingSlip = True
With Workbooks(file_name).RoutingSlip
.Recipients = ("mail@mailadres.nl")
.Subject = Blad2.Cells(3, 5).Value
.Message = Blad2.Cells(2, 5).Value
End With
Workbooks(file_name).Route
MsgBox ("De bestelling is verstuurd en zal worden verwerkt.")
Else
On Error Resume Next
Application.Dialogs(xlDialogSaveAs).Show
file_name = ThisWorkbook.Name
Workbooks(file_name).HasRoutingSlip = True
With Workbooks(file_name).RoutingSlip
.Recipients = ("mail@mailadres.nl")
.Subject = Blad2.Cells(3, 5).Value
.Message = Blad2.Cells(2, 5).Value
End With
Workbooks(file_name).Route
MsgBox ("De bestelling is verstuurd en zal worden verwerkt.")
End
End If
End Sub
Nu loop ik nog tegen een paar probleempjes aan:
1. Wanneer ik op Annuleren druk in het dialoog box "opslaan als" wordt het bestand als nog verzonden dit is niet de bedoeling het bestand moet eerst opgeslagen worden voordat het verzonden mag worden.
2. Wanneer Outlook niet open staat verschijnt er, op het moment dat het bestand verzonde moet worden, een scherm waarin ik een Exchange profiel moet kiezen. Kan dit ook voorkomen worden?
edit: Oke, ik heb nu het een en ander aan code weten te combineren. Als ik nu op de knop verzenden klik krijg ik eerste een dialoog box met de vraag of het bestand is opgeslagen ja of nee. Kies ik voor ja dan wordt het bestand netjes verzonden naar het opgegeven e-mail adres.
Kies ik voor nee, dan wordt het dialoof venster "opslaan als" geopend, zodat er een naam voor het bestand opgegeven kan worden en de locatie waar het bestand op te slaan. Wanneer ik op opslaan klik wordt wederom de code uitgevoerd om het bestand te verzenden.
Maar nu, wanneer ik in het dialoog venster "opslaan als" op annuleren klik, dan wordt het bestand als nog verzonden onder een verkeerde naam. Dit is niet zo erg, maar het betreft een sjabloon en ik wil niet dat het wordt verzonden als sjabloon.
De code die ik nu heb:
Private Sub CommandButton1_Click()
Dim Msg, Style, Title, Help, Response, MyString
Msg = "Heeft u de bestelling opgeslagen, voor het verzenden?"
Style = vbYesNo + vbQuestion + vbDefaultButton1
Title = "Opslaan voor het verzenden"
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
file_name = ThisWorkbook.Name
Workbooks(file_name).HasRoutingSlip = True
With Workbooks(file_name).RoutingSlip
.Recipients = ("mail@mailadres.nl")
.Subject = Blad2.Cells(3, 5).Value
.Message = Blad2.Cells(2, 5).Value
End With
Workbooks(file_name).Route
MsgBox ("De bestelling is verstuurd en zal worden verwerkt.")
Else
On Error Resume Next
Application.Dialogs(xlDialogSaveAs).Show
file_name = ThisWorkbook.Name
Workbooks(file_name).HasRoutingSlip = True
With Workbooks(file_name).RoutingSlip
.Recipients = ("mail@mailadres.nl")
.Subject = Blad2.Cells(3, 5).Value
.Message = Blad2.Cells(2, 5).Value
End With
Workbooks(file_name).Route
MsgBox ("De bestelling is verstuurd en zal worden verwerkt.")
End
End If
End Sub
[ Voor 84% gewijzigd door _Dune_ op 03-01-2006 16:00 ]
Sinds 1999@Tweakers | Bij IT-ers gaat alles automatisch, maar niets vanzelf. | https://www.go-euc.com/