Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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

Loop bis leere Zeile

Loop bis leere Zeile
22.07.2014 15:19:15
Felix
Hallo zusammen,
ich habe grad folgendes Problem:
Ich versuche ein Makro zu schreiben, das automatisch eine Datenreihe auffüllt und das ganze bis zu der ersten komplett freien Zeile und ohne möglicherweise schon vorhandene Daten in der jeweiligen Spalte zu überschreiben.
Ich habe zwar in diversen Foren gesucht und auch was mit ActiveSheet.UsedRange.Rows.Count gefunden, wie ich das aber mit meinem Makro verbinden kann, ist mir schleierhaft :/
Bis dato habe ich:
Sub Auffuellen()
Do While ActiveCell = ""
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""",R[-1]C,RC[-1])"
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
End Sub
(der Rekorder lässt grüßen^^)
P.S.: falls möglich, wäre es recht cool wenn der das ganze Geratter (sprich: das eintragen der Zahlen)nicht anzeigen würde, da die Datenreichen recht umfangreich sind ...

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Loop bis leere Zeile
22.07.2014 15:25:41
Hajo_Zi
es ist also so das Zeile 1,3;5 belegt ist und Du möchtest es in Zeile 2 schreiben?

AW: Loop bis leere Zeile
22.07.2014 15:39:20
Felix
Oh, Ich verdeutliche es vllt noch mal ^^
in der Tabelle stehen bspw. Namen in Spalte A und in B soll das Makro angewandt werden:
A___________________B
1 Müller_____________Müller
2 __________________Müller
3 __________________Müller
..
20Schneider_________Schneider
und in diesem einfachen Bsp soll dann folglich in den Zeilen 21ff in Spalte B "Schneider" stehen, bis entweder in Spalte A ein anderer Name steht, oder aber eine komplette Zeile leer ist.
Ich hoffe das macht es etwas deutlicher ;)

Anzeige
ahhhhHHHHHHHH!!!!!!!
22.07.2014 15:52:27
Oberschlumpf
kruzifix noch mal!!
Schulligung, ABER
Wiesoooooo zeigst du nicht mal ne verwendbare Bsp-Datei?
Spätestens in der Vorschau ist doch zu erkennen, dass die reine Forumssoftware nicht ausreicht, um Tabellen korrekt darzustellen!
Und zumindest ich hab noch immer nicht verstanden, was du erreichen willst.
ach so, Anrede + Schluss nich vergessen....gilt auch für mich!
Hallo Felix
Ciao
Thorsten

AW: ahhhhHHHHHHHH!!!!!!!
22.07.2014 16:13:40
Felix
Sorry Thorsten,
Ich hatte gehofft, dass es auch so (einigermaßen) verständlich wäre...

Die Datei https://www.herber.de/bbs/user/91632.xlsm wurde aus Datenschutzgründen gelöscht


um in der Bsp-Datei die Spalte B aufzufüllen funktioniert das Makro einwandfrei, jedoch muss entweder eine Zelle in B beschriftet sein, oder aber das Makro läuft bis zum bitteren Ende durch ( wenn man es nicht vorher per Esc abbricht :/)
Und unter die letzte zu füllende Zelle Ende oder Stop etc. zu schreiben ist leider auch keine wirkliche Alternative...
Gruß
Felix

Anzeige
AW: ahhhhHHHHHHHH!!!!!!!
22.07.2014 16:40:59
Felix
Danke Thorsten,
so hab ich mir das gedacht, das Problem bei deiner Lösung ist aber leider, dass Sie auf die Spalten A und B festgelegt ist... ginge das auch mit relativen Verweisen?
Außerdem überschreibt dieses Makro leider auch bestehende Einträge in der aufzufüllenden Spalte (im Beispiel Spalte B)
Gruß
Felix

AW: ahhhhHHHHHHHH!!!!!!!
22.07.2014 16:45:23
Oberschlumpf
Hi Felix
du hast in der Bsp-Datei Spalte B komplett leer gelassen!
Sorry, bin raus
Wer ne qualifizierte Antwort erwartet, muss erst mal ne qualifizierte Frage stellen.
Ich bastel mir NICHTS erst genau so hin wie DU es haben willst.
Ciao
Thorsten

Anzeige
1 Versuch noch
22.07.2014 16:53:15
Oberschlumpf
Hi Felix
lösch meinen Code in der Datei und taushc ihn gegen diesen hier aus:

Sub Auffuellen()
Dim lloRow As Long
For lloRow = 2 To Cells(Rows.Count, 3).End(xlUp).Row
If Range("B" & lloRow).Value = "" Then
If Range("A" & lloRow).Value  "" Then
Range("B" & lloRow).Value = Range("A" & lloRow).Value
Else
Range("B" & lloRow).Value = Range("B" & lloRow - 1).Value
End If
End If
Next
End Sub

Nun sollten Einträge in Spalte B NICHT überschrieben werden.
Hilfts?
Ciao
Thorsten
p.s. was die Auswahl anderer Spalten betrifft, musst du eine Bsp-Datei zeigen, die vieeel mehr Infos enthält.
Zusätzlich wäre dann innerhalb der DAtei eine Beschreibung schön, was wann wie wo warum geschehen soll

Anzeige
AW: 1 Versuch noch
22.07.2014 17:01:36
Felix
Danke für deine Geduld Thorsten,
du hast mich auf jeden Fall ein riesigen Schritt weiter gebracht!
Das mit den relativen Zellbezügen bastel ich mir mal selbst in den Code und wenn ich noch irgendwas anders haben möchte versuch ich mir das auch hinzubiegen (ich hab ja jetzt einen wirklich guten Ausgangspunkt ;) :))
Gruß,
Felix

Mit Deiner Formel...
22.07.2014 16:40:10
Case
Hallo, :-)
... würde es im gerade aktiven Tabellenblatt so gehen:
Option Explicit
Sub Main()
With Range("B2:B" & Cells(Rows.Count, 3).End(xlUp).Row)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=IF(RC[-1]="""",R[-1]C,RC[-1])"
.Value = .Value
End With
End Sub
Servus
Case

Anzeige
AW: Mit Deiner Formel...
22.07.2014 16:51:21
Felix
Danke für deine Hilfe Case,
aber dieses Makro bekomm ich leider überhaupt nicht zum laufen :( ("Laufzeitfehler 1004: Keine Zellen gefunden")
Außerdem scheint bei deinem Ansatz (ebenso wie bei Thorstens)das Makro explizit auf Spalte B festgelegt zu sein (soweit ich den Code entschlüsseln kann^^) und auch mögliche Inhalte in der zu befüllenden Spalte werden damit wohl überschrieben :/
Gruß
Felix

Dieser Fehler...
22.07.2014 16:55:49
Case
Hallo, :-)
... kommt nur, wenn schon alle Zellen in Spalte B befüllt sind. :-)
Probier es doch mal in der Beispieldatei aus, die Du uns zur Verfügung gestellt hast!!! ;-)
Servus
Case

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige