Met CheckBox aangevinkt, de tekst uitvoeren uit een Cell

Status
Niet open voor verdere reacties.

markwat

Gebruiker
Lid geworden
11 mrt 2011
Berichten
301
Als CheckBox5 aangevinkt staat, de tekst uitvoeren van Cell P41 ( BV C:\Afbeeldingen\zonsondergang3.jpg) en deze in mail zetten.
Dit heb ik nu maar is niet goed blijkbaar....

Code:
If CheckBox5.Value = True Then .Attachments.Add Sheets("InvoerSheet").Range("P41").Value
 
Plaats je volledige mail routine, niet maar 1 regeltje. Vertel er ook bij wat er niet goed gaat. Krijg je een foutmelding, laat deze dan ook weten.
 
Het is een subroutine met parameters. Waar vandaan wordt deze aangeroepen?
Tevens staat er in G21 geen waarde die een @ bevat en daar controleer je wel op.
Haal ook die overbodige On Error Resume next weg en plaats de .Display opdracht net voor de End If en niet direct na de If.
 
Laatst bewerkt:
Beste Edmoor,

De .Display is een offerte die wordt geopend en deze moet ter controle eigenlijk zo blijven staan.
Alles werkt perfect alleen wil ik nog een regel erbij hebben maar dat is met een CheckBox en een tekst die géén hyperlink is maar enkel tekst, en deze wisselt ook van naam, deze wil ik dan wanneer de CheckBox True is, dit dus opzoekt en als jpg in de mail opslaat.
De voorgaande regels zijn vaste bestanden en worden direct van uit een map gehaald. deze doen het ook perfect.
Dus de cell inhoud wisselt maar moet dus wanneer hij aangevinkt is opgezocht worden en in de mail worden geladen.
 
Checkbox5 bestaat niet.

Code:
Sub VenA()
For Each sh In Sheets("InvoerSheet").Shapes
  MsgBox sh.Name
Next
End Sub

Code:
If Sheets("InvoerSheet").CheckBox1 Then
 
Alles werk alleen de laatste regel met de CheckBox deze heeft ( BV C:\Afbeeldingen\zonsondergang3.jpg) als tekst, dit moet dan een zoekopdracht worden naar het bestand en laden in de mail.
Ik heb uw codes uitgeprobeerd maar ik begrijp ze niet waar ik deze dan nu moet plaatsen.

Code:
Sub MailMetPDFBijlage(BestandsNaam As String, FolderLocatie As String, Sheetnaam As String)
Dim Aanhef As String, Inhoud As String

Aanhef = "Beste " & Sheets("Invoersheet").Range("G17").Value & ", "
Inhoud = "<br>" & "<br>" & "Hierbij de " & Sheetnaam & "."

If InStr(Sheets("InvoerSheet").Range("G21").Value, "@") > 0 Then 'er moet een @ staan
    Dim OutApp As Object
    Dim OutMail As Object

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

    On Error Resume Next
    With OutMail
        .Display
        .To = Sheets("InvoerSheet").Range("G21").Value
        .Subject = Sheets("InvoerSheet").Range("P14").Value
        .HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Aanhef & Inhoud & .HTMLBody
        .Attachments.Add FolderLocatie & "\" & BestandsNaam & ".PDF" 'dit is de locatie van het bestand dat toegevoegd word
       If Sheets("InvoerSheet").Range("F29").Value = True Then .Attachments.Add "C:\Dropbox\documenten\Algemene voorwaarden 1.PDF" 'dit gaat helemaal goed
       If Sheets("InvoerSheet").Range("F30").Value = True Then .Attachments.Add "C:\Dropbox\documenten\Algemene voorwaarden 2.PDF" 'dit gaat helemaal goed
       If Sheets("InvoerSheet").Range("F31").Value = True Then .Attachments.Add "C:\Dropbox\documenten\Algemene voorwaarden 3.PDF" 'dit gaat helemaal goed
       If CheckBox1.Value = True Then .Attachments.Add Sheets("InvoerSheet").Range("P41").Value 'er gebeurd niets
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End If
End Sub
 
Beste Edmoor,
De .Display is een offerte die wordt geopend en deze moet ter controle eigenlijk zo blijven staan.

Die .Display is voor het tonen van de email.
Dat kan je het beste pas doen als de email gereed is.
Ook heb je nog steeds die on error resume next er in staan waardoor je niks ziet als er iets mis gaat.
 
Zoals al gezegd moet je de On Error Resume Next euit halen dan zie je waar het fout gaat. Kijk ook nog eens goed naar de 2e code in #6. Je het het iig niet zo toegepast.

Om code te debuggen kan je bv gebruik maken van een MsgBox


Code:
Sub Markwat()
MsgBox CheckBox1.Value
End Sub
 
Laatst bewerkt:
De melding is misschien wat verwarrend maar je geeft niet aan wat er moet gebeuren als CheckBox1 waar is.
 
beste VenA,
Het klopt ook dat er niets achter staat, maar daar gaat het om hoe moet ik dat formuleren; als CheckBox waar is dat de tekst in de Cell gezocht wordt, en in de mail erbij gezet.
ik had .Display onderaan gezet maar dan komt de Email niet naar voren en geeft aan;
.Display, blauw en als fout ongeldige of niet-gekwalificeerde verwijzing.
maar als ik deze weer terug werkt het prima.
 
Beste VenA,

Klopt U hebt niet gevraagd over .Display,
Dat laten we rusten.
Sorry de fout zit in het laatste gedeelte, dit klopt ook niet, maar weet niet hoe ik de opdracht kan geven om bv c:\Bestand\vuurtoren1.jpg ( wat dus in Cell P41 staat, op te zoeken en in de mail er bij te zetten.
 
ik had .Display onderaan gezet maar dan komt de Email niet naar voren en geeft aan;
.Display, blauw en als fout ongeldige of niet-gekwalificeerde verwijzing.
maar als ik deze weer terug werkt het prima.

Dan zet je hem toch echt niet op de goede plek.
Maar goed, het zit de werking verder niet in de weg. Het is alleen wat slordig.

Misschien ook mijn fout.
Hij moet niet net voor de End If staan maar net voor de End With.
Slip of the finger ;)
 
Laatst bewerkt:
Geeft bij mij exact dezelfde niet benoemde foutmelding!

Debuggen wil je blijkbaar niet zelf iets opzoeken schijnt ook nogal een probleem te zijn dus wat je met VBA moet? Mij lijkt C:\Afbeeldingen\ een nogal onnozele locatie. Op de C-schijf zet je het besturingssysteem en de programma's die je veel gebruikt.

Code:
Sub geenideewatikaanhetdoenben()
  If Len(Dir("C:\Afbeeldingen\zonsondergang3.jpg")) = 0 Then MsgBox "Ik heb geen idee wat ik aan het doen ben"
End Sub
 
Beste VenA en Edmoor,

De fout zat in het Excel bestand zelf.
Nu ik de tweede regel hebt gemaakt is deze gewoon helemaal goed...
Sorry dat ik jullie van tijd hebt geroofd..
ik zal mijn leven beteren en voortaan beter opletten.
de vraag gaat op opgelost.
Bedankt!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan