Worksheet (-name) als Übergabe- Parameter?

Hallo Leute,

ich bin noch blutiger Anfänger was VBA betrifft.
Ich habe eine Funktion geschrieben die bestimmte Zeilen aus einem Tabellenblatt löscht, so weit so gut. Ich möchte jedoch das Tabellenblatt als Parameter übergeben, so dass die Prozedur flexibel ist!
und aufrufen sollte mit: Call Leeren(„Knoten“) funktionieren (Wobei „Knoten“ der Name des Worksheets ist)!? Ich bekomme jedoch immer die Fehlermeldung Type unverträglich! Wer kann mir helfen? Danke schon mal im Voraus!

Grüezi Basti

Ich habe eine Funktion geschrieben die bestimmte Zeilen aus
einem Tabellenblatt löscht, so weit so gut. Ich möchte jedoch
das Tabellenblatt als Parameter übergeben, so dass die
Prozedur flexibel ist!
und aufrufen sollte mit: Call Leeren(„Knoten“) funktionieren
(Wobei „Knoten“ der Name des Worksheets ist)!? Ich bekomme
jedoch immer die Fehlermeldung Type unverträglich! Wer kann
mir helfen?

Möchtest Du einen Funktonscode, der vollständig deinen Bedürfnissen entspricht?

Dann solltest Du diese exakt schildern und vor allem auch die Bereiche nennen in denen gesucht/gelöscht werden soll.

Oder möchtest Du Unterstützung um deinen Code anzupasen?

Dann solltest Du diesen hier in den Beitrag stellen, denn ohne diesen fällt uns das doch sehr schwer… :wink:

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Okay,

danke erstmal für die Antwort.

Hier mein Code:

Sub KnotenGlätten()
Dim z As Long, lZ As Long
lZ = Worksheets("Knoten").Cells(65536, 2).End(xlUp).Row
For z = lZ To 1 Step -1
 If Worksheets("Knoten").Cells(z, 2) = "" Then Worksheets("Knoten").Rows(z).Delete
 Next
End Sub

Die Prozedur bezieht sich so wie sie jetzt ist ja nur auf das Tabellenblatt „Knoten“. Ich brauche es aber etwas universeller. So dass ich die Prozedur Mittels: Call KnotenGlätten(„Name des Tabellenblattes“) aufrufen kann. Ich will also der Prozedur ein Tabellenblatt übergeben und es in diesem arbeiten lassen.

Ich hoffe ich konnte etwas Licht ins Dunkle bringen!?

Grüße Basti

Grüezi Basti

Hier mein Code:

Sub KnotenGlätten()
Dim z As Long, lZ As Long
lZ = Worksheets(„Knoten“).Cells(65536, 2).End(xlUp).Row
For z = lZ To 1 Step -1
If Worksheets(„Knoten“).Cells(z, 2) = „“ Then
Worksheets(„Knoten“).Rows(z).Delete
Next
End Sub

Die Prozedur bezieht sich so wie sie jetzt ist ja nur auf das
Tabellenblatt „Knoten“. Ich brauche es aber etwas
universeller. So dass ich die Prozedur Mittels: Call
KnotenGlätten(„Name des Tabellenblattes“) aufrufen kann. Ich
will also der Prozedur ein Tabellenblatt übergeben und es in
diesem arbeiten lassen.

Ich hoffe ich konnte etwas Licht ins Dunkle bringen!?

Aber ja doch - versuche es mal mit dem folgenden Code:

Sub KnotenGlätten(strWS\_Name As String)
 With Worksheets(strWS\_Name)
 If WorksheetFunction.CountBlank(.Range("B:B")) \> 0 Then
 .Range("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
 End If
 End With
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Super, hat geklappt…

Danke vielmals für die schnelle Hilfe!!!