Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Einem Makro Zeilen zuweisen

Einem Makro Zeilen zuweisen
04.09.2007 15:20:27
Sven
Guten Tag Allerseits :-)
Dies ist meine erste Frage in diesem, für mich außerordentlich wertvollem Forum:
Ich möchte folgendes Makro in der Spalte M von M2 bis M403 einfügen.
Welche Möglichkeit gibt es, das Makro so zu formulieren, dass ich nicht für 403 Zeilen 403 Makros erzeugen muss? Gibt es eine Kopiermöglichkeit, so wie beim Kopieren einzelner Zellinhalte? Da werden ja auch Zuweisungen auf die Zeilennummer, in welcher "man" sich befindet, erzeugt.
Hier mein Makro:
die Zellen A2,C2,usw werden durch einen Klick auf die Sachltfläche M2 "Email" als Text in meine Mail aufgenommen.
Wenn ich nun in Feld M 35 auf "Email" klicke, werden die Daten eben auch aus den Feldern A2,C2 usw gezogen und nicht aus A35,C35 usw.
Wer kann mir bitte weiter helfen?

Sub Email()
Dim ol, Mail As Object
Dim OutApp As Object, i
Dim Nachricht
Set ol = CreateObject("Outlook.Application")
Dim ClpObj As Object
For i = 1 To 1
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
Set Mail = ol.CreateItem(0)
Mail.Subject = " Besuchsbestätigung " & Now
Mail.To = "test@irgendwo.de"
Mail.cc = ""
Mail.bcc = ""
Mail.Body = "Sehr geehrte Frau Mustermann, sehr geehrter Herr Mustermann," & Chr(13) & _
Chr(13) & _
"die Filiale" & Chr(13) & Chr(13) & _
Worksheets("Tabelle1").Range("A2").Value & _
Chr(13) & _
Worksheets("Tabelle1").Range("C2").Value & _
Chr(13) & _
Worksheets("Tabelle1").Range("D2").Value & " " & Worksheets("Tabelle1").Range("E2").Value & _
Chr(13) & Chr(13) & _
"wurde von ADM " & Worksheets("Tabelle1").Range("K2").Value & _
Chr(13) & Chr(13) & _
"am " & Worksheets("Tabelle1").Range("L2").Value & _
Chr(13) & Chr(13) & Worksheets("Tabelle1").Range("M2").Value & _
Chr(13) & Chr(13) & _
"Mit freundlichem Gruß" & Chr(13) & "der Verfasser" & Chr(13) & Chr(13) & _
"Diese Mail wurde nach Eingang und Prüfung des Besuchsberichtes versandt."
SendKeys "%S"
Mail.Send
Set olApp = Nothing
Next i
End Sub


Vielen Dank!
Nette Grüße
Sven

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einem Makro Zeilen zuweisen
04.09.2007 15:29:00
Rudi
Hallo,
hast du etwa 400 Schaltflächen in deinem Sheet?
Wie wird Email() aufgerufen?
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Einem Makro Zeilen zuweisen
04.09.2007 15:33:00
Sven
Hallo Rudi,
ob Du es glaubst, oder nicht, ja. 403 genau.
Da ich mich mit Excel und überhaupt erst seit einer Woche beschäftige und mehr herumprobiere und rate, als strategisch vorzugehen, ist das nicht ausgeblieben.
Gibt es da denn auch noch eine Vereinfachung?
Gruß Sven
"Wenn eine Katze im Fischgeschäft Junge bekommt, sind´s auch keine Heringe!"

AW: Einem Makro Zeilen zuweisen
04.09.2007 15:42:35
Rudi
Hallo,
du brauchst nur einen Button. DDie Daten werden aus der aktiven Zeile gholt:

Sub Email()
Dim ol, Mail As Object, lngZeile As Long
Dim OutApp As Object, i
Dim Nachricht
Set ol = CreateObject("Outlook.Application")
Dim ClpObj As Object
lngZeile = ActiveCell.Row
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
Set Mail = ol.CreateItem(0)
Mail.Subject = " Besuchsbestätigung " & Now
Mail.To = "test@irgendwo.de"
Mail.cc = ""
Mail.bcc = ""
With Worksheets("Tabelle1")
Mail.Body = "Sehr geehrte Frau Mustermann, sehr geehrter Herr Mustermann," & Chr(13) & _
Chr(13) & _
"die Filiale" & Chr(13) & Chr(13) & _
.Cells(lngZeile, 1).Value & _
Chr(13) & _
.Cells(lngZeile, 3).Value & _
Chr(13) & _
.Cells(lngZeile, 4).Value & " " & .Cells(lngZeile, 5).Value & _
Chr(13) & Chr(13) & _
"wurde von ADM " & .Cells(lngZeile, 11).Value & _
Chr(13) & Chr(13) & _
"am " & .Cells(lngZeile, 12).Value & _
Chr(13) & Chr(13) & .Cells(lngZeile, 13).Value & _
Chr(13) & Chr(13) & _
"Mit freundlichem Gruß" & Chr(13) & "der Verfasser" & Chr(13) & Chr(13) & _
"Diese Mail wurde nach Eingang und Prüfung des Besuchsberichtes versandt."
End With
SendKeys "%S"
Mail.Send
Set ol = Nothing
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Einem Makro Zeilen zuweisen
04.09.2007 15:33:00
Chaos
Servus Sven,
du hast überall .Range("A2") oder ("D2"), u.s.w. stehen, deswegen bezieht sich das Makro darauf. Wenn du jetzt aus zeile 35 Werte willst, müsste dort .Range("A35") stehen.
du kannst folgendes machen, oben dies einfügen:
Dim zeile as Long
zeile = ActiveCell.row
und dann schreiben
.Range("A" & zeile), u.s.w. dann musst du nur die Zeile bzw. eine Zelle in dieser Zeile anklicken, aus der du die Werte haben möchtest und das Makro dann ausführen.
Gruß
Chaos

AW: Einem Makro Zeilen zuweisen
04.09.2007 15:36:44
Sven
Hallo Chaos,
danke für Deine Antwort.
Begriffen habe ich es nicht ganz... Soll dann in Etwa so aussehen?
Dim zeile as Long
zeile = ActiveCell.row

Sub Email()
Dim ol, Mail As Object
Dim OutApp As Object, i
Dim Nachricht
Set ol = CreateObject("Outlook.Application")
Dim ClpObj As Object
For i = 1 To 1
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
Set Mail = ol.CreateItem(0)
Mail.Subject = " Besuchsbestätigung " & Now
Mail.To = "test@irgendwo.de"
Mail.cc = ""
Mail.bcc = ""
Mail.Body = "Sehr geehrte Frau Mustermann, sehr geehrter Herr Mustermann," & Chr(13) & _
Chr(13) & _
"die Filiale" & Chr(13) & Chr(13) & _
Worksheets("Tabelle1").Range("A2").Value & _
Chr(13) & _
Worksheets("Tabelle1").Range("C2").Value & _
Chr(13) & _
Worksheets("Tabelle1").Range("D2").Value & " " & Worksheets("Tabelle1").Range("E2").Value & _
Chr(13) & Chr(13) & _
"wurde von ADM " & Worksheets("Tabelle1").Range("K2").Value & _
Chr(13) & Chr(13) & _
"am " & Worksheets("Tabelle1").Range("L2").Value & _
Chr(13) & Chr(13) & Worksheets("Tabelle1").Range("M2").Value & _
Chr(13) & Chr(13) & _
"Mit freundlichem Gruß" & Chr(13) & "der Verfasser" & Chr(13) & Chr(13) & _
"Diese Mail wurde nach Eingang und Prüfung des Besuchsberichtes versandt."
SendKeys "%S"
Mail.Send
Set olApp = Nothing
Next i
End Sub


Wo kommt dann "der Rest" hin?
Ich bin, was Excel angeht echt als total unbedarft zu bezeichnen, sorry.....
Nette Grüße Sven
Wer in der Wüste geboren ist, ist auch kein Kamel... :-)

Anzeige
AW: Einem Makro Zeilen zuweisen
04.09.2007 15:44:00
Chaos
Servus,
so:

Sub Email()
Dim zeile As Long
zeile = ActiveCell.Row
Dim ol, Mail As Object
Dim OutApp As Object, i
Dim Nachricht
Set ol = CreateObject("Outlook.Application")
Dim ClpObj As Object
For i = 1 To 1
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
Set Mail = ol.CreateItem(0)
Mail.Subject = " Besuchsbestätigung " & Now
Mail.To = "test@irgendwo.de"
Mail.cc = ""
Mail.bcc = ""
Mail.Body = "Sehr geehrte Frau Mustermann, sehr geehrter Herr Mustermann," & Chr(13) & _
Chr(13) & _
"die Filiale" & Chr(13) & Chr(13) & _
Worksheets("Tabelle1").Range("A" & zeile).Value & _
Chr(13) & _
Worksheets("Tabelle1").Range("C" & zeile).Value & _
Chr(13) & _
Worksheets("Tabelle1").Range("D" & zeile).Value & " " & Worksheets("Tabelle1").Range("E" &  _
zeile).Value & _
Chr(13) & Chr(13) & _
"wurde von ADM " & Worksheets("Tabelle1").Range("K" & zeile).Value & _
Chr(13) & Chr(13) & _
"am " & Worksheets("Tabelle1").Range("L" & zeile).Value & _
Chr(13) & Chr(13) & Worksheets("Tabelle1").Range("M" & zeile).Value & _
Chr(13) & Chr(13) & _
"Mit freundlichem Gruß" & Chr(13) & "der Verfasser" & Chr(13) & Chr(13) & _
"Diese Mail wurde nach Eingang und Prüfung des Besuchsberichtes versandt."
SendKeys "%S"
Mail.Send
Set olApp = Nothing
Next i
End Sub


Das makro auf "eine " (!!!) Schaltfläche legen. Zelle in der Zeile anklicken, die die Werte liefert und das Makro ausführen.
Gruß
Chaos

Anzeige
AW: Einem Makro Zeilen zuweisen
04.09.2007 16:35:00
Sven
Hallo Chaos :-)
es hat etwas gedauert, aber dann habe ich begriffen, was Du meinst! Dankeschön, es hat geklappt!
Sobald ich in der betreffenden Zeile etwas editiert habe, ändert sich die Farbe des "Email-Feldes" und beim Versand werden ausschließlich die Daten der betreffenden Zeile gezogen1
Danke nochmal!
Nette Grüße Sven

AW: Einem Makro Zeilen zuweisen
04.09.2007 16:35:00
Sven
Hallo Chaos :-)
es hat etwas gedauert, aber dann habe ich begriffen, was Du meinst! Dankeschön, es hat geklappt!
Sobald ich in der betreffenden Zeile etwas editiert habe, ändert sich die Farbe des "Email-Feldes" und beim Versand werden ausschließlich die Daten der betreffenden Zeile gezogen1
Danke nochmal!
Nette Grüße Sven

Anzeige
AW: Einem Makro Zeilen zuweisen
04.09.2007 15:40:22
Florian
Hallo Sven,
wenn ich Dich richtig verstanden habe, hast Du 403 Buttons in Deiner Tabelle, oder?
Sofern die Buttons sauber der jeweiligen Zeile zugeordnet sind (sprich sich die obere linke Ecke jedes Buttons innerhalb der betreffenden Zeile befindet), dann weise jedem Button das Makro EMail zu.
Das Makro EMail mußt Du dann dahingehend ändern, daß der Zeilenbezug variabel wird.
Variablendeklaration:
Dim Aktuelle_Reihe as Integer
Aktuelle_Reihe = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row 'liefert die Zeilennummer des angeklickten Button
Worksheets("Tabelle1").Range("A" & Aktuelle_Zeile).Value & _
usw. für die Spalte B bis M
Ich habe das jetzt mal aus'm Stegreif verfasst. Ich hoffe es funktioniert so wie ich es mir (und v.a. Du Dir) vorgestellt habe/hast...
Ciao Flo

Anzeige
AW: Einem Makro Zeilen zuweisen
04.09.2007 16:39:00
Sven
Hallo Flo,
Dankeschön für Deinen Tipp!
Ich werde das auch ausprobieren. Eben habe ich den Tipp von Chaos getestet und das funktioniert.
Vielen Dank für Eure Hilfe!
Ich werte meine Frage als beantwortet und möchte meine Frage nunmehr als geschlossen betrachtet sehen.
Nette Grüße Sven

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige