Ich weiß nicht, ob ich deine beiden Beschreibungen richtig zur Deckung bringe.
1. Du willst also die Spalte, die befüllt werden soll, jeweils auswählen, die Zeile wird aber nur einmal ausgewählt.
2. Oder willst du eine Anfangszelle festlegen und alle Zellen, deren Zeilen- und Spaltennummer größer als die der Anfangszelle sind, sollen vom Füllprozeß erfasst werden?
Zu 1.
Sub Leere_Zellen_füllen_1()
t="und oberste zu prüfende Zeile "
u="45"
Do
a = Inputbox("Spalte "+t+" eingeben, z.B. D"+u, "Leere Zellen füllen")
If a = "" Then Exit Sub
if z=0 then
z = Range(a).Row
If z kleiner 2 Then z = 2
t=""
u=""
end if
s = Range(a).Column
If s kleiner 1 Then s = 1
For i = z To Cells(Rows.Count, s).End(xlUp).Row
If Cells(i, s) = "" Then Cells(i, s) = Cells(i - 1, s)
Next i
Loop Until a = ""
End Sub
zu 2.
Sub Leere_Zellen_füllen_2()
a = Inputbox("Erste Spalte und oberste zu prüfende Zeile eingeben, z.B. D45", "Leere Zellen füllen")
If a = "" Then Exit Sub
z = Range(a).Row
If z kleiner 2 Then z = 2
s = Range(a).Column
If s kleiner 1 Then s = 1
for j=s to activesheet.UsedRange.SpecialCells(xlCellTypeLastCell).column
For i = z To Cells(Rows.Count, j).End(xlUp).Row
If Cells(i, j) = "" Then Cells(i, j) = Cells(i - 1, j)
Next i
next j
End Sub
Ich habe die Makros nicht geprüft.
Gruß
Holger
steffal91 schrieb am 12.05.2009 09:10:03:
Hallo Holger,
deine Lösung ist voll gut, allerdings sollte sich das Programm aus dem Excel-Sheet die letzte gefüllte Zelle heraussuchen und dann bis zu der Zelle hin füllen. Quasi wenn man die Spalte A ab der Zeile 3 füllen möchte und in der Spalte C bis zur Zeile 15 Einträge sind, dass bis dort hin gefüllt wird.
Kann man das irgendwie umsetzen?
Vielen Dank und Liebe Grüße
steffal91
Holger schrieb am 11.05.2009 16:51:11:
Hallo steffal91,
kopieren deine Daten und versuche nachstehendes Makro, wobei vorher die "kleiner" durch die entsprechenden Zeichen zu ersetzen sind:
Sub Leere_Zellen_füllen()
Do
a = Inputbox("Spalte und oberste zu prüfende Zelle eingeben, z.B. D45", "LeeresZellen füllen")
If a = "" Then Exit Sub
z = Range(a).Row
If z kleiner 2 Then z = 2
s = Range(a).Column
If s kleiner 1 Then s = 1
For i = z To Cells(Rows.Count, s).End(xlUp).Row
If Cells(i, s) = "" Then Cells(i, s) = Cells(i - 1, s)
Next i
Loop Until a = ""
End Sub
Gruß
Holger
steffal91 schrieb am 11.05.2009 13:57:02:
Hallo zusammen,
ich habe folgendes Problem in Excel 2003:
In einer Tabelle mit ca. 6000 Zeilen sind einige Zellen aus "Faulheitsgründen" leer. Der damalige Erfasser war wohl zu bequem, die Daten jedesmal einzugeben.
Bsp.:
Name Vorname Strasse Geschlecht
Maier Alfons Alpenweg männlich
x Berta Alpenweg weiblich
x Christa Birnenweg x
Müller Axel Parkstraße männlich
...
Die Felder mit x sind die leeren Zellen.
Das war jetzt natürlich nur ein vereinfachtes Beispiel. Und ich hab auch manchmal Spalten, die ich nicht auffüllen möchte, wenn etwas leer ist. Also sollte man irgendwie abfragen können für welche Spalten es gefüllt werden soll und auch ab welcher Zeile.
Kann mir bitte jemand helfen?
Ein weiteres Problem stellt wohl die Zeit da, da ich bis spätestens Mittwoch eine Lösung bräuchte, weil ich mit den Daten weiterarbeiten muss.
Vielen Dank im Vorraus.
|