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

Zelleninhalte leeren, verschieben und au

Forumthread: Zelleninhalte leeren, verschieben und au

Zelleninhalte leeren, verschieben und au
07.12.2020 16:01:31
Hilfert
Hallo zusammen,
ich habe ein Problem, diesen schon zu erklären für mich problematisch gewesen ist.
Die Sache ist:
Ist Stand
ab Splate 4 stehen immer 2 zusammenhängender Zellen-"Pärchen". Erste Hälfte des Zellen-Pärchens (die erste steht in D2) beinhaltet Bezeichnung (alphanumerisch, kann aber auch leer sein), zweite Zelle (die erste steht in E2) immer eine Zahl. Die Zahl kann entweder 0 oder größer 0 sein. Die Anzahl der Spalten ist variabel (immer zusammenhängend (F+G, H+I, J+K, L+M, usw, bis Ende). Die Anzahl der Zeilen ist auch variabel.
soll Stand
ab Spalte 4 müssen immer die Pärchen-Zellen, bei deren die Anzahl=0 ist geleert werden und die "nachfolgenden" Pärchen-Zellen, deren Anzahl größer 0 ist müssen verschoben werden und am Ende angehangen werden (anfangend ab Spalte 4).
Ab Spalte 4 dürfen keine Zellen-Pärchen mit Anzhal =0 stehen. Nach dem Leereen müssen die Felder AnzahlN bis Ende mit einem Wert 0 gefüllt werden (die Bezeichner bleiben leer).
Vielleicht erklärt diese Tabelle
https://www.herber.de/bbs/user/142141.xlsx
mein Problem besser.
Ich hoffe, dass ich mein Problem einigermaßen erklären konnte.
Kann mir jemand helfen?
Danke und LG
Beata
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalte leeren, verschieben und au
07.12.2020 16:49:26
worti
Hallo Beate,
mit VBA zum Beispiel so:
Sub zellen_weg()
Dim lngSpalte As Long
Dim lngZeile As Long
For lngZeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For lngSpalte = Cells(lngZeile, Columns.Count).End(xlToLeft).Column To 5 Step -2
If Cells(lngZeile, lngSpalte).Value = 0 Then
Range(Cells(lngZeile, lngSpalte - 1), Cells(lngZeile, lngSpalte)).Delete shift:= _
xlToLeft
End If
Next lngSpalte
Next lngZeile
End Sub

Wenn deine Einträge in Zeile 2 beginnen.
Gruß Worti
Anzeige
AW: Zelleninhalte leeren, verschieben und au
08.12.2020 12:59:31
Hilfert
Hallo Worti,
Danke Dir, aber die Anzahl der Spalten ist immer variabel - kann bis zu Spalte CN und noch weiter gefüllt sein.
LG
Beata
AW: Zelleninhalte leeren, verschieben und au
08.12.2020 21:02:04
Worti
Hallo Beate,
der Code berücksichtigt, dass Zeilen- und Spaltenanzahl variabel sind. Hast du es ausprobiert?
Gruß Worti
AW: Zelleninhalte leeren, verschieben und au
10.12.2020 14:35:41
Hilfert
Hallo Worti,
irgendetwas habe ich vorher falsch gemacht - habe jetzt nochmals probiert: es funktioniert! Danke Dir!
Und wie können die leer gewordenen Spalten (jede zweite) mit dem Wert 0 gefüllt werden?
LG
Beata
Anzeige
AW: Zelleninhalte leeren, verschieben und au
11.12.2020 16:01:56
Hilfert
Hallo zusammen,
in der Tabelle https://www.herber.de/bbs/user/142262.xlsx müssten noch die Felder, die farblich markiert sind mit dem Wert 0 gefüllt werden.
Die Spalten und Zeilen sind variabel - in eine Zeile sind immer unterschiedlich viele leere Anzahl-Felder.
Diese alle müssen den Wert 0 bekommen.
Wie konnte man das in den VBA von Worti einbauen?
Sub zellen_weg()
Dim lngSpalte As Long
Dim lngZeile As Long
For lngZeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For lngSpalte = Cells(lngZeile, Columns.Count).End(xlToLeft).Column To 5 Step -2
If Cells(lngZeile, lngSpalte).Value = 0 Then
Range(Cells(lngZeile, lngSpalte - 1), Cells(lngZeile, lngSpalte)).Delete  _
shift:= _
xlToLeft
End If
Next lngSpalte
Next lngZeile
End Sub
Und bestünde eine Möglichkeit alle gefüllte Zellen auf eine bestimmte länge zu überprüfen und die Zell-Adressen noch auszugeben?
Wenn mir hierzu noch jemand helfen könnte wäre ganz toll!
Grüße
Beata
Anzeige
AW: Zelleninhalte leeren, verschieben und au
11.12.2020 22:15:31
Worti
Hallo Beata,
hier die Erweiterung des Codes, der dir die Nullen in die Spalten schreibt. Mit den Längen habe ich noch nicht verstanden.
Sub zellen_weg()
Dim lngSpalte As Long
Dim lngZeile As Long
Dim rngC As Range
For lngZeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For lngSpalte = Cells(lngZeile, Columns.Count).End(xlToLeft).Column To 5 Step -2
If Cells(lngZeile, lngSpalte).Value = 0 Then
Range(Cells(lngZeile, lngSpalte - 1), Cells(lngZeile, lngSpalte)).Delete  _
shift:=xlToLeft
End If
Next lngSpalte
Next lngZeile
ThisWorkbook.Save
For Each rngC In ActiveSheet.UsedRange
If Left(Cells(1, rngC.Column).Value, 6) = "Anzahl" Then
If rngC.Value = "" Then
rngC.Value = 0
End If
End If
Next rngC
Gruß Worti
Anzeige
AW: Zelleninhalte leeren, verschieben und au
11.12.2020 22:57:09
Worti
Hallo Beata,
hab den Code noch einmal angepasst, jetzt werden die Addressen der Zellen mit Länge 5
auch noch angezeigt. Was du damit machst weiß ich allerdings nicht.
Sub zellen_weg()
Dim lngSpalte As Long
Dim lngZeile As Long
Dim rngC As Range
For lngZeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For lngSpalte = Cells(lngZeile, Columns.Count).End(xlToLeft).Column To 5 Step -2
If Cells(lngZeile, lngSpalte).Value = 0 Then
Range(Cells(lngZeile, lngSpalte - 1), Cells(lngZeile, lngSpalte)).Delete  _
shift:=xlToLeft
End If
Next lngSpalte
Next lngZeile
ThisWorkbook.Save
For Each rngC In ActiveSheet.UsedRange
If Len(rngC.Value) = 5 Then
MsgBox "Länge des Wertes in Zelle " & _
rngC.Address(False, False) & " = 5"
End If
If Left(Cells(1, rngC.Column).Value, 6) = "Anzahl" Then
If rngC.Value = "" Then
rngC.Value = 0
End If
End If
Next rngC
End Sub

Gruß Worti
Anzeige
AW: Zelleninhalte leeren, verschieben und au
14.12.2020 09:06:17
Hilfert
Hallo Worti,
das mit der Längenprüfung funktioniert sehr gut - (das ist eine Import-Datei und die Felder dürfen nicht länger sein als 37).
Aber mit dem Füllen des Feldes "Anzahl?" funktioniert nicht. Das Feld Anzahl heiß immer Anzahl1 bis Anzahln. Ich habe die If-Abfrage:
If Left(Cells(1, rngC.Column).Value, 6) = "Anzahl" Then
If rngC.Value = "" Then
rngC.Value = 0
End If
geändert in:
If Left(Cells(1, rngC.Column).Value, 6) Like "Anzahl*" Then
If rngC.Value = "" Then
rngC.Value = 0
End If
aber das funktioniert leider auch nicht.
Gruß
Beata
Anzeige
AW: Zelleninhalte leeren, verschieben und au
16.12.2020 10:15:21
Hilfert
Hallo Worti,
es funktioniert alles - das lag an meiner Datei (die hatte einen "Schlag" abbekommen)
Vielen Dank!!!!
Grüße Beata
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige