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

string in Zelle schreiben

Forumthread: string in Zelle schreiben

string in Zelle schreiben
19.02.2003 16:03:32
Matthias H.
Hallo,

ich habe in einer UserForm u1 als String definiert. Mit select case frage ich eine ComboBox nach diesem String ab. Wenn Case=true, soll ein Arbeitsblatt gewählt, und der Inhalt der Zelle A2 mit der Variablen beschrieben werden:

Select Case ComboBox1.Text
Case u1
Unload Me
Sheets("U1").Select
Cells(1, 2) = u1

Die Zelle wird aber nicht beschrieben, nur wenn ich statt

Cells(1, 2) = u1
z.B.
Cells(1, 2) = "Variable"

eingebe. Woran könnte das liegen?

Gruß
Matthias

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: string in Zelle schreiben
19.02.2003 16:08:04
Nepumuk

Hallo Matthias,
steht denn in der Variablen was drin? Wo wird die Variable dimensioniert?
Gruß
Nepumuk

Re: string in Zelle schreiben
19.02.2003 16:15:24
Matthias H.

Hallo Nepomuk,

die Variable wird am Anfang der UF als String definiert, und in der
Private Sub UserForm_Initialize()
mit "Wert" belegt.

Gruß Matthias

Anzeige
Re: string in Zelle schreiben
19.02.2003 16:22:26
Nepumuk

Hallo Matthias,
das Problem ist, dass duch den Befehl Unload Me die Variable ihre Gültigkeit verliert. Also das zurückschreiben in die Zelle vor der Unload-Anweisung oder die Variable in einem modul als Public deklarieren.
Gruß
Nepumuk

Re: string in Zelle schreiben
19.02.2003 16:34:25
Matthias H.

Hallo Nepomuk,

wenn ich den code so ändere:

Select Case ComboBox1.Text
Case u1
Sheets("U1").Select
Cells(1, 2) = u1
Unload Me

daß unload am Ende steht, klappt es zwar, sieht aber nicht so schön aus, weil zuerst das Blatt "u1" aufgerufen, und dann die UF geschlossen wird.

wenn ich statt

Dim u1, u2, u3 As String

jetzt

Public u1, u2, u3 As String

an den Anfang des Moduls schreibe, wird trotzdem der Wert von u1 nicht in die Zelle A2 des Blattes "u1" geschrieben. ist die Syntax falsch, oder muß ich Public Variablen in einem modul definieren?

Gruß Matthias

Anzeige
Re: string in Zelle schreiben
19.02.2003 16:38:33
Nepumuk

Hallo Matthias,
1.
du kannst in Excel auf select verzichten. Schreib es einfach so:

Select Case ComboBox1.Text
Case u1
Sheets("U1").Cells(1, 2) = u1
Unload Me

2.
Eine Public Anweisung funktioniert nur in einem "normalen" modul.

Gruß
Nepumuk

Re: string in Zelle schreiben
19.02.2003 16:46:15
Matthias H.

Hallo Nepomuk,

ich habe Deinen Code etwas ergänzt:

Select Case ComboBox1.Text
Case u1
Sheets("U1").Cells(1, 2) = u1
Unload Me
Sheets("U1").Select

da ich ja nicht nur den Zellinhalt ändern will, sondern auch das Blatt aufrufen will.

Jetzt funktioniert es. Vielen Dank für die Hilfe.

Gruß Matthias

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

String in Zelle Schreiben mit VBA


Schritt-für-Schritt-Anleitung

  1. Variable definieren: Stelle sicher, dass du die Variable als String definierst. Das kannst du in der UserForm tun:

    Dim u1 As String
  2. Wert zuweisen: Setze den Wert der Variable in der UserForm_Initialize() Methode:

    Private Sub UserForm_Initialize()
        u1 = "Dein Text"
    End Sub
  3. Zelle beschreiben: Verwende den folgenden Code, um den Text in die Zelle zu schreiben:

    Select Case ComboBox1.Text
        Case u1
            Sheets("U1").Cells(1, 2).Value = u1
            Unload Me
    End Select
  4. Fehler vermeiden: Achte darauf, dass der Unload Me Befehl nicht vor dem Schreiben in die Zelle aufgerufen wird, da die Variable sonst ihre Gültigkeit verliert.


Häufige Fehler und Lösungen

  • Fehler: Zelle bleibt leer: Dies passiert oft, wenn der Unload Me Befehl vor dem Schreiben in die Zelle ausgeführt wird. Stelle sicher, dass du den Code in der richtigen Reihenfolge ausführst.

  • Lösung: Verschiebe den Unload Me Befehl ans Ende der Select Case Struktur, um sicherzustellen, dass der Wert zuerst in die Zelle geschrieben wird.

  • Fehler: Variable nicht definiert: Wenn die Variable nicht korrekt deklariert oder initialisiert ist, wird der Zellinhalt leer bleiben. Stelle sicher, dass die Variable in der UserForm korrekt initialisiert wird.


Alternative Methoden

Du kannst auch anstelle der Select Case Struktur die If-Anweisung verwenden, um den Text in die Zelle zu schreiben:

If ComboBox1.Text = u1 Then
    Sheets("U1").Cells(1, 2).Value = u1
    Unload Me
End If

Diese Methode kann in manchen Fällen einfacher zu lesen und zu debuggen sein.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du mit einem Excel-Makro Text in eine Zelle schreiben kannst:

Sub SchreibeTextInZelle()
    Dim u1 As String
    u1 = "Hallo Welt"
    Sheets("U1").Cells(1, 2).Value = u1
End Sub

Du kannst dieses Makro direkt in der VBA-Entwicklungsumgebung ausführen, um den Text in die Zelle B1 des Blattes "U1" zu schreiben.


Tipps für Profis

  • Public Variablen: Wenn du eine Variable in mehreren Modulen verwenden möchtest, deklariere sie als Public in einem normalen Modul. So bleibt der Wert der Variable erhalten, auch wenn die UserForm geschlossen wird.

  • Fehlersuche: Nutze die Debug.Print Funktion, um den Wert der Variablen während der Ausführung zu überprüfen. Dies kann dir helfen, Probleme schnell zu erkennen.

  • Zugriff auf andere Module: Wenn du Funktionen in anderen Modulen aufrufen möchtest, stelle sicher, dass diese als Public deklariert sind.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Werte in einer Zelle schreiben?
Du kannst mehrere Werte durch die Verwendung von Trennzeichen kombinieren, z.B.:

Cells(1, 2).Value = u1 & ", " & u2

2. Was passiert, wenn die UserForm geschlossen wird?
Wenn die UserForm geschlossen wird, verlieren lokale Variablen ihre Gültigkeit. Verwende Public Variablen, um den Wert zu behalten.

3. Kann ich VBA-Text in Zellen verwenden?
Ja, du kannst VBA verwenden, um Text in Zellen zu schreiben, indem du die entsprechenden Methoden wie Cells() oder Range() nutzt.

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