Email naar veranderend adres en veranderende bijlage/ auto klantenlijst

Status
Niet open voor verdere reacties.

Sponzenbroekske

Gebruiker
Lid geworden
11 nov 2007
Berichten
937
EXCELL 2010

Dit heb ik op het forum gevonden voor men eerste vraag
Code:
Sub Offerte_mail()
'
' Offerte_mail
' Offerte versturen per e-mail.
'

'
Set App = CreateObject("Outlook.Application")
Set Itm = App.CreateItem(0)
 
With Itm
    .Subject = Range("S33")
    .To = "xxxx@xxx.xx"
    .CC = "xxxx@xxx.xx"
    .body = "Bijgaand de door gevraagde offerte als pdf bestand." & vbCrLf & vbCrLf
    .Attachments.Add ("N:\Complete dossiers offertes en opdrachten\2008\xxxxxxxxxx.pdf")
    .Send
End With
End sub

Maar nu is het de bedoeling dat het de mail verstuurd naar een adres in een bepaalde cell van het actieve werkblad.
Dit blad wordt dan opgeslagen in PDF en die PDF moet in bijlage worden gezet. Maar bovenstaande code stuurt steeds dezelfde bijlage als ik me niet vergis.

Voor de tweede vraag heb ik niets gevonden.
ik wil namelijk uit een keuzelijst een klant kiezen (opgeslagen klantenlijst in een ander tabblad), die dan automatisch in de voorbestemde cellen wordt ingevuld, MAAR als de klant nog niet bestaat wil ik die zelf in die voorbestemde cellen invullen en vervolgens in de eerstevolgende lege regel van de klantenlijst opslaan (met een druk op een knop ofzo).

Dank bij voorbaat
 
Laatst bewerkt:
Je kan al eens beginnen met een voorbeeldbestandje te plaatsen zodat we je gericht kunnen helpen.
Het opzoeken en weergeven of opslaan van gegevens is al ontelbare keren behandeld op het Excel-forum, dus door de zoekfunctie te gebruiken zal je meer dan waarschijnlijk je oplossing vinden.
 
Je kan al eens beginnen met een voorbeeldbestandje te plaatsen zodat we je gericht kunnen helpen.
Het opzoeken en weergeven of opslaan van gegevens is al ontelbare keren behandeld op het Excel-forum, dus door de zoekfunctie te gebruiken zal je meer dan waarschijnlijk je oplossing vinden.

Voor die klantenlijst zal ik straks eens verder zoeken en mss terug hulp vragen.

Maar voor die mail op te stellen moet ik toch verwijzen naar bovenstaande code die perfect werkt voor vaste bestemmelingen en vaste bijlage, maar hoe kan ik er nu voor zorgen dat ik een knop heb in het actieve werkblad dat er voor zorgt dat de xxxx@xxx.xx wordt vervangen door bijvoorbeeld cel A1. En dat de bijlage automatisch een PDF is van het actieve werkblad (al dan niet na het opslaan).
 
Ik heb dus een formulier dat opent mee met het bestandje. op de eerste tab(factuur) staat een keuzelijst. Hier zou het de bedoeling zijn dat je een klant kan kiezen(sheet: klanten) en dat die daaronder dan wordt ingevuld. Mocht hij niet bestaan dan vul je hem handmatig in. Dit zou voor elke tab zo moeten zijn (staan nog geen keuzelijsten), behalve de twee laatste.
De laatste tab van het formulier staat momenteel 1 knop 'nieuwe klant invoegen' Deze opent een nieuw formulier.
Nu zou de klant in het sheet 'klanten' moeten worden ingevuld, maar natuurlijk telkens op de eerst volgende lege regel.

Het zou ook tof zijn mochten dubbele records maken niet mogelijk zijn, maar dat is niet noodzakelijk, misschien eerst de basis zien te begrijpen.

ty
 
Laatst bewerkt:
Bovenstaand bestandje ben ik dus in bezig

laatste tabblad van het userform kan ik gegevens invoeren en wegschrijven naar een lijst. maar hoe kan ik het in de lijst wegschrijven naar de volgende LEGE lijn?

en hoe kan ik op al andere tabbladen een naam uit de combobox (die aan de lijst is gelinkt) selecteren en automatisch laten invullen in de onderstaande textboxen?
 
Laatst bewerkt:
Zet deze in de Formuliermodule van FOOBMa om de textboxen te vullen.
Code:
Private Sub UserForm_Initialize()
Dim sq As Variant
    With Sheets("Klanten")
        sq = .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1)
    End With
    ComboBox1.List = sq
End Sub

Private Sub ComboBox1_Change()
With Sheets("Klanten")
    fRow = .Columns(1).Find(ComboBox1, , xlValues, xlWhole).Row
    Me.NaamF = .Cells(fRow, 1)
    Me.StraatF = .Cells(fRow, 2)
    Me.TelF = .Cells(fRow, 4)
    Me.GemF = .Cells(fRow, 3)
End With
End Sub

En deze in Klantenbestand voor het invoegen van een naam
Code:
Private Sub Invoegen_Click()
   sq = NaamKB.Text & "|" & StraatKB.Text & "|" & GemKB.Text & "|" & TelKB.Text & "|" & MailKB.Text & "|" & BTWKB.Text
   With Sheets("Klanten").Cells(Rows.Count, 1).End(xlUp).Offset(1)
    .Resize(, 6) = Split(sq, "|")
    .Cells(1, 1).CurrentRegion.Offset(1, 0).Resize(.Cells(1, 1).CurrentRegion.Rows.Count - 1).Sort .Cells(1, 1)
  End With
End Sub
 
Laatst bewerkt:
Heeft goed gewerkt!
Ik moest het een beetje aanpassen, maar dat was omdat men userform inmiddels ook al wat was veranderd.


Ty!


Kan ik nu nog voorkomen dat ik dubbele records aanmaak. Dat bijvb de naam 'geert janssens' maar 1 keer voor kan komen in de klantenlijst? (de gemeentes en dergelijke mogen uiteraard wel meerdere malen voorkomen :)




Voor dat mailen kom ik in de loop van de week nog wel is terug :)
 
Laatst bewerkt:
Code:
Private Sub InvoerenKB_Click()
    With Sheets("Klanten")
        For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            NM = NM & .Cells(i, 1).Value & "|"
        Next
    End With
   sq = WorksheetFunction.Proper(NaamKB.Text) & "|" & StraatKB.Text & "|" & GemKB.Text & "|" & TelKB.Text & "|" & MailKB.Text & "|" & BTWKB.Text
   If InStr(1, NM, NaamKB) >= 1 Then MsgBox "dubbele naam": Exit Sub
   With Sheets("Klanten").Cells(Rows.Count, 1).End(xlUp).Offset(1)
    .Resize(, 6) = Split(sq, "|")
    .Cells(1, 1).CurrentRegion.Offset(1, 0).Resize(.Cells(1, 1).CurrentRegion.Rows.Count - 1).Sort .Cells(1, 1)
  End With
End Sub
 
Ziet er al redelijk goed uit, maar

[OPGELOST]als de naam "Yannick Schoors" erin staat, dan geeft hij de melding dat de naam al bestaat als ik "Schoors" of als ik "Yannick" ingeef.

:)

Al wel een enorme hulp gehad WB :)

[andere vraag] Nu heb ik mijn klantenlijst gesplits van mijn factuur (en dit omdat die factuur een Template is en dan wordt de klantenlijst telkens onnodig opgeslagen in een factuur.)
Dit werkt redelijk goed. Als ik dus de factuur open, kan ik direct een klant via de combobox aanduiden en dan komt die op de correcte plaats te staan.

MAAR als ik eerst een andere naam ingeef in het textvak en op "klant invoegen" klik, dan werkt de combobox niet meer. Dan kan ik dus niet meer een naam via de combobox uit de klantenlijst selecteren.

Is dit omdat de workbook "klanten" niet meer het active.windows is?
En hoe kan ik dit oplossen?
 
Laatst bewerkt:
Dit is wel echt overkill aan't worden. De enige functionaliteit van je userform is het invullen van klantgegevens in je diverse tabbladen. Je hebt ook je layout al meerdere malen gewijzigd. Door nu je klantenbestand ook af te splitsen kloppen al je macro's niet meer en moet alles herschreven worden.
Het invullen van klantgegevens los je toch simpel op door op elk tabblad bij klantnaam een CB te plaatsen, een naam te selecteren en de rest te laten invullen met een Vert.Zoeken formule of een macro.
Het opslaan kan je met 1 macro(met de nodige aanpassingen) opvangen zodat je geen 6X dezelfde macro moet herhalen.
Zet er op elk tabblad nog enkele knoppen bij voor het opslaan en afdrukken (zet de eigenschap PrintObject op False zodat deze niet mee afgedrukt worden) en je bent klaar.
 
ahzo, had ik nog niet aan gedacht om die textbox van "naam" naar een CB te veranderen. Voor die macro of vert.zoeken zal ik eens browsen hier. dan kom ik er wel. Maar kan ik dan nog zelf een naam in de CB invullen (als hij nog niet in het klantenbestand staat)

opslaan via 1 macro is dan voor de snelheid van het programma te garanderen neem ik aan, want ik weet niet hoe ik aan 6 knoppen op veschillende tabbladen 1 macro moet linken.

Mss dat ik de klantenlijst in het template zet, en gwn handmatig invoer in het sheet, dat bespaart me nu veel moeite en jou ook xD, dan moet ik het maar regelmatig aanvullen.

Deze vraag is al opgelost dan.

Nu de mail, in men eerste post staat een goede code, hier opt forum gevonden.
Maar dat staat dan achter een knop, met telkens hetzelfde mailadres en dezelfde bijlage. Kan ik ervoor zorgen dat dat naar het mailadres wordt verzonden dat in een bepaalde cel staat, laten we zeggen 'J9' en dat er telkens het actieve workbook in bijlage komt maar in PDF (+ een andere bijlage, maar dit is wel steeds dezelfde.
 
Even de oplossingen voor de volgende die er achter zoeken
ik ben afgestapt van het aparte klantenbestand.
Ik heb gwn een knop toegevoegd die opslaat als een template met de juiste naam.

voor de mails:

Code:
Set App = CreateObject("Outlook.Application")
Set Itm = App.CreateItem(0)
 
With Itm
    .Subject = Range("I1")
  [B]  .To = Range("J9")[/B]
    .BCC = "yannick.schoors@gmail.com"
    .body = "Geachte, in de bijlage kunt u de factuur vinden voor de uitgevoerde werken." & vbCrLf & vbCrLf
   [B] .Attachments.Add Range("K3").Text[/B]
    .Attachments.Add ("\\BENEDEN\Mijn documenten\Siersmederij Schoors\Facturen\Verzonden via internet\ALGEMENE VERKOOPSVOORWAARDEN.pdf")
    .Send
End With

in cel K3 van dat werkblad heb ik dan de formule ingevuld:="\\BENEDEN\Mijn documenten\Siersmederij Schoors\Facturen\Verzonden via internet\" & J7& "_" & C6&".pdf"


Warm bakkertje nog is bedankt voor de hulp met de CB's
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan