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… 
Mit freundlichen Grüssen
Thomas Ramel
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
Super, hat geklappt…
Danke vielmals für die schnelle Hilfe!!!