3.9k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich habe eine Tabelle mit vielen leeren Zellen. Jede leere Zelle in der Tabelle soll mit dem Wert gefüllt werden, der als nächstes über ihr steht. Also auch, wenn mehrere leere Zellen nur einen Wert an der Spitze haben, sollen alle diesen Wert bekommen.

Gibt es dafür eine Funktion in Excel?

8 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Pammsel,

wir helfen hier gern, aber wir raten ungern:-)

Deshalb wäre es ratsam, dass Du Deine Frage etwas verständlicher rüber bringst.

Gruß
Rainer
0 Punkte
Beantwortet von marie Experte (2k Punkte)
vielleicht meinst Du ja das?

Public Sub fkt_auffuellen()
Dim intspalte As Integer ' bis Spalte 10
Dim intzeile As Integer ' bis Zeile 100

For intspalte = 1 To 10
For intzeile = 2 To 100
If Tabelle1.Cells(intzeile, intspalte) = "" Then
Tabelle1.Cells(intzeile, intspalte) = Tabelle1.Cells(intzeile - 1, intspalte)
End If
Next intzeile
Next intspalte
End Sub


Gruß marie
0 Punkte
Beantwortet von
Vielleicht, aber wo muss ich den Text einfügen?
0 Punkte
Beantwortet von marie Experte (2k Punkte)
in "Extras" "Makro" "VisualBasic Editor" klickst Du auf das Tabellenblatt, in dem die werte aufgefüllt werden sollen, kopierst den Text dort rein,

änderst die zahlen nach deinem Wunsch in dem text:

For intspalte = 1 To 10
For intzeile = 2 To 100


und klickst dann auf ausführen.

Es sei denn Du musst das öfter machen, dann machst Du einen Button und legst den Text dahinter, damit Du nur auf den Button klicken musst, musste halt sagen, wenn Du das willst.

Gruß Marie
0 Punkte
Beantwortet von
Ich bin zu blöde, kann mir das jemand machen? Nicht umsonst!
0 Punkte
Beantwortet von marie Experte (2k Punkte)
wo hängst Du denn??
0 Punkte
Beantwortet von
das funktioniert doch nur so


Spalte1 Spalte2
A ......
.......
......
......

Die Makro würde dann Spalte 1 mit dem A auffüllen

wenn aber unter Spalte 1 noch ein B dazu kommt
würde die Makro immer wieder den Wechsel A/B machen

und nicht Spalte2 die z.b. 4 Zeilen mit A machen und dann darunter direkt 4 Zeilen mit Spalte1 B?
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Wie bitte?? ich versteh nicht was Du meinst.

Jede leere Zelle in der Tabelle soll mit dem Wert gefüllt werden, der als nächstes über ihr steht. Also auch, wenn mehrere leere Zellen nur einen Wert an der Spitze haben, sollen alle diesen Wert bekommen.



Tabelle1.Cells(intzeile, intspalte) = Tabelle1.Cells(intzeile - 1, intspalte)


Das heisst, dass der Wert der vorhergehenden Zeile eingetragen wird wenn
If Tabelle1.Cells(intzeile, intspalte) = "" Then
die aktuelle zeile leer ist. Also Du hast den Wert A in Zeile 1, Zeile 2 ist leer, es wird A eingetragen, Zeile 3 ist leer, es wird A eingetragen, zeile 4 enthält B es wird nichts getan, da die zeile nicht leer ist, Zeile 5 ist leer, es wird B eingetragen und zwar so lange in alle nächsten zeilen, bis ein neuer Wert C kommt. Wie kommst Du denn darauf, dass abwechselnd A und B eingetragen wird? In dem Moment, wo ein Wert B auftaucht ist doch der Wert A nicht mehr verfügbar. Ich habe es so verstanden, dass Pammsel das so möchte.

und nicht Spalte2 die z.b. 4 Zeilen mit A machen und dann darunter direkt 4 Zeilen mit Spalte1 B?
Was Du damit meinst hab ich überhaupt nicht verstanden, die Spalte 2 wird doch genauso durchlaufen wie Spalte 1, also wie oben, beschrieben.
For intspalte = 1 To 10
For intzeile = 2 To 100
.....................
Next intzeile
Next intspalte

geht doch zuerst Spalte 1 durch von Zeile 2 bis 100, dann Spalte 2 von zeile 2 bis 100 usw. Der Inhalt von Spalte 1 wird doch in Spalte 2 nicht eingetragen??

Irgendwie versteh ich leider gar nicht was Du meinst. Kopier doch einfach den Code in ein Arbeitsblatt mit irgendwelchem Inhalt, dann siehst Du doch was er tut und brauchst nicht raten.

Gruß marie
...