Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zur 1. belegten Zelle der Spalte K

Forumthread: Zur 1. belegten Zelle der Spalte K

Zur 1. belegten Zelle der Spalte K
walli
Guten Abend,
ich möchte zur 1. belegten Zelle der Spalte K und möchte dann
von der Spalte A bis Spalte M den Bereich selektieren und löschen.
mfg walli
Anzeige
AW: Zur 1. belegten Zelle der Spalte K
22.03.2010 19:47:19
Reinhard
Hallo Walli,
in K ist nur K12:K20 und K35:K45 belegt.
Welchen bereich willst du selektieren?
Löschen heißt Zellwerte löschen oder Zeilen löschen?
Gruß
Reinhard
AW: Zur 1. belegten Zelle der Spalte K
22.03.2010 19:54:42
walli
Hallo Reinhard,
entschuldige, hatte vergessen.
Meine Tabelle geht von A6 bis M...
Wenn in der Spalte K die 1. belegte Zelle die K120 ist,
dann soll von A120 bis M ende gelöscht werden.
Das Ende wird durch die Spalte A bestimmt.
Hatte mal aufgezeichnet:
' Selection.deLete Shift:=xlUp
mfg walli
Anzeige
AW: Zur 1. belegten Zelle der Spalte K
22.03.2010 20:05:36
Reinhard
Hallo Walli,
Sub loesch()
Dim ZeiA As Long, ZeiK As Long
ZeiK = Cells(Rows.Count, 11).End(xlUp).Row
ZeiA = Cells(Rows.Count, 1).End(xlUp).Row
If ZeiK > 6 And ZeiA >= ZeiK+1  Then
Range(Cells(ZeiK + 1, 1), Cells(ZeiA, 13)).ClearContents
Next ZeiK
End Sub

Gruß
Reinhard
Anzeige
Next ohne For - If ohne End If ?! oT
22.03.2010 20:11:14
Matthias
AW: Next ohne For - If ohne End If ?! oT
22.03.2010 20:19:04
Reinhard
Hallo Matthias,
hast Recht, hab gepennt.

Sub loesch()
Dim ZeiA As Long, ZeiK As Long
ZeiK = Cells(Rows.Count, 11).End(xlUp).Row
ZeiA = Cells(Rows.Count, 1).End(xlUp).Row
If ZeiK > 6 And ZeiA >= ZeiK+1  Then
Range(Cells(ZeiK + 1, 1), Cells(ZeiA, 13)).ClearContents
End If
End Sub

Gruß
Reinhard
Anzeige
Nei leider nicht
22.03.2010 20:24:21
walli
Hallo Reinhard,
habe mal selektieren wollen:
Dim ZeiA As Long, ZeiK As Long
ZeiK = Cells(Rows.Count, 11).End(xlUp).Row
ZeiA = Cells(Rows.Count, 1).End(xlUp).Row
If ZeiK > 6 And ZeiA >= ZeiK + 1 Then
Range(Cells(ZeiK + 1, 1), Cells(ZeiA, 13)).Select ' ClearContents
End If
leider ohne Erfolg.
mfg walli
Anzeige
AW: Nei leider nicht
22.03.2010 20:53:01
Reinhard
Hallo Walli,
mein Code funktioniert. Lade mal eine Beispielmappe hoch wo er nicht funktioniert.
Gruß
Reinhard
AW: Zur 1. belegten Zelle der Spalte K
22.03.2010 20:19:04
walli
Hallo Reihard,
bleibt hier stehen:Next ZeiK
Meldung Next ohn For
mfg walli
mein Beitrag korrigiert ...
22.03.2010 20:26:04
Matthias
Hallo
Sub Schleife()
Dim c As Range, Zeile As Long
For Each c In Range("K:K")
If c.Value  "" Then Zeile = c.Row: Exit For
Next
If Zeile > 0 Then Range("A" & Zeile & ":M" & Zeile).ClearContents
End Sub
Gruß Matthias
Anzeige
Es wird nur Zeile 5 selectiert
22.03.2010 20:31:36
walli
Hallo Matthias,
ab Zeile6 soll geprüft werden in der Zeile 5 steht
die Überschrift.
mfg walli
meine version...
22.03.2010 20:34:03
robert
hi,
teste das mal
gruß
robert
Sub TT()
Dim firstlz As Long
Dim lz As Long
lz = Cells(Rows.Count, 1).End(xlUp).Row
firstlz = Range("K:K").SpecialCells(xlCellTypeBlanks).Rows.Count + 1
Range("A" & firstlz & ":M" & lz).Clear
End Sub

Anzeige
Hallo Robert
22.03.2010 20:38:22
walli
Hallo Robert,
es war alles WEG !
möchte gern mal testen mit selectieren.
mfg walli
AW: meine version...
22.03.2010 20:43:18
robert
hi,
erstens habe ich geschrieben-teste mal..
zweitens-das war doch dein wunsch-oder?
selektieren und löschen.
gruß
robert
Ja aber doch
22.03.2010 20:48:44
walli
Hallo Robert,
ja ja aber doch von der Zeile 6 angefangen.
ich wollte mir die Selektion ansehen,
mfg walli
Anzeige
dannach steig ich zu 99% aus ...
22.03.2010 20:52:21
Matthias
Hallo
Userbild
Sub Schleife()
Dim c As Range, Zeile As Long, LoletzteA As Long
LoletzteA = Cells(Rows.Count, 1).End(xlUp).Row
For Each c In Range("K:K")
Zeile = c.Row
If Zeile > 5 And LoletzteA > 5 Then If c.Value  "" Then Zeile = c.Row: Exit For
Next
If Zeile > 5 And LoletzteA > 5 Then Range("A" & Zeile & ":M" & LoletzteA).Select 'ClearContents
End Sub
https://www.herber.de/bbs/user/68743.xls
Gruß Matthias
Anzeige
Einfach Geil, Tausend Dank es klappt !!!!
22.03.2010 21:02:56
walli
Hallo Matthias,
weiß nicht WARUM aber jetzt klappt es !!!
Tausend Dank auch an die anderen !!!
ALLEN einen schönen Abend noch !
mfg walli
AW: Ja aber doch
22.03.2010 21:02:20
robert
hi,
das war deine antwort an reinhard:
Meine Tabelle geht von A6 bis M...
Wenn in der Spalte K die 1. belegte Zelle die K120 ist,
dann soll von A120 bis M ende gelöscht werden.
Das Ende wird durch die Spalte A bestimmt.
wenn ich richtig liege nacht mein makro folgendes:
ich ermittle die 1.belegte zelle in spalte K... zB.120
dann letze zelle in spalte A.....zB. 200
dann wird-lt.deiner angabe- A120 bis M200 gelöscht
was hat das mit A6 zu tun ?
gruß
robert
Anzeige
AW: Ja aber doch --))
22.03.2010 21:05:27
walli
Hallo Robert,
in der Spalte A steht ebenfalls eine Zahl die bestimmt die Länge der
Selektion und dann das löschen !
Habe das jetzt von Matthias, genommen,
bin glücklich,
DANKE für deine Unterstützung,
mfg walli
Es klappt, das zählt, *Schweißabwisch* :-) owT
22.03.2010 21:06:44
Reinhard


Zur Info Robert
22.03.2010 21:14:50
walli
Hallo Robert,
habe deins abgeändert:
Sub TT()
Dim firstlz As Long
Dim lz As Long
lz = Cells(Rows.Count, 1).End(xlUp).Row
firstlz = Range("K:K").SpecialCells(xlCellTypeBlanks).Rows.Count - 4             ' + 1
Range("A6" & firstlz & ":M" & lz).Select                      'Clear
End Sub

jetzt wird allerdings die 1. belegte Zeile nicht selectiert, wenn ich Minus 5 setze kommt fehlermeldung.
mfg walli
Anzeige
das geht ganz fix ... ohne vba
22.03.2010 20:02:26
Matthias
Hallo walli
setz den Cursor in K1
drücke STRG+Pfeil nach unten
drücke Shift+Pos1
drücke Entfernen - Fertig
Was willst Du denn löschen ?
die Zellen oder die Zellinhalte ?
stehen auch Formeln in den Zellen ?
für meine VBA-Beispiele gilt: ohne Formeln (nur Zellinhalte)


Mein Recorder sagt das
Sub MakroRecorder()
Range("K1").Select
Selection.End(xlDown).Select
Range(Selection, Cells(ActiveCell.Row, 1)).Select
Selection.ClearContents
End Sub

gefällt mir aber nicht !


eine weitere Variante ohne Recorder
Sub Schleife()
Dim c As Range, Zeile As Long
For Each c In Range("K:K")
If c.Value  "" Then Zeile = c.Row: Exit For
Next
MsgBox "Zeile = " & Zeile
If Zeile > 0 Then Range("A" & Zeile & ":K" & Zeile).Select 'hier löschen
End Sub
Select dient hier nur zur Demonstration
Bitte immer an einer Kopie testen!
Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige