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

Zelleninhalte

Forumthread: Zelleninhalte

Zelleninhalte
07.11.2012 17:49:20
Frank
Hallo Zusammen,
ich habe eine Tabelle mit über 30000 Zeilen und 18 Spalten.
in den Verschieden Zellen stehen zum Teil Zahlen.
Wenn eine Zelle einen Wert enthält soll der Zellwert 1 sein.
Dies habe ich mit folgendem Code gelöst
Dim CellCount, ColumnCount, X, Y As Integer
CellCount = Cells(Rows.Count, 9).End(xlUp).Row
ColumnCount = Cells(64, Columns.Count).End(xlToLeft).Column
For X = 10 To ColumnCount
For Y = 64 To CellCount
If Cells(Y, X).Value  "" Then
Cells(Y, X).Value = 1
End If
Next Y
Next X

Nun soll aber wenn z.B. in einer Zelle in Spalte 10 schon einen 1 steht, in keiner weiteren Zelle in der Zeile der Spalten 11 bis 18 mehr ein Wert stehen.
Sprich es soll immer in nur in der kleinsten Spalte in einer Zeile eine 1 stehen.
ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Kann mir jemand einen Lösungsansatz liefern?
Vielen Dank schon mal
Frank

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalte
07.11.2012 20:55:10
Hajo_Zi
Hallo Frank,
Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Dim CellCount, ColumnCount, X, Y As Integer
CellCount = Cells(Rows.Count, 9).End(xlUp).Row
ColumnCount = Cells(64, Columns.Count).End(xlToLeft).Column
For X = 10 To ColumnCount
For Y = 64 To CellCount
If Cells(Y, X).Value "" Then
Cells(Y, X).Value = 1
Range(Cells(Y, X).Cells(Y, ColumnCount)).ClearContents
End If
Next Y
Next X

Anzeige
AW: Zelleninhalte
08.11.2012 01:06:23
Gerd
Hallo Frank!
Sub test()
Dim Bereich As Range, vntIn As Variant, vntOut As Variant, i As Long, j As Long
Set Bereich = Range(Cells(64, 10), _
Cells(Cells(Rows.Count, 9).End(xlUp).Row, _
Cells(64, Columns.Count).End(xlToLeft).Column))
Bereich.Replace "*", 1, xlWhole
vntIn = Bereich.Value2
ReDim vntOut(1 To UBound(vntIn, 1), 1 To UBound(vntIn, 2))
For i = 1 To UBound(vntIn, 1)
For j = 1 To UBound(vntIn, 2)
If vntIn(i, j) = 1 Then vntOut(i, j) = 1: Exit For
Next
Next
Bereich.Value = vntOut
End Sub
Gruß Gerd

Anzeige
AW: Zelleninhalte
12.11.2012 09:35:23
Frank
Hallo Gerd,
auch Dir vielen dank für die Antwort.
Ich werde es mal versuchen nachzuvollziehen
Gruß
Frank

AW: Zelleninhalte
12.11.2012 09:33:50
Frank
Hallo Hajo,
du hast natürlich recht. Mit Datei wäre es einfacher.
Aber die Datei ist schon ziemlich groß.
Dennnoch vielen Dank für deine Antwort
Gruß
Frank
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18