Ik heb inderdaad al een pm gekregen met een dergelijke uitleg, bedanktquote:Op maandag 25 januari 2010 13:27 schreef Deetch het volgende:
[..]
heel goed hoor.
Als je wilt weten waarom DaFan een natte voeg krijgt van de sumproduct functie check dan deze tutorials, dan snap je de kracht van deze functie.
http://www.exceluser.com/explore/sumproduct_11.htm
http://www.lqnet.com/Excel/sumproduct.aspx
http://www.meadinkent.co.uk/xlsumproduct.htm
Er is een SMTP server. Ik wil ook dat de mail automatisch verzonden wordt, zonder dat de gebruiker iets hoeft te doen met Outlook.quote:Op dinsdag 26 januari 2010 12:38 schreef DaFan het volgende:
Heb je een SMTP server of wil je gewoon output in een nieuwe mail in Outlook?
1 2 3 4 5 6 | b = " Applicatie " & Range("B1").Value & " werkt niet goed." c = " Het probleem is volgens mijn knopje " & Range("C1").Value & "." BodyEmail = a & b & c Range("D1").Value = BodyEmail |
Even op mijn persoonlijke situatie gespitst:quote:Op dinsdag 26 januari 2010 13:13 schreef DaFan het volgende:
Je kan toch gewoon een string samenstellen in VBA door waarden uit de cellen? En die dus als body eraan hangen.
bv A1 = naam
B1 = applicatienaam
C1 = knopnaam
[code verwijderd ]
En dan die string dus in de Body zetten?
deze oplossing had ik ook al gevonden op internet maar die werkt dus niet..helaasquote:Op dinsdag 26 januari 2010 14:46 schreef DaFan het volgende:
"tab1" is je eerste sheet.
"tab52" is je laatste sheet
=SOM(Tab1:Tab52!A1)
telt alle waardes uit A1 uit alle cellen bij elkaar op.
klopt, je was in je eerste antwoord de accentjes vergetenquote:Op dinsdag 26 januari 2010 16:19 schreef DaFan het volgende:
'WK1:WK02'!U49
Kan niet anders dan werken
Facepalm.quote:Op dinsdag 26 januari 2010 16:49 schreef Deetch het volgende:
[..]
klopt, je was in je eerste antwoord de accentjes vergeten
quote:
Kan bovenstaande met een Outlooktaak? Daar las ik iets over gisterenquote:Op dinsdag 26 januari 2010 15:20 schreef sanger het volgende:
[..]
Even op mijn persoonlijke situatie gespitst:
Wij willen per persoon een mail sturen met bepaalde gegevens. Die mail gaat naar een (per persoon) uniek e-mailadres (telefoonnummer@gatewayprovider.nl).
In die mail wil ik gegevens vanuit een Excelbestand weergeven tussen de tekst (excelvelden zijn dikgedrukt weergegeven).
Bv:
Beste werknemer,
Vandaag is het salaris voor week A2 uitbetaald. Dit moet dus spoedig op je bankrekening staan.
Wij hebben op basis van de door ons ontvangen urenstaten B2 uren verwerkt. Het netto uitbetaalde bedrag is C2.
Met vriendelijke groet,
Bedrijfsnaam
Ik heb het nu op een iets andere manier aangepast. Nu wordt op een apart werkblad de mail aangemaakt. Op dit werkblad staat de ontvanger in cel C3, het onderwerp in cel C4, en de body van de mail staat in cellen B11:L44.quote:Op dinsdag 26 januari 2010 13:13 schreef DaFan het volgende:
Je kan toch gewoon een string samenstellen in VBA door waarden uit de cellen? En die dus als body eraan hangen.
bv A1 = naam
B1 = applicatienaam
C1 = knopnaam
[ code verwijderd ]
En dan die string dus in de Body zetten?
Ik heb nu hetvolgende script gebruikt (van de site van Ron de Bruin). De gegevens voor de mail staan op Blad2, genaamd "Email"quote:Op woensdag 27 januari 2010 10:50 schreef actuarisje het volgende:
[..]
Ik heb het nu op een iets andere manier aangepast. Nu wordt op een apart werkblad de mail aangemaakt. Op dit werkblad staat de ontvanger in cel C3, het onderwerp in cel C4, en de body van de mail staat in cellen B11:L44.
Volgens mij moet het wel mogelijk zijn om die range (B11:L44) in het script als body voor de mail mee te geven. Daar ga ik nog even mee puzzelen...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | ' Don't forget to copy the function RangetoHTML in the module. ' Working in Office 2000-2007 Dim rng As Range Dim OutApp As Object Dim OutMail As Object Set rng = Nothing On Error Resume Next 'Only the visible cells in the selection 'Set rng = Selection.SpecialCells(xlCellTypeVisible) 'You can also use a range if you want Set rng = Sheets("Email").Range("B11:L44").SpecialCells(xlCellTypeVisible) On Error GoTo 0 If rng Is Nothing Then MsgBox "The selection is not a range or the sheet is protected" & _ vbNewLine & "please correct and try again.", vbOKOnly Exit Sub End If With Application .EnableEvents = False .ScreenUpdating = False End With Set OutApp = CreateObject("Outlook.Application") OutApp.Session.Logon Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail .To = Sheets("Email").Range("C3").Value .CC = "" .BCC = "" .Subject = Sheets("Email").Range("C4").Value .HTMLBody = RangetoHTML(rng) .Send 'or use .Display End With On Error GoTo 0 With Application .EnableEvents = True .ScreenUpdating = True End With Set OutMail = Nothing Set OutApp = Nothing End Sub Function RangetoHTML(rng As Range) ' Changed by Ron de Bruin 28-Oct-2006 ' Working in Office 2000-2007 Dim fso As Object Dim ts As Object Dim TempFile As String Dim TempWB As Workbook TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm" 'Copy the range and create a new workbook to past the data in rng.Copy Set TempWB = Workbooks.Add(1) With TempWB.Sheets(1) .Cells(1).PasteSpecial Paste:=8 .Cells(1).PasteSpecial xlPasteValues, , False, False .Cells(1).PasteSpecial xlPasteFormats, , False, False .Cells(1).Select Application.CutCopyMode = False On Error Resume Next .DrawingObjects.Visible = True .DrawingObjects.Delete On Error GoTo 0 End With 'Publish the sheet to a htm file With TempWB.PublishObjects.Add( _ SourceType:=xlSourceRange, _ Filename:=TempFile, _ Sheet:=TempWB.Sheets(1).Name, _ Source:=TempWB.Sheets(1).UsedRange.Address, _ HtmlType:=xlHtmlStatic) .Publish (True) End With 'Read all data from the htm file into RangetoHTML Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2) RangetoHTML = ts.ReadAll ts.Close RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _ "align=left x:publishsource=") 'Close TempWB TempWB.Close savechanges:=False 'Delete the htm file we used in this function Kill TempFile Set ts = Nothing Set fso = Nothing Set TempWB = Nothing End Function |
Ik heb dit even laten testen door een vriendin die wel beschikking had tot Outlook en het werkt op deze manierquote:Op woensdag 27 januari 2010 11:22 schreef actuarisje het volgende:
[..]
Ik heb nu hetvolgende script gebruikt (van de site van Ron de Bruin). De gegevens voor de mail staan op Blad2, genaamd "Email"
[ code verwijderd ]
Kan iemand zo op het eerste gezicht zien of dit zou moeten kunnen werken? Ik heb namelijk op de PC waar ik nu zit GEEN Outlook staan, dus bij het runnen van de macro krijg ik de foutmelding dat er een object niet aangemaakt kan worden. Het loop bij mij mis op regel 27, waarschijnlijk omdat ik geen Outlook heb...
Jup idd, maar dat doetie hier niet, krijg je onder die 1 en de 11 weer 1 ... >.<quote:Op woensdag 27 januari 2010 20:19 schreef MrBadGuy het volgende:
Twee rijen maken:
1-2
11-12
En dan doortrekken naar rechts t/m 10 en dan naar beneden t/m 300. Of bedoel je dat niet?
Ik heb Excel 2007 en daar doet ie het wel gewoon, geen idee hoe het zit met andere versies.quote:Op woensdag 27 januari 2010 20:21 schreef tokko1 het volgende:
[..]
Jup idd, maar dat doetie hier niet, krijg je onder die 1 en de 11 weer 1 ... >.<
Heey, 't werkt nu wel.. deed blijkbaar iets verkeerds!quote:Op woensdag 27 januari 2010 20:24 schreef MrBadGuy het volgende:
[..]
Ik heb Excel 2007 en daar doet ie het wel gewoon, geen idee hoe het zit met andere versies.
Andere mogelijke oplossing: Cel A1 is 1, cel A2 is 2, etc. Dan in cel B1 invullen '=A1+10' en die cel vervolgens doortrekken naar rechts en vervolgens weer naar beneden.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |