Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen auffüllen

Zellen auffüllen
21.08.2007 19:23:00
Ela
Hallo an alle Fachleute,
ich habe in Spalte A in unregelmäßigen Abständen einen Eintrag, z.B. in A3, A6, A18, etc. Wie kann ich per Makro immer den ersten Wert in die nachfolgenden leeren Zeilen kopieren? Also in A4 bis A5 soll das gleiche stehen wie in A3, in A7 bis A17 das gleiche wie in A6, usw. Das Ende der Datenreihe wird an dem Texteintrag "Endsumme" irgendwo in Spalte A festgemacht.
Ich habe bereits einen hervorragenden Tipp (Zellen auffüllen von Eleni, 21.10.2004) in eurem Forum zu diesem Thema gelesen. Leider mangelt es mir an VBA-Kenntnissen, um diesen Tipp auf mein Beispiel (Ende der Datenreihe wird am dem Eintrag "Endsumme" irgendwo in Spalte A festgemacht) umzuändern.
Dankeschön für eure Mühe.
Ela Eggers

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen auffüllen
21.08.2007 19:37:00
Matthias
Hallo Ela,
das geht z.B. so:

Sub Auffuellen()
Dim z As Range
Dim tmp
Set z = Range("A3") 'erste zu untersuchende Zelle
Do While z  "Endsumme"
If z  "" Then
tmp = z
Else
z = tmp
End If
Set z = z.Offset(1, 0)
Loop
End Sub


Gruß Matthias

AW: Zellen auffüllen
21.08.2007 19:37:00
Chaos
Servus Ela Eggers,
probiers mal so:

Sub auffüllen()
Dim lngLetzte As Long, zeile As Long
lngLetzte = Range("A65536").End(xlUp).Offset(0, 0).Row
For zeile = 2 To lngLetzte Step 1
If Cells(zeile, 1).Value = "" Then
Cells(zeile, 1).Value = Cells(zeile - 1, 1).Value
End If
Next zeile
End Sub


Bemerkung:
Das Makro füllt nach der letzten Zeile nichts mehr auf.
Gruß
Chaos

Anzeige
AW: Zellen auffüllen
21.08.2007 19:59:02
Chaos
Servus Ela,
du hast recht sie endet nicht bei Endsumme (hätte gedacht das ist der letzte Wert, dann wär's ja i.O.)
dann besser so:

Sub auffüllen()
Dim lngLetzte As Long, zeile As Long
lngLetzte = Range("A65536").End(xlUp).Offset(0, 0).Row
For zeile = 2 To lngLetzte Step 1
If Cells(zeile,1).Value = "Endsumme" Then
Exit sub
End if
If Cells(zeile, 1).Value = "" Then
Cells(zeile, 1).Value = Cells(zeile - 1, 1).Value
End If
Next zeile
End Sub


Gruß
Chaos

AW: Zellen auffüllen
21.08.2007 19:43:57
Ela
Lieber Matthias,
werde deine helfenden Excelzeilen gleich morgen früh ausprobieren.
Ganz herzlichen Dank für deine schnelle Hilfe.
Liebe Grüße von Ela

Anzeige
AW: Zellen auffüllen
21.08.2007 19:48:00
Ela
Liebe/r Chaos,
herzlichen Dank für deine schnelle Hilfestellung. Deine Lösung funktioniert sicher hervorragend. Da sie aber alle Zeilen durchrechnet und nicht bereits bei dem Eintrag "Endsumme" endet und zudem meine Tabelle extrem umfangreich ist und mehrere Spalten auf diese Art durchgerechnet werden müssen, habe ich die Befürchtung, dass sie entweder Excel oder meinen kleinen Rechner überlastet.
Ich werde auf jeden Fall alle Lösungen durchexerzieren und gebe morgen Abend Bescheid, mit welchem Beispiel ich die Anforderung am besten lösen konnte.
Liebe Grüße von Ela

Anzeige
Ersetzen ohne Schleife
21.08.2007 20:36:00
Beate
Hallo Ela,
dieser Code funktioniert ohne Schleife durch Ersetzen und macht dies, bis er auf "Endsumme" stößt, was der letzte Eintrag in der Spalte sein muss:
Sub Ersetzen_ohne_Schleife()
    Range(Cells(1, "A"), Cells(ActiveSheet.Cells(Cells(Rows.Count, "A").End(xlUp).Row, 1).Row, "A")).Replace What:="", Replacement:= _
        "=INDIRECT(ADDRESS(ROW()-1,COLUMN()))", LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Columns("A:A").Copy
    Columns("A:A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A1").Select
End Sub

Gruß,
Beate

Anzeige
AW: Zellen auffüllen
22.08.2007 21:02:00
Ela
Liebe Fachleute,
ganz herzlichen Dank für eure Mühe, ihr habt mein Problem ganz und gar gelöst.
Die Makros von Matthias und Chaos haben ganz hervorragend funktioniert. Auch das Makro von Beate funktioniert einwandfrei - einziger Einwand: Es versucht, auch in die leerstehenden Zellen A1 bis A3 einen Wert hinein zu schreiben, was sich in dem Vermerk #WERT! ausdrückt.
Liebe Grüße von Ela

AW: Zellen auffüllen
23.08.2007 10:50:37
Beate
Hallo Ela,
dann musst du in meinem Code den Bereich anpassen, so z. B. wenn der Bereich in A4 losgeht:

Sub Ersetzen_ohne_Schleife()
Range(Cells(4, "A"), Cells(ActiveSheet.Cells(Cells(Rows.Count, "A").End(xlUp).Row, 1).Row, " _
A")).Replace What:="", Replacement:= _
"=INDIRECT(ADDRESS(ROW()-1,COLUMN()))", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Columns("A:A").Copy
Columns("A:A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
End Sub


Gruß,
Beate

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige