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

Forumthread: Wenn Zelle belegt, dann Eintrag i.d. nächste Zelle

Wenn Zelle belegt, dann Eintrag i.d. nächste Zelle
05.05.2008 14:29:00
Josef
Hallo!
Wenn ich in der Userform "SUBKAP" in der TextBox "subtxt10" einen Eintrag bestätige, so wird der Wert aus der "subtxt1" im Tabellenblatt wks2 unter "H2" eingetragen, wenn "H2" noch leer war.
Ist jedoch unter "H2" bereits ein Wert eingetragen, so soll der nächste Wert in die nächste freie Zelle in der Spalte H eingetragen werden.
Leider schaffe ich nur den ersten Teil. Beim 2. Teil habe ich im Code einen Fehler gemacht. Was habe ich hier bitte falsch gemacht?
Danke
Josef

Private Sub subtxt10_AfterUpdate()
Dim bereich As Range
Dim wks2 As Worksheet
Set wks2 = Workbooks("Masterfile.xls").Worksheets("Kapitel Neu (1)")
Set bereich = wks2.Range("H3:H2000")
With bereich
.Clear
End With
If wks2.Range("H2").Value = False Then
wks2.Range("H2") = SUBKAP.subtxt1.Text
Else
If wks2.Range("H2").Value = True Then
wks2.Range("h65536").End(xlUp).Offset(1, 0).Value = SUBKAP.subtxt1.Text
End If
End If
Call Speichern_SUBKAP
End Sub


Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Zelle belegt, dann Eintrag i.d. nächste Z
05.05.2008 14:37:00
Rudi
Hallo,

If wks2.Range("H2").Value = ""Then
wks2.Range("H2") = SUBKAP.subtxt1.Text
Else
wks2.Range("h65536").End(xlUp).Offset(1, 0).Value = SUBKAP.subtxt1.Text
End If


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Wenn Zelle belegt, dann Eintrag i.d. nächste Z
05.05.2008 14:44:32
Renee
Hi Josef,
Da ist ein Haufen überflüssig:

Private Sub subtxt10_AfterUpdate()
Dim wks2 As Worksheet
Set wks2 = Workbooks("Masterfile.xls").Worksheets("Kapitel Neu (1)")
wks2.Range("H3:H2000").Clear
wks2.Range("H" & wks2.Range("H" & wks2.Rows.Count).End(xlUp).Row + 1).Value = _
SUBKAP.subtxt1.Text
Call Speichern_SUBKAP
Exit Sub


GreetZ Renée

Anzeige
AW: Wenn Zelle belegt, dann Eintrag i.d. nächste Z
05.05.2008 15:03:00
Josef
Hallo Renee!
auch an Dich ein Dankeschön für die Hilfe.
Josef

AW: Wenn Zelle belegt, dann Eintrag i.d. nächste Z
05.05.2008 14:46:00
Josef
Hallo Rudi!
Danke für Deine Antwort und Deine Hilfe. Jetzt klappt es.
Josef
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Eintrag in die nächste freie Zelle in Excel


Schritt-für-Schritt-Anleitung

Um den gewünschten Eintrag in die nächste freie Zelle in Excel zu realisieren, kannst du den folgenden VBA-Code verwenden. Dieser Code stellt sicher, dass der Wert aus der TextBox "subtxt1" in die nächste freie Zelle in der Spalte H eingetragen wird, wenn "H2" bereits belegt ist.

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge den folgenden Code in das entsprechende UserForm oder Modul ein:
Private Sub subtxt10_AfterUpdate()
    Dim wks2 As Worksheet
    Set wks2 = Workbooks("Masterfile.xls").Worksheets("Kapitel Neu (1)")

    ' Löscht den Inhalt von H3 bis H2000
    wks2.Range("H3:H2000").Clear

    ' Eintrag in die nächste freie Zelle in Spalte H
    wks2.Range("H" & wks2.Range("H" & wks2.Rows.Count).End(xlUp).Row + 1).Value = SUBKAP.subtxt1.Text

    Call Speichern_SUBKAP
End Sub
  1. Schließe den VBA-Editor und teste die Funktionalität in deiner Userform.

Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"

    • Lösung: Stelle sicher, dass die TextBox "subtxt1" den richtigen Datentyp hat (z.B. String).
  • Fehler: "Sub oder Function nicht gefunden"

    • Lösung: Überprüfe, ob die Funktion Speichern_SUBKAP korrekt definiert ist.
  • Fehler: Der Wert wird nicht in die nächste freie Zelle eingetragen

    • Lösung: Achte darauf, dass die Spalte H nicht durch andere Werte blockiert ist. Der Code sucht nach der letzten nicht leeren Zelle.

Alternative Methoden

Eine alternative Methode, um den Eintrag in die nächste freie Zelle zu implementieren, ist die Verwendung einer Excel-Formel oder eines Makros ohne VBA. Du könntest zum Beispiel eine Schaltfläche in Excel erstellen, die ein Makro aufruft, das den gleichen Effekt erzielt.


Praktische Beispiele

Angenommen, du hast in deiner Userform einen Button, der den Eintrag aus der TextBox "subtxt1" in die Spalte H einfügt. Wenn du den Button drückst, wird der Wert in die nächste freie Zelle in der Spalte H eingetragen. Wenn "H2" leer ist, wird der Wert dort eingetragen.

Ein Beispiel für das Einfügen in die Userform könnte so aussehen:

Private Sub btnEintragen_Click()
    Call subtxt10_AfterUpdate
End Sub

Tipps für Profis

  • Verwendung von Named Ranges: Überlege, ob du benannte Bereiche für deine Zellen verwenden möchtest, um deinen Code lesbarer zu machen.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem VBA-Code, um mögliche Laufzeitfehler abzufangen.
  • Optimierung: Vermeide das häufige Löschen von Zelleninhalten, wenn es nicht nötig ist. Das kann die Performance deines Codes verbessern.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Code auch mit anderen Excel-Versionen funktioniert? Der Code sollte in den meisten aktuellen Excel-Versionen (ab Excel 2007) funktionieren. Achte darauf, dass du die richtigen Objekte und Methoden verwendest.

2. Was mache ich, wenn ich mehr als eine TextBox habe? Du kannst die Logik für jede TextBox ähnlich implementieren, indem du den Wert in die nächste freie Zelle einfügst, abhängig von der jeweiligen TextBox.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige