Frage von Wizard37, 57

excel vba frage?

ich habe in einem Formular mehrere Textfelder die bei Eingabe in meine Tabelle eingetragen werden. wenn ich aber überprüfen möchte ob eine Zelle schon belegt ist und wenn ja dann soll er den Inhalt in dem textfeld eintragen. also wenn Zelle a1 leer dann textbox1.value = range ("e1") sonst range ("a1") = textbox1.value ... bekomme ich sowas hin? Wenn ja wie kann ich den CODE einbauen?

Expertenantwort
von Oubyi, Community-Experte für Excel, 36

Deine Beschreibung ist für mich etwas verwirrend. Meinst Du das so?:

If IsEmpty(Range("A1")) Then
TextBox1.Text = Range("E1").Value
Else
TextBox1.Text = Range("A1").Value
End If
Kommentar von Wizard37 ,

Wenn inhalt von A1 leer ist (eine Formel ist drin)

soll er etwas was ich in textbox1 schreibe in E1 übernehmen

ansonsten soll der Inhalt von A1 in Textbox1 stehen.

Kommentar von Ninombre ,

Es ist etwas schwierig, sich den Ablauf mit dieser Logik sinnvoll vorzustellen: Der User gibt was in das Textfeld ein, was aber ggf. dann wieder überschrieben wird? Vielleicht macht es die Anwendung einfacher, wenn man die Prüfung schon früher durchführt, also beim Öffnen des Formulars schon E1 ins Textfeld übernimmt, wenn A1 leer ist.

Kommentar von Oubyi ,

"Wenn inhalt von A1 leer ist (eine Formel ist drin)
soll er etwas was ich in textbox1 schreibe in E1 übernehmen
ansonsten soll der Inhalt von A1 in Textbox1 stehen."


Das sähe wohl so aus:


If IsEmpty(Range("A1")) Then
Range("E1").Value = TextBox1.Text
Else
TextBox1.Text = Range("A1").Value
End If



Ich schließe mich allerdings Ninombres Einschätzung an.

Antwort
von AnonYmus19941, 18
If Range("A1").Text = "" Then textbox1.value = Range("E1").Text Else Range("A1").Text = textbox1.value
Kommentar von Wizard37 ,

Wenn A1 leer ist

soll er etwas was ich in textbox1 schreibe in E1 übernehmen

ansonsten soll der Inhalt von A1 in Textbox1 stehen.

Kommentar von AnonYmus19941 ,

Na gut, das habe ich falsch verstanden. Dann also anders herum:

If Range("A1").Text = "" Then Range("E1").Text = textbox1.value Else textbox1.value = Range("A1").Text

Bei der Textbox weiß ich nicht, wie es geht, ich habe einfach deine Angabe genommen...

Kommentar von AnonYmus19941 ,

Ich habe gerade deine andere Antort gesehen. Wenn in A1 eine Formel drinnen steht, dann wird das vermutlich nicht funktionieren, weil der Inhalt dann nicht "" (leer, nichts) ist, sondern =FORMEL(), es wird nur für dich leer angezeigt. Probier es mal aus, vielleicht funktioniert es auch...

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten