Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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
Inhaltsverzeichnis

Var. aus Procedur in Tabellenprocedur übertragen

Var. aus Procedur in Tabellenprocedur übertragen
24.04.2018 17:03:36
Ecki
Liebe Spezialisten, folgendes Problem:
Ich lese mittels Prozedur einige Zellen aus und gehe dann zu einem anderen Tabellenblatt:

Sub CommandButton1_Click()
Dim Pat_Name_GebDat As String
Dim Hauptdiagnose As String
Dim Fall_Nr As String
'Variablen füllen:
Pat_Name_GebDat = ActiveCell.Value
Hauptdiagnose = ActiveCell.Offset(0, 5).Value
Fall_Nr = "FID: " & ActiveCell.Offset(0, 3).Value
Unload UserForm8
Sheets("Handchirurgie").Activate 'geht zum Handchirurgieblatt
End Sub

- SO, jetzt gehe ich zu einem anderen Tabellenblatt (Handchirurgieblatt) Dort würde ich gerne mit den Variablen Pat_Name_GebDat, Hauptdiagnose und Fall_Nr weiterarbeiten.
Der Tabellenblattcode geht:

Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim E_Mail_Handchirurg As String
Set changeRange = Target
'If Not Application.Intersect(changeRange, Target) Is Nothing Then
If Target.Interior.Color = RGB(0, 255, 128) Then
Target.Interior.Color = RGB(255, 0, 0)
If Target.Value = "V. Köhler" Then
E_Mail_Handchirurg = "mail@Beispielspital; mail@Beispielspital"
End If
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.To = E_Mail_Handchirurg
.Subject = Pat_Name_GebDat
.Body = Hauptdiagnose & Fall_Nr
.Display
'Oder direkt senden
'.Send
End With
Leider werden meine Variablen (Pat_Name_GebDat, Hauptdiagnose, Fall_Nr) im Tabellenblatt " _
Handchirurgie" nicht gefüllt. Was mache ich da falsch?
Wäre sehr froh, wenn mir jemand helfen könnte.


		

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Public
24.04.2018 17:11:57
Hajo_Zi
Nicht Dim sondern Public gleich nach Option Explicit.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Var. aus Procedur in Tabellenprocedur übertragen
24.04.2018 17:16:54
onur
Du musst die Variablen in einem MODUL (ggf hinzufügen) als PUBLIC deklarieren, wenn du in anderen Prozeduren damit arbeiten willst und ihr Wert erhalten bleiben soll (bis du die Datei schliesst oder ein END-Befehl im Code auftaucht).
Übrigens:
If Not Application.Intersect(changeRange, Target) Is Nothing Then
ist IMMER true, da sie eine Zeile zuvor mit
Set changeRange = Target

gleichgesetzt wurden.
Anzeige
AW: Var. aus Procedur in Tabellenprocedur übertragen
25.04.2018 09:06:29
Ecki
Vielen Dank für die beiden Antworten. Offenbar bin ich aber nicht in der Lage, Eure Ratschläge fruchtbringend einzusetzen:
Habe jetzt folgendes geschrieben:
Option Explicit
Public Pat_Name_GebDat As String
Public Hauptdiagnose As String
Public Fall_Nr As String
Sub CommandButton1_Click()
Pat_Name_GebDat = ActiveCell.Value
Hauptdiagnose = ActiveCell.Offset(0, 5).Value
Fall_Nr = "FID: " & ActiveCell.Offset(0, 3).Value
Unload UserForm8
Sheets("Handchirurgie").Activate
End Sub
Nun öffnet sich das Handchirurgie-Blatt, wo ich die Variablen verwenden möchte:
Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 'Range bei dem eine Änderung etwas  _
bewirken soll
Dim E_Mail_Handchirurg As String
Set changeRange = Target
If Target.Interior.Color = RGB(0, 255, 128) Then 'grün, d.h. Termin ist frei
Target.Interior.Color = RGB(255, 0, 0) 'mache Termin rot
If Target.Value = "Handchirurg" Then
E_Mail_Handchirurg = "handchirurg@klinik.org" 'sorry fiktiver Name
End If
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.To = E_Mail_Handchirurg
.Subject = Pat_Name_GebDat
.Display
End With
Leider füllt es die E-Mail-Betreff-Zeile nicht. Die Variable wird zu späteren Zeiten mit  _
anderen Werten gefüllt, daher kann ich whs. kein Modul machen, oder?
LG Ecki

Anzeige
AW: Var. aus Procedur in Tabellenprocedur übertragen
25.04.2018 09:38:45
onur
Weisst du überhaupt, was ein modul ist?
AW: Var. aus Procedur in Tabellenprocedur...
25.04.2018 14:51:26
Ecki
Hallo Robert, hallo onur
Ganz offenbar wusste ich bislang nicht, was ein Modul ist - sorry ich bin absoluter Autodidakt :-/
Habe es gerade ausprobiert und es funktioniert einwandfrei (komisch)
Ganz lieben Dank Euch beiden
LG von Ecki
AW: Var. aus Procedur in Tabellenprocedur übertragen
25.04.2018 09:41:31
Robert
Hallo Ecki,
wo hast Du denn den Teil
Option Explicit
Public Pat_Name_GebDat As String
Public Hauptdiagnose As String
Public Fall_Nr As String

eingegeben? Ich vermute mal, in dem Formular-Modul. Die Deklaration von allgemein gültigen Variablen kann aber nicht in einem Formular-Modul und auch nicht in einem Tabellen-Modul sondern muss in einem allgemeinen Modul erfolgen, also in einem Modul, das mit "Einfügen" - "Modul" eingefügt wird und standardmäßig Modul1, Modul2 usw. heißt.
Gruß
Robert
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige