Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
696to700
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
696to700
696to700
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen löschen

Zellen löschen
22.11.2005 14:25:32
Darren
Ich versuche gerade einen Code aufzbauen, der in der Zeile 2 nach einer Kundennummer sucht. Wenn er diese gefunden hat, soll er alle Spalten nach dieser löschen.
Wie kann ich das aufbauen?
Grüße
Darren

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen löschen
22.11.2005 14:42:26
Harald
Hi Darren,
vielleicht so?

Sub test()
Dim i As Integer, x As Integer
x = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To x
If Cells(i, 1) = "Die Nummer" Then
Range(Rows(i), Rows(x)).EntireRow.Delete
Exit For
End If
Next i
End Sub

Gruss Harald
AW:
22.11.2005 14:46:21
Darren
Hi Harald,
kann man auch den Befehl etwas erweitern, indem man genau sagt, z.B. 20 Spalten ab der gefundene Zelle löschen?
GRüße
Darren
AW:
22.11.2005 14:50:57
Harald
Klaro
Range(Rows(i), Rows(i + 20)).EntireRow.Delete
Gruss Harald
AW:
22.11.2005 14:58:29
Darren
Danke, ich probiere es sofort !
AW:
22.11.2005 15:13:29
Darren
Hallo Harald,
habe noch eine Frage ob ich das richtig verstanden und umgesetzt habe.
Ich suche den Wert der Variable "Kundennr" (die z.B. 600 ist)
Er soll in der Zeile 2 Spalte für Spalte nach diesem Wert suchen und wenn er es gefunden hat, dann soll er die Löschprozedur durchführen.
Sucht der Eintrag "Cells(itest, 1) " nach diesen Wert in Zeile 2 bis er den Wert in einer Spalte findet?
Dim xtest As Integer
Dim Prognr As Integer
xtest = Cells(2, Columns.Count).End(xlUp).Columns
For itest = 1 To xtest
If Cells(itest, 1) = Prognr Then
Range(Rows(itest), Rows(xtest)).EntireRow.Delete.Select
Exit For
End If
Next itest
Anzeige
AW: ?
22.11.2005 15:31:36
Harald
Hi, bin grad zuhause angekommen
zum einen, Spalten zählt man von links und das s beim letzten columns muss auch weg, du willst ja nur die Nummer einer Spalte wissen
xtest = Cells(2, Columns.Count).End(xltoleft).Column
zum anderen, wenn er in Zeile 2 in irgendeiner Spalte was findet, sollte er besser die Spalte löschen anstatt die Zeile 2, oder ?....und nimm um Himmels Willen das Select da weg ;-))
columns(i).entirecolumn.delete
oder zum Löschen der Werte
Lrow = cells(rows.count, i).end(xlup).row
range(cells(2, i), cells(cells(Lrow, i)).clearcontents
AW: ?
22.11.2005 16:26:45
Darren
Hi,
hier mein neuer code:
Dim xtest As Integer
Dim itest As Integer
Dim Lrow As Integer
xtest = Cells(2, Columns.Count).End(xlToLeft).Column
'Lrow = Cells(Rows.Count, itest).End(xlToLeft).Row
Lrow = Cells(Rows.Count, xtest).End(xlUp).Row
For itest = 1 To xtest
If Cells(2, itest) = Prognr Then
'Range(Rows(itest), Rows(xtest)).EntireRow.Delete.Select
'Range(Rows(i), Rows(i + 20)).EntireRow.Delete
'Range(Rows(itest), Rows(itest + 20)).EntireRow.ClearContents
Range(Cells(2, itest), Cells(Cells(Lrow, itest))).ClearContents
'Range(Cells(2, itest), Cells(Cells(2, itest + 20))).ClearContents
Exit For
End If
Next itest
Leider löscht er die Inhalte nciht, sondern nur wo er in Zeile 2 und in der gesuchte Spalte den Wert 600 findet.
In diesem Code:
Range(Cells(2, itest), Cells(Cells(Lrow, itest))).ClearContents
gibt er mir diese Werte (2,6) und (34, 6) aber löscht die Inhalte nicht bis Zeile 34. Warum?
Bin morgen wieder da. Bis morgen!
GRüße
Darren
Anzeige
AW: ?
22.11.2005 17:34:38
Harald
Du hast die 20 zu der Spalte dazugerechnet
Range(Cells(2, itest), Cells(Cells(22, itest))).ClearContents
Gruß
Harald
AW: ?
23.11.2005 08:42:31
Darren
Hi,
er gibt mir ein Fehler "Typen unverträglich"
Ich habe daraus diese gebastelt, aber dann löscht er wieder nur die "600"
Range(Cells(2, itest), Cells(Cells(18, itest))).ClearContents
Grüße
Darren
AW: läuft so
23.11.2005 09:02:16
Harald
Hi Darren,
Range(Cells(2, itest), Cells(Cells(18, itest))).ClearContents
Ist ein Cells und eine Klammer zuviel.

Sub test()
Dim xtest As Integer
Dim itest As Integer
Dim Lrow As Integer
Dim Prognr As String
Prognr = 600
xtest = Cells(2, Columns.Count).End(xlToLeft).Column
Lrow = Cells(Rows.Count, xtest).End(xlUp).Row
For itest = 1 To xtest
If Cells(2, itest) = Prognr Then
Lrow = Cells(Rows.Count, itest).End(xlUp).Row 'ggf durch feste Zahl ersetzen
Range(Cells(2, itest), Cells(Lrow, itest)).ClearContents
End If
Next itest
End Sub

Gruss Harald
Anzeige
gelöst
23.11.2005 09:17:23
Darren
Hi Harald,
herzlichen Dank! ! ! Jetzt läuft es! Danke!
Darren
Danke für Rückmeldung...eine Zeile zuviel
23.11.2005 09:35:01
Harald
Einen Schönheitsfehler ahb ich noch übersehen
Lrow =.... hat ausserhalb der For..Next Schleife nix zu suchen, da Lrow innerhalb der Schleife eh jedesmal neu definiert wird.
Also die Lrow Zeile vor !!! der For..Next Schleife ersatzlos löschen.
...bevor die Leute mit dem Finger auf mich zeigen ;-)))
Gruss Harald

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige