Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Fragen zu meiner todo Liste

Betrifft: Fragen zu meiner todo Liste von: Mulsch0r
Geschrieben am: 27.08.2014 09:42:42

Hallo,

ich habe jetzt verzweifelt gesucht wo ich in meinem alten Thread
auf eine Hilfestellung antworten kann. Ich habe leider nichts gefunden.

von: Michael
Geschrieben am: 26.08.2014 22:31:08

Hi,

die Zeile, auf die geklickt wurde, findest Du in target.row. Laß Dir die mal in einer msgbox  _
ausgeben, damit Du siehst, was zurückgegeben wird.

Anschließend definierst Du in sendmail eine Variable, die Du beim Aufruf 
sendmail(target.row+korrekturwert)
übergibst:
Public Function sendEmail(zeile as long)
dort kannst du die Nr. weiterverarbeiten und auf die betreffende Zeile zugreifen, also etwa so:
sendto = Tabelle2.Range("N" & zeile)

Happy Exceling,

Michael
Hallo Michael ich wollte erst mal Danke sagen für die Antwort.

Ich komme aber irgendwie nicht weiter. Es wärte nett wenn du oder auch gerne jemand anderes sich das noch mal anschauen könnte.

Wie du gesagt hast habe ich eine msgbox eingefügt was dem Verständnis gut tat.
Auch die variablen habe ich so gut ich kann eingefügt. Es wird jetzt aber keine E-mail mehr versendet. Jetzt kommt beim Kompilieren die Meldung " Argument ist nicht optional".

Änderungen von mir habe ich Fett gemacht

Private Sub Worksheet_SelectionChange(ByVal target As Range)

If Not Intersect(target, Tabelle1.Range("M1:M100")) Is Nothing Then

sendEmail 'hier kommt die Fehlermeldung beim Kompilieren


MsgBox target.Row

End If


End Sub

Public Function sendEmail(zeile As Long)
On Error GoTo ende

Dim zeile As Long
zeile = target.Row



esubject = Tabelle1.Range("M1")
sendto = Tabelle1.Range("K" & zeile)
ccto = Tabelle1.Range("L1")
ebody = Tabelle1.Range("M1") & vbCrLf & Tabelle1.Range("M2") & vbCrLf & "Best regards" & vbCrLf & "Björn"
newfilename = "U:\Test.pdf"

Set app = CreateObject("outlook.Application")
Set itm = app.createitem(0)

With itm
.Subject = esubject
.to = sendto
.cc = ccto
.body = ebody
.attachments.Add (newfilename)
.display
.send
End With
Set app = Nothing
Set itm = Nothing

ende:
End Function

  

Betrifft: AW: Fragen zu meiner todo Liste von: Mulsch0r
Geschrieben am: 27.08.2014 09:45:11

oh man es tut mir Riesig leid.

grad nachdem ich den Post gemacht habe habe ich gesehen wie es geht
also das ich alte treads wieder öffne. Ich habe als in "Deine Beiträge" gesucht.

Sooooooooooorrrrrrrrrrrryyyy kommmt nicht mehr vor!!!!!!


  

Betrifft: AW: Fragen zu meiner todo Liste von: fcs
Geschrieben am: 27.08.2014 10:15:20

Hi,

Fortsetzung von hier: https://www.herber.de/forum/messages/1378361.html

Wenn eine Function oder Sub Argumente/Parameter fordert, dann müssen diese in der aufrufenden Zeile angegeben werden.

 sendEmail zeile:=Target.Row 

oder
 sendEmail Target.Row 

oder
 Call  sendEmail(zeile:=Target.Row) 

Die Angabe des Parameter/Argument-Namens ist kein Muss, aber insbesondere bei mehreren oder auch optionalen Werten. Erleichtert es das Verständnis/Pflegen des Codes.

Gruß
Franz


  

Betrifft: AW: Fragen zu meiner todo Liste von: Mulsch0r
Geschrieben am: 27.08.2014 13:03:42

Vielen Dank mit Call sendEmail(zeile:=Target.Row) hat es funktioniert


 

Beiträge aus den Excel-Beispielen zum Thema "Fragen zu meiner todo Liste"