4.2k Aufrufe
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
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
von marie Experte (2.0k 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
von
Vielleicht, aber wo muss ich den Text einfügen?
0 Punkte
von marie Experte (2.0k 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
von
Ich bin zu blöde, kann mir das jemand machen? Nicht umsonst!
0 Punkte
von marie Experte (2.0k Punkte)
wo hängst Du denn??
0 Punkte
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
von marie Experte (2.0k 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

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...