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

Forumthread: nicht ActiveSheet , sondern Tabellenblatt "Daten"

nicht ActiveSheet , sondern Tabellenblatt "Daten"
29.01.2009 11:40:30
TomTom
Hi,
ich habe folgenden Code:
Dim ii As Long
ii = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
If ii ii = 11
Cells(ii, 1) = TextBox1.Value 'Spalte A
Cells(ii, 2) = TextBox2.Value 'Spalte B
End If
If ii >= 12 Then
Cells(ii, 1) = TextBox1.Value 'Spalte A
Cells(ii, 2) = TextBox2.Value 'Spalte B
End If
Das kopieren soll aber nicht im ActiveSheet, sondern im Tabellenblatt "Daten" ausgeführt werden.
Wie ändere ich das denn ?
Danke
Tom
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: nicht ActiveSheet , sondern Tabellenblatt "Daten"
Ramses
Hallo
Das sollte so gehen
Dim ii As Long
With Worksheets("Daten")
ii = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
If ii ii = 11
.Cells(ii, 1) = TextBox1.Value 'Spalte A
.Cells(ii, 2) = TextBox2.Value 'Spalte B
End If
If ii >= 12 Then
.Cells(ii, 1) = TextBox1.Value 'Spalte A
.Cells(ii, 2) = TextBox2.Value 'Spalte B
End If
End With
Gruss Rainer
Anzeige
AW: nicht ActiveSheet , sondern Tabellenblatt "Daten"
29.01.2009 12:40:56
TomTom
Hallo Reiner,
ja , danke geht nun. Vielleicht noch eine Frage:
es betrifft die Zeile: Cells(ii, 2) = TextBox2.Value
Wie kann ich denn in einer bestimmten Abhängigkeit die Zahl "2" um eines erhöhen.
Beispiel: Ich habe eine Textbox5. wenn die leer ist , sol die zeile so aussehen:
Cells(ii, 2) = TextBox2.Value
steht in Textbox5 "VOLL" drin, dann soll die Zeilen so aussehen
Cells(ii, 3) = TextBox2.Value
Wenn Textbox5 leer ist, soll der Eintrag nach Spalte 2 , wenn "VOLL" drin steht, nach Spalte 3
Geht sowas ?
Danke Tom
Anzeige
AW: nicht ActiveSheet , sondern Tabellenblatt "Daten"
29.01.2009 13:04:43
D.Saster
Hallo,
Cells(ii, 2-(Textbox5 = "VOLL") = TextBox2.Value
Gruß
Dierk
Danke, geht oT
29.01.2009 13:19:41
TomTom
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

ActiveSheet in Excel VBA auf ein bestimmtes Tabellenblatt setzen


Schritt-für-Schritt-Anleitung

Um im Excel VBA das ActiveSheet auf ein bestimmtes Tabellenblatt, wie beispielsweise "Daten", zu setzen, kannst du folgenden Code verwenden:

Dim ii As Long
With Worksheets("Daten")
    ii = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    If ii < 11 Then
        .Cells(ii, 1) = TextBox1.Value   'Spalte A
        .Cells(ii, 2) = TextBox2.Value   'Spalte B
    End If
    If ii >= 12 Then
        .Cells(ii, 1) = TextBox1.Value   'Spalte A
        .Cells(ii, 2) = TextBox2.Value   'Spalte B
    End If
End With

Hierbei wird das ActiveSheet nicht mehr benötigt, da du direkt mit dem spezifischen Arbeitsblatt "Daten" arbeitest. Achte darauf, dass du den Namen des Arbeitsblattes korrekt angibst.


Häufige Fehler und Lösungen

  1. Fehler: "Objekt nicht gefunden"

    • Lösung: Überprüfe, ob das Tabellenblatt "Daten" tatsächlich existiert und richtig benannt ist.
  2. Fehler: "Typen unverträglich"

    • Lösung: Stelle sicher, dass die TextBoxen korrekt initialisiert sind und Werte enthalten, die in die Zellen geschrieben werden können.

Alternative Methoden

Statt With Worksheets("Daten") kannst du auch die folgende Methode verwenden, um auf das Tabellenblatt zuzugreifen:

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Daten")
ii = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1

Diese Methode ermöglicht es, das Arbeitsblatt in einer Variablen zu speichern und mehrfach darauf zuzugreifen, was den Code leserlicher macht.


Praktische Beispiele

Wenn du den Wert einer TextBox abhängig von einer anderen TextBox in eine bestimmte Spalte schreiben möchtest, kannst du folgenden Code verwenden:

If TextBox5.Value = "VOLL" Then
    .Cells(ii, 3) = TextBox2.Value   ' Spalte 3
Else
    .Cells(ii, 2) = TextBox2.Value   ' Spalte 2
End If

Dieser Code prüft, ob TextBox5 den Wert "VOLL" hat. Wenn ja, wird der Wert von TextBox2 in Spalte 3 geschrieben, andernfalls in Spalte 2.


Tipps für Profis

  • Nutze die Option Explicit Anweisung am Anfang deines Moduls. Dadurch wirst du gezwungen, alle Variablen zu deklarieren, was Fehler verhindert.
  • Verwende Fehlerbehandlung (On Error Resume Next oder On Error GoTo Fehlerbehandlung) für eine robustere Programmierung.
  • Experimentiere mit ActiveSheet in Kombination mit Select und Activate, um ein besseres Verständnis für die Funktionsweise der Excel-Oberfläche zu entwickeln.

FAQ: Häufige Fragen

1. Wie kann ich das ActiveSheet in Excel VBA ändern? Um das ActiveSheet in Excel VBA zu ändern, musst du es explizit angeben, indem du den Namen des gewünschten Arbeitsblattes verwendest, wie in den obigen Beispielen gezeigt.

2. Was passiert, wenn das Tabellenblatt "Daten" nicht existiert? Wenn das Tabellenblatt nicht existiert, wird ein Laufzeitfehler auftreten. Stelle sicher, dass du den Namen korrekt schreibst und das Blatt existiert.

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