Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

letzte Zeile plus 1 farbig und mit String versehen

Forumthread: letzte Zeile plus 1 farbig und mit String versehen

letzte Zeile plus 1 farbig und mit String versehen
14.12.2012 10:05:24
Pascal
Guten Tag
Ich habe in einer Excel Workbook folgenden Code:
Sub Beispiel_letzte_beschriebene_Zeile()
Dim LRow As Long
Dim MyDatStrg As String
Dim Zelle As String
On Error Resume Next
MyDatStrg = InputBox("Bitte Kalenderwoche eingeben", "Kalenderwoche")
With ThisWorkbook.Worksheets("Woche")
LRow = Cells.Find("*", , xlValues, xlWhole, xlByRows, xlPrevious, False, False).Row
LRow = Application.Max(LRow, Cells.Find("*", , xlFormulas, xlWhole, xlByRows,  _
xlPrevious).Row)
If LRow = 0 Then LRow = 1
On Error GoTo 0
Zelle = "A" & LRow + 1 & """"
Sheets("Woche").Range(Zelle).Text = MyDatStrg
End With
End Sub

Damit will ich bewirken, dass auf dem Sheet "Woche" die letzte gefüllte Zeile gefunden wird.
die nächste freie Zeile soll mittels Text (kalenderwoche ab Inputbox) gefüllt werden und dann grün markiert werden.
Doch leider erhalte ich mit dem obigen Code immer einen Fehler 1004
was mach ich falsch ?
Danke für die Hilfe

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: letzte Zeile plus 1 farbig und mit String versehen
14.12.2012 10:38:57
Mäxl
Hi,
Sub Beispiel_letzte_beschriebene_Zeile()
Dim MyDatStrg As String 'oder sollte das nicht Byte oder Int sein?
MyDatStrg = InputBox("Bitte Kalenderwoche eingeben", "Kalenderwoche")
With ThisWorkbook.Worksheets("Woche")
.Cells(Rows.Count, 1).End(xlUp).Offset(Abs((.[a1]  "")) * 1, 0).Value = MyDatStrg
End With
End Sub

Anzeige
AW: letzte Zeile plus 1 farbig und mit String versehen
14.12.2012 11:36:57
Pascal
Hallo Mäxi
habe Deinen Code gleich probiert.
Geht leider auch ned :-(
Fehlermeldung: Index ausserhalb gültiger Bereich

AW: letzte Zeile plus 1 farbig und mit String versehen
14.12.2012 11:44:49
Pascal
Ach ich Depp !
hatte Deinen Code nicht ganz genau abgeschrieben.
Jetzt läuft Dein obiger Code einwandfrei :-)
doch ... wie ergänz ich nun noch, dass die ganze Zeile (also die Zeile, in welche der String aus MyDatStrg geschrieben wird) gleichzeitig noch farblich hervorgehoben wird ? (z.B. grün ausgefüllte Zellen)

Anzeige
AW: letzte Zeile plus 1 farbig und mit String versehen
14.12.2012 11:59:13
Mäxl
Hi,
abgeschrieben?
kopieren wäre besser ;), ich tippe mal dein Blatt hat nicht Woche geheißen.
Sub Beispiel_letzte_beschriebene_Zeile()
Dim MyDatStrg As String 'oder sollte das nicht Byte oder Int sein?
MyDatStrg = InputBox("Bitte Kalenderwoche eingeben", "Kalenderwoche")
With ThisWorkbook.Worksheets("Woche")
.Cells(Rows.Count, 1).End(xlUp).Offset(Abs((.[a1]  "")) * 1, 0).Value = MyDatStrg
.Cells(Rows.Count, 1).End(xlUp).EntireRow.Interior.Color = vbGreen
End With
End Sub
nur sollte bei Neuem Eintrag das Grün wieder raus?
oder nicht?
Wenn ja musst Du oder jemand Anderer weiterhelfen, ich bin jetzt im WE
gruß
Chris

Anzeige
AW: letzte Zeile plus 1 farbig und mit String versehen
14.12.2012 12:48:12
Pascal
Beim Abtippen hab ich Woch geschrieben statt Woche
(hatte den e vergessen)
Habe abgeschrieben, da das Kopieren nicht geklappt hatte
Schönes WE ! und vielen Dank nochmals !
;
Anzeige
Anzeige

Infobox / Tutorial

Letzte Zeile plus 1 farbig und mit String in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues oder öffne ein bestehendes Workbook. Stelle sicher, dass auf einem der Blätter der Name "Woche" verwendet wird.

  2. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Klicke im Projektfenster auf Einfügen und wähle Modul.

  4. Kopiere den folgenden Code in das Modul:

    Sub Beispiel_letzte_beschriebene_Zeile()
       Dim MyDatStrg As String
       MyDatStrg = InputBox("Bitte Kalenderwoche eingeben", "Kalenderwoche")
       With ThisWorkbook.Worksheets("Woche")
           .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = MyDatStrg
           .Cells(Rows.Count, 1).End(xlUp).EntireRow.Interior.Color = vbGreen
       End With
    End Sub
  5. Schließe den VBA-Editor und kehre zu deinem Excel-Blatt zurück.

  6. Führe das Makro aus: Drücke ALT + F8, wähle Beispiel_letzte_beschriebene_Zeile und klicke auf Ausführen.

  7. Gib die Kalenderwoche in das Eingabefeld ein, das erscheint, und bestätige mit OK. Die nächste freie Zeile wird nun mit dem eingegebenen Wert gefüllt und grün markiert.


Häufige Fehler und Lösungen

  • Fehler 1004: "Index außerhalb des gültigen Bereichs"

    • Ursache: Der Blattname "Woche" stimmt nicht mit dem überein, das in deinem Workbook existiert. Überprüfe den Namen des Arbeitsblatts.
  • Falsche Farbmarkierung: Wenn die Zelle nicht grün markiert wird, stelle sicher, dass die Zeile tatsächlich gefüllt wurde, bevor die Farbe angewendet wird.

  • Eingabefeld wird nicht angezeigt: Überprüfe, ob VBA in deinen Excel-Einstellungen aktiviert ist.


Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die Excel-Funktionen nutzen:

  • Formeln: Verwende die Funktion =MAX(A:A)+1 in einer Zelle, um die nächste freie Zeile zu berechnen.

  • Bedingte Formatierung: Markiere die Zeile manuell und benutze die bedingte Formatierung, um die Farbe zu ändern.


Praktische Beispiele

Angenommen, du hast bereits Werte in den Zellen A1 bis A5:

  • Wenn du die Kalenderwoche "12" eingibst, wird der Wert in Zelle A6 erscheinen und die gesamte Zeile wird grün hinterlegt.

  • Wenn du die Kalenderwoche "13" eingibst, wird der Wert in Zelle A7 erscheinen, und auch diese Zeile wird grün markiert.


Tipps für Profis

  • Optimierung des Codes: Du kannst den Code optimieren, indem du zusätzliche Fehlerbehandlungsroutinen hinzufügst, um die Benutzerfreundlichkeit zu erhöhen.

  • Dynamische Farbauswahl: Anstatt die Farbe hart zu kodieren, kannst du eine Inputbox hinzufügen, um die gewünschte Farbe auszuwählen.

  • Schutz der Zellen: Überlege, ob du die Zellen schützen möchtest, um versehentliche Änderungen zu verhindern.


FAQ: Häufige Fragen

1. Kann ich den Code auch für andere Spalten verwenden? Ja, du kannst die Spalte in .Cells(Rows.Count, 1) ändern, um eine andere Spalte zu verwenden.

2. Wie kann ich die Farbmarkierung entfernen? Um die Farbmarkierung zu entfernen, kannst du .Interior.ColorIndex = xlNone verwenden, um die Hintergrundfarbe auf Standard zurückzusetzen.

3. Funktioniert dieser Code in Excel 365? Ja, dieser Code sollte in Excel 365 sowie in anderen Versionen von Excel VBA funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige