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

Autofill / Inhalt übernehmen

Autofill / Inhalt übernehmen
jo_cindy
Hab da ein Problem bei der Erstellung eines Makros über VBA. Ich möchte, dass in Spalte A (Inhalt sind Namen) die leeren Zellen immer mit dem Inhalt aus der Vorzelle ausgefüllt werden. Dabei ist die Anzahl der Zeilen variabel.
Aus dem Archiv habe ich folgende Formel gefunden:
Range("a:a").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
Der Name in Spalte A kommt untereinander mehrfach vor (es handelt sich um Teilergebnisse). Nun wird wohl immer der Wert aus der Zelle übernommen, bis ein neuer Name gefunden wird. Da am Ende aber kein neuer Name folgt, werden 88 Zeilen in Spalte A mit dem letzten Namen gefüllt.
Wie muss ich die Formel verändern, das wirklich nur die Leerfelder gefüllt werden. Wenn also das letzte gefüllte Feld erreicht ist in Spalte A, dann folgen ja nur noch Leerfelder?! Da darf die Formel dann nicht mehr greifen.
Ich hoffe, ich konnte mich verständlich ausdrücken,
danke für Hilfe, Jo

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Autofill / Inhalt übernehmen
08.06.2010 14:02:15
Hajo_Zi
Hallo Jo,
ich habe den Code getestet und es wird nur bis zur letzten gefüllten Zelle in Spalte A ausgefüllt.
Gruß Hajo
AW: Autofill / Inhalt übernehmen
09.06.2010 07:43:05
jo_cindy
Ich lade mal meine Datei hoch, in der ich das Makro geschrieben habe und die Datei, wo es in der Umsetzung nicht funktioniert. Kannst du mal nachschauen, warum es bei mir nicht geht?
In dem Makro sind noch zwei Fehlermeldungen, die werde ich noch unterdrücken.
Danke, Jo
Makro https://www.herber.de/bbs/user/69963.xls
Testdatei https://www.herber.de/bbs/user/69964.xls
Anzeige
AW: Autofill / Inhalt übernehmen
09.06.2010 08:05:47
Hajo_Zi
Hallon J,
in Deiner Testdatei sind doch alle Zelle in Spalte A gefüllt. Der Code löst wohl nur ein Fehler aus da keine leere Zelle. Ich habe den jetzt nicht gesucht.
Gruß Hajo
AW: Autofill / Inhalt übernehmen
09.06.2010 08:38:00
jo_cindy
Hi Hajo,
das ist richtig, es sind alle Zeilen gefüllt. Über das Makro werden noch weitere Funktionen ausgeführt, u.a. das Bilden von Teilsummen. Dabei entstehen die leeren Felder und dafür benötige ich die Autofill Funktion. Hast du das Makro für die Testdatei mal gestartet?
AW: Autofill / Inhalt übernehmen
09.06.2010 08:40:46
Hajo_Zi
Hallo Jo,
in der Datei war kein Modul und darum konnte ich auch kein Makro starten. Der vorhanden Code sind Ereignisse in der Tabelle.

Anzeige
AW: Autofill / Inhalt übernehmen
09.06.2010 12:05:28
jo_cindy
Hi Hajo,
habe das Modul jetzt eingebunden. Wäre super, wenn du dir das mal ansehen kannst.
DANKE!
https://www.herber.de/bbs/user/69974.xls
AW: Autofill / Inhalt übernehmen
09.06.2010 12:49:39
Hajo_Zi
Hallo Jo,
das ist mir zu aufwendig mich da durchzuarbeiten. Ich habe hier auch nicht Version 2007.
Auf select kann in VBA verzichtet werden zu 99,9%. Die Befehle für 2007 habe ich mal auskommentierrt.
Sub Grandt()
With Cells.Font
.Name = "Arial"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
'        .TintAndShade = 0
'        .ThemeFont = xlThemeFontNone
End With
Cells.EntireColumn.AutoFit
Columns("I:I").Cut
Columns("B:B").Insert Shift:=xlToRight
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Tabelle1").Name = "Tarifübersicht"
With Range("A1")
.Value = "Lager"
With .Characters(Start:=1, Length:=5).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
'            .TintAndShade = 0
'            .ThemeFont = xlThemeFontNone
End With
End With
Range("B1") = "13.43"
Columns("B:B").NumberFormat = "#,##0.00 $"
With Range("A2")
.Value = "Laborant"
With .Characters(Start:=1, Length:=8).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
'            .TintAndShade = 0
'            .ThemeFont = xlThemeFontNone
End With
End With
Range("B2") = "18"
With Range("A3")
.Value = "Fachhilfskraft Labor"
With .Characters(Start:=1, Length:=20).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
'            .TintAndShade = 0
'            .ThemeFont = xlThemeFontNone
End With
End With
Range("B3") = "15.25"
Range("A2") = "Sachberarbeiter"
Range("B2") = "24.9"
Columns("A:A").EntireColumn.AutoFit
With Sheets("Buchungsübersicht")
.Range("O2").FormulaR1C1 = _
"=IF(RC[-14]="""","""",VLOOKUP(LEFT(RC[-11],5)&""*"",Tarifübersicht!C[-14]:C[-13],2, _
FALSE))"
.Range("O2").AutoFill .Range("O2:O" & .Cells(.Rows.Count, "A").End(xlUp).Row)
.Range("O1") = "Tarif"
.Range("P1") = "Tarif * h"
.Range("Q1") = "Nacht"
.Range("R1") = "Samstag"
.Range("S1") = "Sonntag"
.Range("T1") = "Mehrarbeit"
.Range("U1") = "Gesamt"
With .Range("O1:U1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
'            .ThemeColor = xlThemeColorAccent4
'            .TintAndShade = 0.599993896298105
'            .PatternTintAndShade = 0
End With
.Columns("O:U").NumberFormat = "#,##0.00 $"
.Range("P2").FormulaR1C1 = "=RC[-1]*RC[-8]"
.Range("p2").AutoFill .Range("p2:p" & .Cells(.Rows.Count, "A").End(xlUp).Row)
.Range("R2").FormulaR1C1 = "=IF(RC[-7]="""",0,RC[-7]*(RC[-3]*0.25))"
.Range("r2").AutoFill .Range("r2:r" & .Cells(.Rows.Count, "A").End(xlUp).Row)
.Range("S2").FormulaR1C1 = "=IF(RC[-7]="""",0,RC[-7]*(RC[-4]*0.25))"
.Range("s2").AutoFill .Range("s2:s" & .Cells(.Rows.Count, "A").End(xlUp).Row)
.Range("Q2").FormulaR1C1 = "=IF(RC[-7]=0,0,RC[-7]*(RC[-2]*0.25))"
.Range("q2").AutoFill .Range("q2:q" & .Cells(.Rows.Count, "A").End(xlUp).Row)
.Range("T2") = ""
.Range("U2").FormulaR1C1 = "=RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1]"
.Range("u2").AutoFill .Range("u2:u" & .Cells(.Rows.Count, "A").End(xlUp).Row)
.Cells.Subtotal GroupBy:=3, Function:=xlSum, TotalList:=Array(8, 10, 11, _
12, 13, 17, 18, 19, 20, 21), Replace:=True, PageBreaks:=False, SummaryBelowData _
:=True
.Columns("D:G").Columns.Group
.Cells.Subtotal GroupBy:=3, Function:=xlSum, TotalList:=Array(8, 10, 11, _
12, 13, 17, 18, 19, 20, 21), Replace:=True, PageBreaks:=False, SummaryBelowData _
:=True
.Columns("D:G").Columns.Group
Sheets.Add After:=Sheets(Sheets.Count)
.Columns("A:U").Copy Range("A1")
End With
With Sheets("Tabelle2")
.Name = "Mehrarbeit"
'        .Cells.RemoveSubtotal
With .Columns("M:M")
.Delete Shift:=xlToLeft
'            .Delete Shift:=xlToLeft
End With
.Columns("N:S").Delete Shift:=xlToLeft
.Range("N2").FormulaR1C1 = "=IF(RC[-6]>8,(RC[-6]-8)*RC[-1]*0.25,"""")"
.Range("N1").FormulaR1C1 = "Mehrarbeit"
.Columns("N:N").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
With .Range("O1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
'            .ThemeColor = xlThemeColorAccent4
'            .TintAndShade = 0.599993896298105
'            .PatternTintAndShade = 0
End With
.Range("N1").FormulaR1C1 = "> 8h"
.Range("N2").FormulaR1C1 = "=IF(RC[-6]>8,RC[-6]-8,"""")"
.Columns("N:N").EntireColumn.AutoFit
.Columns("O:O").NumberFormat = "#,##0.00 $"
.Columns("F:G").EntireColumn.Hidden = True
.Columns("C:D").EntireColumn.Hidden = True
.Columns("I:I").EntireColumn.Hidden = True
.Range("n2").AutoFill .Range("n2:n" & .Cells(.Rows.Count, "A").End(xlUp).Row)
.Range("O2").AutoFill .Range("O2:O" & .Cells(.Rows.Count, "A").End(xlUp).Row)
With .Range("O2").CurrentRegion
.Subtotal GroupBy:=5, Function:=xlSum, TotalList:=Array(8), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End With
.Columns("N:N").NumberFormat = "#,##0.00"
With .Columns("O:O").Font
.Name = "Arial"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
'            .TintAndShade = 0
'            .ThemeFont = xlThemeFontNone
End With
.Columns("O:O").EntireColumn.AutoFit
.Columns("N:N").EntireColumn.AutoFit
.Range("a:a").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
End With
End Sub
Gruß Hajo
Anzeige
AW: Autofill / Inhalt übernehmen
09.06.2010 13:13:39
jo_cindy
Hallo Hajo,
vielen Dank für deine Unterstützung. Ich bekomme es nicht weg und hoffe auf weitere Unterstützung, werde mir das Makro aber auch noch einmal stufenweise aufbauen.
Danke, Jo
AW: Autofill / Inhalt übernehmen
10.06.2010 13:26:38
jo_cindy
Hi Hajo,
ich bekomme es nicht hin. Habe die Funktionen mal auf zwei reduziert. Teilergebnis und Autofill. Wie du siehst, hat auch in dieser Tabelle die Autofillfunktion zu weit "gearbeitet". Die Zeile 536 ist nicht mehr zu füllen, die letzte ist Zeile 535. In meinem anderen Makro füllt die Funktion weitere 89 Zeilen, warum so viele weiß ich auch nicht. Aber kann man der Funktion nicht mitgeben, dass wenn in Spalte B nach einer Leerzeile kein Wert mehr kommt, dass dann die Autofillfunktion in Spalte A stoppt? Es kommen immer nur maximal eine Leerzeile vor, nie mehr. Oder vielleicht, wenn in Spalte A kein Wert und in der nächsten Zeile von Spalte A kein Wert, dann nicht ausfüllen, sonst den Wert aus der Vorzeile nehmen.
Ich freue mich, wenn du mir helfen kannst.
Gruß, Jo
https://www.herber.de/bbs/user/69989.xls
Anzeige
AW: Autofill / Inhalt übernehmen
11.06.2010 10:47:50
jo_cindy
..vielleicht ist dieser Beitrag mit den Uploads "abschreckend". Deshalb mache ich für meine Frage einen neuen auf.
Danke, bis dahin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige