Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
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
Inhaltsverzeichnis

Auffüllen vom leerenZellen

Auffüllen vom leerenZellen
02.03.2018 11:22:52
Berni
Grüß euch Excellenzen,
Bevor ich mich auf den Weg mache und die Tabelle manuell fülle, habe ich mir gedacht, ich schreib mal einen Code, um die Arbeit zu erleichtern.
Also: ich habe in einer Tabelle in der Spalte D Summen stehen, die sich auf die Bezeichnung der Spalte A beziehen. Die Details stehen in der Spalte C. Um nun die Tabelle für eine Pivot-Auswertung vorzubereiten. sollte in der Spalte A bzw. B keine leere Zeile sein. Das Problem ist nur, dass einmal nur eine Leerzeile ist, dann wieder, je nach Partnerobjekt mehrere Leerzeilen. Dazu habe ich nun einmal einen Code geschrieben.
Sub CopyCells()
Dim iRow As Integer
iRow = 2
Do Until Cells(iRow, 1).Value = "585519"
If IsEmpty(Cells(iRow, 1)) Then
Cells(iRow, 1).Value = Cells(iRow + 1, 1).Value
End If
iRow = iRow + 1
Loop
End Sub
Allerdings werden hier nicht alle Zeilen befüllt, da ich immer nur mit Cells(iRow+1,1).value nur die folgende Zelle erwische. Wie kann ich den Code abändern, dass er, je nach Leerzeilen, alle Zellen befüllt?
Füge euch einen Ausschnitt aus der Tabelle ein, damit ihr mein Problem nachvollziehen könnt.
https://www.herber.de/bbs/user/120162.xlsm
Danke vorerst
Berni

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
geht ohne VBA
02.03.2018 12:30:14
Rudi
Hallo Berni,
meinst Du so:

Sub CopyCells()
Dim iRow As Long
Dim irow2 As Long
iRow = 2
Do Until Cells(iRow, 1).Value = "585519"
If IsEmpty(Cells(iRow, 1)) Then
irow2 = iRow
Do Until Cells(irow2, 1).Value  ""
irow2 = irow2 + 1
Loop
Cells(iRow, 1).Value = Cells(irow2, 1).Value
End If
iRow = iRow + 1
Loop
End Sub
Da musst du nur darauf achten, dass deien Abbruchbedingung auch wirklich vorhaden ist
Gruß
yummi
AW: geht ohne VBA
02.03.2018 13:55:49
Berni
Danke Rudi, Danke Yummi,
Beide Varianten passen prächtig. Jetzt muss ich nur noch die Nebenspalte mit dem Text füllen. Aber das lässt sich,glaub ich, mit dem Einbauen eines Column+1 Befehles bewerkstelligen.
Danke nochmals
Berni
Anzeige
AW: Auffüllen vom leerenZellen
02.03.2018 12:30:29
yummi
Hallo Berni,
meinst Du so:

Sub CopyCells()
Dim iRow As Long
Dim irow2 As Long
iRow = 2
Do Until Cells(iRow, 1).Value = "585519"
If IsEmpty(Cells(iRow, 1)) Then
irow2 = iRow
Do Until Cells(irow2, 1).Value  ""
irow2 = irow2 + 1
Loop
Cells(iRow, 1).Value = Cells(irow2, 1).Value
End If
iRow = iRow + 1
Loop
End Sub
Da musst du nur darauf achten, dass deien Abbruchbedingung auch wirklich vorhaden ist
Gruß
yummi
in dem Fall...
02.03.2018 12:40:20
Rudi
lässt man die Schleife doch besser rückwärts laufen, Yummi.
Sub CopyCells()
Dim iRow As Long
For iRow = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If IsEmpty(Cells(iRow, 1)) Then
Cells(iRow, 1).Value = Cells(iRow + 1, 1).Value
End If
Next
End Sub

Gruß
Rudi
Anzeige
AW: in dem Fall...
02.03.2018 12:46:03
yummi
Du hast recht Rudi, aber ich wollte möglichst nahe an seinem Algrorithmuss entwurf bleiben. Ich persönlich würde auch nciht auf einen Wert als letzte Beding abfragen sondern das über letzteZeile bestimmen, so wie du es auch gemacht hast.
Viele Wege führen nach Rom.
Elegante WEge, wie deienr und weniger elegante.
So hat er die Möglichkeit seinen Fehler im Algoritmus zu erkennen und das dann mit deienr Möglichkeit ellegant umzusetzen.
Gruß
yummi
PS: bei mir ist deine ohne VBA Lösung mit mienem Beitrag überschrieben, falls das bei dir auch ist, weiß nciht wie das passiert ist
Anzeige
PS
02.03.2018 12:50:04
Rudi
Hallo,
scheint ein Fehler in der Datenbank zu sein.
AW: Auffüllen vom leerenZellen
02.03.2018 21:13:30
Paul
Hallo
Kennst du ...
- suchen und auswählen
- Gehe zu
- Inhalte ( links unten )
- Leerzellen
Damit kannst du alle leeren Zellen markieren.
Wenn du vorher die Zahl 0 kopiert hast, mach einfach Crtl V
Gruss Paul

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige