Anzeige
Archiv - Navigation
1344to1348
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

Variablen übergeben

Variablen übergeben
27.01.2014 21:25:15
Oliver
Hallo liebe Gemeinde,
ich komme hier irgendwie nicht weiter.
Ich möchte in einer Tabelle ein Textfeld ansprechen. Diesem Textfeld habe ich einen eindeutigen Namen gegeben, der sich an den Tabellennamen orientiert.
Da ich in der Mappe mehrere gleichartige Tabellen mit jeweils einem Textfeld habe, möchte ich den Aufruf so variabel wie möglich halten.
Hier mein Sub:

Public Sub Druckansicht()
Dim oShape As Shape
Set oShape = Worksheets(Druckseite).Shapes(Textfeldname)
Call BlattSchutzAufheben
If oShape.TextFrame.Characters.Text = "" Then
Call Bemerkungen_übergeben
End If
End Sub

Für den Namen des Worksheets und den Namen des Shapes habe ich jeweils eine Function erstellt.

Public Function Textfeldname()
Dim t As String
t = ActiveSheet.Name
t = "T" & Mid(t, 2)
End Function
Public Function Druckseite()
Dim p As String
p = ActiveSheet.Name
p = "P" & Mid(p, 2)
End Function

Der Aufruf aus der Sub, der beiden Funktionen läuft einwandfrei und auch die richten Werte werden erzeugt.
In der Zeile:
Set oShape = Worksheets(Druckseite).Shapes(Textfeldname)
bricht die Procedur dann ab mit "Index außerhalb des gültigen Bereichs"
Bitte eine kleine Hilfe.
Abendlicher Gruß Oliver

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variablen übergeben
27.01.2014 21:27:08
Hajo_Zi
die Variable Druckseite ist nicht definiert.

AW: Variablen übergeben
27.01.2014 21:33:27
Oliver
Hallo HaJo,
danke für deine schnelle Antwort.
Ich steh hier wirklich auf dem Schlauch.
Wo defeniere ich am besten die Variable in der Sub oder in der Funktion?
Gruß Oliver

AW: Variablen übergeben
27.01.2014 21:35:54
Hajo_Zi
Hallo Oliver,
es reicht in der Sub, falls Du sie nicht noch woanders benutzt.
Falls Du sie nur in der Sub benutzt und nur an einer Stelle, ist die Frage warum Variable?
Gruß Hajo

Anzeige
AW: Variablen übergeben
27.01.2014 21:39:14
Oliver
Nochmals Hallo,
danke für deine Hilfe. Ich werde mal ein bisschen probieren.
Melde mich dann noch mal.
Einen schönen Abend dir
Gruß Oliver

etwas geändert
28.01.2014 02:43:15
Erich
Hi Oliver,
deine beiden Funktionen tun nicht, was du eigentlich möchtest. Wenn Textfeldname() einen Wert liefern soll,
muss der Wert dem Funktionsnamen zugewiesen werden.
Du weist den Wert aber nur einer Variablen t zu, die außerhalb der Fkt. unbekannt ist.
Analog wird "Druckseite" nie mit einem Wert belegt, nur eine Variable p.
Hast du nicht einfach mal die Fkt. getestet, z. B. mit

Sub Test()
MsgBox Textfeldname()
MsgBox Druckseite()
End Sub
Hajo, deine Bemerkung "die Variable Druckseite ist nicht definiert" passt nicht.
"Druckseite" ist hier eine Funktion.
In der folgenden Prozedur wird überprüft, ob der Text im Textfeld "TyBlatt" auf dem Tabellenblatt "PyBlatt"
leer ist - wenn der Name des aktiven Blatts "myBlatt" (oder auch z. B. "XyBlatt") ist.
Die Mappe hat also 2 Blätter: myBlatt und PyBlatt, und auf PyBlatt muss es das Textfeld TyBlatt geben.
(Wenn das aktive Blatt schon PyBlatt heißt, braucht es nur dieses 1 Blatt zu geben.)

Option Explicit
Sub Druckansicht()
Dim oShape As Shape
Set oShape = Worksheets(Druckseite).Shapes(Textfeldname)
' oder mit mehr Klammern, die die Funktionen verdeutlichen:
Set oShape = Worksheets(Druckseite()).Shapes(Textfeldname())
Call BlattSchutzAufheben
If oShape.TextFrame.Characters.Text = "" Then Call Bemerkungen_übergeben
End Sub
Public Function Textfeldname()
Textfeldname = "T" & Mid(ActiveSheet.Name, 2)
End Function
Public Function Druckseite()
Druckseite = "P" & Mid(ActiveSheet.Name, 2)
End Function
Sub BlattSchutzAufheben()
End Sub
Sub Bemerkungen_übergeben()
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige