Anzeige
Archiv - Navigation
384to388
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
384to388
384to388
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

aussortierung

aussortierung
21.02.2004 23:34:58
yusuf
hallo zusammen,
ich habe folgendes Problem:-)
ich habe miteinander abhängige zahlen in einer zeile die von spalte a bis d eingetragen sind z.B. zeile 12- spalte a die 7, spalte b die 15, spalte c die 26 und spalte d 33.
jetzt mein problem:
ich habe bei der bedingten formatierung eingegeben das in spalte d nur die zahlen 30 bis 39 vorkommen dürfen. falls eine andere zahl eingetragen ist wird sie markiert und ich kann die komplette zeile löschen. genauso mit den anderen spalten wo andere zahlen gebraucht werden.
aber bei über 25000 zeilen wird es ein problem jede makierte zeile zu löschen.
jetzt meine frage und bitte:
gibt es ein befehl wo die unerwünschten zahlen automatisch entfernt werden können, wichtig aber auch, ist das wenn ich wie im Beispiel erklärt habe, in der spalte d die falsche zahl vorkommt nicht nur diese zahl gelöscht wird sondern die komplette zeile die ja abhängig miteinander sind.
Ich habe es auch wie der josef mir gesagt hat mit Daten, Gültigkeit, ganze zahlen min 30 und max 39 versucht aber im vba bereich berechnete zahlen werden trotz allem eingetragen
ich würde mich freuen wenn ihr mir helfen könntet.
ich bedanke mich und verbleibe mit freundlichen grüßen.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: aussortierung
22.02.2004 00:04:07
Josef Ehrensberger
Hallo Yusuf!
Hier zwei Codes.
Der erste löscht die Inhalte in den entsprechenden Zeilen.
Der zweite löscht die Zeilen komplett.
Beide Codes beziehen sich auf das aktive Tabellenblatt!



Sub ZeilenLoeschen()
'Zeilen löschen, (Inhalte) wenn Wert in Spalte "D" unter bzw. über den
'Grenzwerten liegen
Dim rng As Range
Dim iMin As Integer
Dim iMax As Integer
iMin = 30
iMax = 39
Application.ScreenUpdating = False
For Each rng In ActiveSheet.Range("D1:D25000")
If rng < iMin Or rng > iMax Then
rng.EntireRow.ClearContents
End If
Next
Application.ScreenUpdating = True
End Sub
Sub ZeilenLoeschen2()
'Zeilen löschen, (komplett) wenn Wert in Spalte "D" unter bzw. über den
'Grenzwerten liegen
Dim rng As Range
Dim lngR As Long
Dim iMin As Integer
Dim iMax As Integer
iMin = 30
iMax = 39
Application.ScreenUpdating = False
Set rng = ActiveSheet.Range("D1:D25000")
For lngR = rng.Rows.Count To Step -1
If rng(lngR) < iMin Or rng(lngR) > iMax Then
rng(lngR).EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß Sepp
Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)
Anzeige
AW: aussortierung
22.02.2004 00:24:14
Yusuf
hallo josef,
danke ich werde es gleich ausprobieren wenn du mir noch erklärst wie ich den code zu meinem einbauen soll und was in gottes namen ist ein syntaxhighlighter
es hat mich gefreut von dir zu hören
AW: aussortierung
22.02.2004 00:58:18
Josef Ehrensberger
Hallo Yusuf!
Wenn ich Deinen Code kennen würde, könnte ich Dir
auch sagen wo Du ihn einbauen sollst!
Wenn Du wissen willst was der Syntaxhighlighter 2.5
ist, dann klick einfach auf den link.
Gruß Sepp
Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)
Anzeige
ich schicke dir meinen code
22.02.2004 01:10:31
yu
hallo noch mal,
wenn ich deine e-mail hätte könnte ich dir mein code schicken, wenn du nichts dagegen hast natürlich
Danke aber
22.02.2004 01:06:52
yusuf
hallo josef,
es klappt hervorragend außer eine sache die ich vergessen habe zu erwähnen und zwar mit der kompletten zeile habe ich die vier mit einander abhängige zahlen gemeint. bei mir sind a,b,c,d voll mit zahlen dann e frei und f,g,h,i wieder mit anderen zahlen die aber jetzt komplett gelöscht werden.
wenn du mir da noch helfen könntest wäre super.
und wenn nicht bin ich dir trotzdem sehr dankbar, du hast mir echt weiter geholfen.
Gruß Yusuf
AW: Danke aber
22.02.2004 01:12:39
Josef Ehrensberger
Hallo Yusuf!
Du hattest geschrieben "die ganze zeile"!
Hier der Code der nur die Zellen in den Spalten A-D löscht(Inhalte)


Sub ZellenLoeschen()
'Zellen A-D löschen, (Inhalte) wenn Wert in Spalte "D" unter bzw. über den
'Grenzwerten liegen
Dim rng As Range
Dim iMin As Integer
Dim iMax As Integer
iMin = 30
iMax = 39
Application.ScreenUpdating = False
For Each rng In ActiveSheet.Range("D1:D25000")
If rng < iMin Or rng > iMax Then
Range(Cells(rng.Row, 1), Cells(rng.Row, 4)).ClearContents
End If
Next
Application.ScreenUpdating = True
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß Sepp
Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)
Anzeige
hier hast du mein code
22.02.2004 01:15:42
yusuf
so hier ist mein code,

Dim anzahl As Integer
Dim zeile As Long
Dim spalte As Integer

Sub kombin()
Dim a() As Byte
Application.ScreenUpdating = False
zahl = 25 'z.B. 4 aus zahl
anzahl = 4
ReDim a(anzahl - 1)
f = InputBox("Führende Zahl") * 1
zeile = 1 'Ausgabe beginnt in Zeile 1
wieviel = 65500 'max 65500 Zahlenreihen wegen Blattlänge
spalte = 1 'bei Spalte 1 beginnen
For j = 0 To anzahl - 1
If j = 0 Then
a(j) = f
Else: a(j) = a(j - 1) + 1
End If
Next
ausgabe (a)
Do While zeile <= wieviel
s = anzahl - 1
If a(s) < zahl Then
a(s) = a(s) + 1
Else
s = anzahl - 1
Do
s = s - 1
If s = -1 Then GoTo ende
Loop Until a(s) < zahl And a(s) + anzahl - s <= zahl
a(s) = a(s) + 1
For i = s + 1 To anzahl - 1
a(i) = a(i - 1) + 1
Next
End If
If a(0) <> f Then GoTo ende
ausgabe (a)
If zeile = 65501 Then
spalte = spalte + anzahl + 1
zeile = 1
End If
Loop
ende:
Application.ScreenUpdating = True
End Sub


Sub ausgabe(a)
For i = 0 To anzahl - 1
Cells(zeile, spalte + i) = a(i)
Next
zeile = zeile + 1
End Sub

Anzeige
AW: hier hast du mein code
22.02.2004 01:25:55
Josef Ehrensberger
Hallo Yusuf!
Ohne mich jetzt in Deinen Code zu vertiefen, eine Frage.
Wenn Du die Zellen mit VBA füllst, warum verhinderst Du
dann nicht schon im Code das ungültige Zahlen eingetragen werden?
Dann könnte man sich löschen der Zellen sparen.

Gruß Sepp
Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige