• 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 - rij overschrijven en daarna mailen

Status
Niet open voor verdere reacties.

BoukjeN

Gebruiker
Lid geworden
5 aug 2016
Berichten
12
Hallo,

Ik heb een kort vraagje. Ik heb een simpel invulformulier gemaakt dan automatisch gemaild wordt naar onze administratie. Alleen bij het testen kom ik erachter dat de data niet altijd correct verzonden wordt, ik denk omdat de opgeslagen data niet goed overschreven wordt? Hoe kan ik mijn VBA code zo inrichten dat altijd de ingevulde data op R2 terecht komt en daarna verzonden? Hieronder mijn code:

Gr. Boukje


Private Sub CommandButton1_Click()

Dim Rij As Integer
Dim wb As Workbook
Dim sht As Worksheet

Set sht = ThisWorkbook.Sheets("Blad1")

Rij = 2

'werkboek.sheet.cells
sht.Cells(Rij, 1) = Me.LBVestiging
sht.Cells(Rij, 2) = Me.TBEigennaam
sht.Cells(Rij, 3) = Me.TBVoornaam
sht.Cells(Rij, 4) = Me.TBachternaam
sht.Cells(Rij, 5) = Me.TBpersoneelsnummer
sht.Cells(Rij, 6) = Me.TBFunctie
sht.Cells(Rij, 7) = Me.TBOpmerking
sht.Cells(Rij, 8) = Me.Aanzegging
sht.Cells(Rij, 9) = Me.Uitdienst
sht.Cells(Rij, 10) = Me.Laatst
sht.Cells(Rij, 11) = Me.Opinitiatiefvan
sht.Cells(Rij, 12) = Me.Redenuitdienst
sht.Cells(Rij, 13) = Me.Vertrekgoedgevoel
sht.Cells(Rij, 14) = Me.TBdatum

For Each vak In Me.Controls

If TypeName(vak) = "TextBox" Or TypeName(vak) = "ComboBox" Then

vak.Value = ("")

End If

Next

With CreateObject("Outlook.Application").createitem(0)
.to = "bnauta@compananny.nl"
.Subject = "PA Formulier - Melding uitdienst"
.attachments.Add ThisWorkbook.FullName
.Send
End With

MsgBox ("Jouw gegevens zijn verzonden naar de Personeelsadministrateur")

End Sub
 
Je schrijft in die code nergens naar R2.
 
Als je het bestand niet eerst opslaat dan wordt natuurlijk de laatste versie verstuurd.

Is zo'n constructie niet wat eenvoudiger?

Code:
Private Sub CommandButton1_Click()
With ThisWorkbook
    .Sheet1.Cells(2, 1).Resize(, 2) = Array(TextBox1, TextBox2)
    .Save
    'en dan pas mailen
End With
End Sub
 
Waar en hoe moet ik dan in mijn code toevoegen dat ik eerst wil opslaan en dan wil verzenden?
 
Dat staat toch in #3? Plaats anders het bestandje even.
 
VBA - opslaan en dan mailen

Bekijk bijlage PA Formulier - Uit dienst.xlsm

Hi VenA,

Bedankt voor de reactie. Zie mijn bestand in de bijlage.
Ik heb nog meer van dit soort formulieren die door heel veel verschillende mensen worden gebruikt. Ik wil heel graag dat ze ingevuld worden - dan de data wordt opgeslagen - en dan gemaild. Wanneer het formulier dan weer wordt gebruikt wordt R2 overschreven en weer opgeslagen - en gemaild etc.

Nu worden soms de oude gegevens gemaild... omdat ik in mijn code niet eerst opsla.. denk ik?

Alvast bedankt voor je hulp!
Gr. Boukje
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan