Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Unter letzte Zelle Inhalt einfügen

Unter letzte Zelle Inhalt einfügen
Karsten
Hallo,
Ich möchte mittels Makrobefehl unter der letzten Zelle mit Inhalt in Spalte A, D, G, J und M 00:00:00 eintragen lassen. Allerdings nur bis Reihe 10.
Besten Dank für eure Hilfe.
Gruß
Karsten

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Unter letzte Zelle Inhalt einfügen
11.09.2009 09:41:21
fcs
Hallo Karsten,
mein Vorschlag
Mangels Kenntnis deiner Datei hab ich auch die Anpassungen der Exceleinstellungen eingebaut, so dass das Makro nicht unnötig ausgebremst wird.
Gruß
Franz
Sub Zeit_00_00_00()
'Trägt Zeit 00:00:00 in leere Zellen in bestimmte Spalten
Const ZeileMax As Long = 10 'Letzte Zeile in der Eingetragen werden soll
Dim wks As Worksheet, StatusCalculation As Long, StatusEvents As Boolean
Dim Zeit As Date
Dim arrSpalten, intI As Long, Spalte As Long, Zeile As Long
Set wks = ActiveSheet
'Zeit und Spalten festlegen
Zeit = TimeValue("00:00:00")
arrSpalten = Array(1, 4, 7, 10, 13) 'A, D, G, J und M )
'Excel so einstellen, Makroausführung nicht gebremst wird
With Application
.ScreenUpdating = False
StatusCalculation = .Calculation
If StatusCalculation  xlCalculationManual Then
.Calculation = xlCalculationManual
End If
StatusEvents = .EnableEvents
If StatusEvents = True Then
.EnableEvents = False
End If
End With
For intI = LBound(arrSpalten) To UBound(arrSpalten)
Spalte = arrSpalten(intI)
For Zeile = ZeileMax To 1 Step -1
If IsEmpty(wks.Cells(Zeile, Spalte)) Then
wks.Cells(Zeile, Spalte).Value = Zeit
Else
Exit For
End If
Next
Next
'Excel-Einstellungen wieder zurücksetzen
With Application
.ScreenUpdating = True
If StatusCalculation  .Calculation Then
.Calculation = StatusCalculation
End If
If StatusEvents  .EnableEvents Then
.EnableEvents = StatusCalculation
End If
End With
'Objekte und Arrays zurücksetzen
Set wks = Nothing
arrSpalten = Null
End Sub

Anzeige
AW: Unter letzte Zelle Inhalt einfügen
11.09.2009 11:27:35
Karsten
Hallo Franz,
besten Dank. Ich merke, ich hab die Frage nicht korrekt gestellt.
Bei deiner Lösung wird alles unter der letzten Zelle bis Reihe 10 ausgefüllt. Ich bräuchte aber nur eine Zelle darunter diesen Inhalt (00:00:00). Sollte ab Zeile 10 ein Inhalt vorhanden sein, soll in Reihe 11 und darunter nicht 00:00:00 eingetragen werden. Also, alles unter Reihe 10 soll nicht mehr berücksichtigt werden.
Gruß
Karsten
AW: Unter letzte Zelle Inhalt einfügen
11.09.2009 12:03:42
fcs
Hallo karsten,
so ist halt mit Fragen und Antworten, wenn Fragestellung unvollstäng oder falsch :-(
Du muss die Prüfbedingungen in den For-Next-Schleifen wie folgt anpassen.
Gruß
Franz
  For intI = LBound(arrSpalten) To UBound(arrSpalten)
Spalte = arrSpalten(intI)
'Prüfen, ob letzte Zeile - hier ZeileMax=10 - schon ausgefüllt
If IsEmpty(wks.Cells(ZeileMax, Spalte)) Then
For Zeile = ZeileMax To 1 Step -1
'Prüfung ob Zelle in Zeile Leer und Zeile = 1
If IsEmpty(wks.Cells(Zeile, Spalte)) _
And Zeile = 1 Then
wks.Cells(Zeile, Spalte).Value = Zeit
'Prüfung ob Zelle in Zeile Leer und in Zeile oberhalb ausgefüllt
ElseIf IsEmpty(wks.Cells(Zeile, Spalte)) _
And Not IsEmpty(wks.Cells(Zeile - 1, Spalte)) Then
wks.Cells(Zeile, Spalte).Value = Zeit
Exit For
End If
Next
End If
Next

Anzeige
AW: Unter letzte Zelle Inhalt einfügen
11.09.2009 12:22:07
Karsten
Hallo Franz,
bei:
For intI = LBound(arrSpalten) To UBound(arrSpalten)
komt die Fehlermeldung "Typen unverträglich".
Gruß
Karsten
AW: Unter letzte Zelle Inhalt einfügen
11.09.2009 12:30:20
Karsten
Hallo Franz,
hab es kapiert. Ich muss das ja auswechseln. Geht auch meiner Fragestellung endsprechend.
Nur, wenn schon 00:00:00 drin steht, möchte ich es nicht noch ein zweites oder drittes Mal darunter.
Geht das noch zu machen?
Danke.
Gruß
karsten
AW: Unter letzte Zelle Inhalt einfügen
11.09.2009 14:44:37
fcs
Hallo karsten,
dann muss halt vor dem Eintragen nochmals auf den Wert 0 in der Zeiel oben drüber geprüft werden.
Gruß
Franz
  For intI = LBound(arrSpalten) To UBound(arrSpalten)
Spalte = arrSpalten(intI)
'Prüfen, ob letzte Zeile - hier ZeileMax=10 - schon ausgefüllt
If IsEmpty(wks.Cells(ZeileMax, Spalte)) Then
For Zeile = ZeileMax To 1 Step -1
'Prüfung ob Zelle in Zeile Leer und Zeile = 1
If IsEmpty(wks.Cells(Zeile, Spalte)) _
And Zeile = 1 Then
wks.Cells(Zeile, Spalte).Value = Zeit
'Prüfung ob Zelle in Zeile Leer und in Zeile oberhalb ausgefüllt
ElseIf IsEmpty(wks.Cells(Zeile, Spalte)) _
And Not IsEmpty(wks.Cells(Zeile - 1, Spalte)) Then
'Prüfung ob schon 00:00:00 in Zelle steht
If wks.Cells(Zeile - 1, Spalte) = 0 Then
Exit For
Else
wks.Cells(Zeile, Spalte).Value = Zeit
Exit For
End If
End If
Next
End If
Next

Anzeige
AW: Unter letzte Zelle Inhalt einfügen
11.09.2009 20:59:19
Karsten
Hallo Franz,
Besten Dank für die Mühe.
Gruß
Karsten

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige