Supportnet / Forum / Tabellenkalkulation
Wert aus Textbox in Makro schreiben
Frage
Hi Leute
ich habe folgendes Problem.
Ich habe eine Arbeitsmappe mit mehreren Tabellenblättern. Eines davon ist eine Liste mit Loopnummer (das sind betriebsinterne Nummern für Regler, Motoren usw.)
Dieses Tabellenblatt ist normalerweise nicht sichtbar, nur das Eingabetabellenblatt.
In diesem Eingabentabellenblatt gebe ich mittels diverser Userforms neue Loopnummern ein, erstelle Berichte über arbeiten an den einzelnen Loops und kann auch Loops löschen.
Nun mein Problem.
Zum löschen einzelner Loops möchte ich folgendes Makro verwenden:
Sub loop_löschen()
Sheets("Loopliste").Activate
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("a3:a2000")
If c.Value = "1RJ02" Then
c.EntireRow.Delete
End If
Next c
Application.ScreenUpdating = True
Sheets("Eingabemaske").Activate
Range("a1").Select
End Sub
Funktioniert ja, nur muß ich eben im Makro die Loopnummer eingeben (hier "1RJ02").
Wie muß ich das Makro umschreiben, damit der Wert aus der Textbox1 der Userform "Loop löschen" automatisch eingetragen wird.
Danke im voraus
Kaleun
Antwort 1 von Martina
Hallo Du,
versuche doch mal folgendes Macro:
Sub loop_löschen()
Dim löscheLoop
Sheets("Loop Löschen").Select
ActiveSheet.Shapes("Text Box 1").Select
löscheLoop = Selection.Characters.Text
Sheets("Loopliste").Activate
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("a3:a2000")
If c.Value = löscheLoop Then
c.EntireRow.Delete
End If
Next c
Application.ScreenUpdating = True
Sheets("Eingabemaske").Activate
Range("a1").Select
End Sub
Viele Grüße
Martina
versuche doch mal folgendes Macro:
Sub loop_löschen()
Dim löscheLoop
Sheets("Loop Löschen").Select
ActiveSheet.Shapes("Text Box 1").Select
löscheLoop = Selection.Characters.Text
Sheets("Loopliste").Activate
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("a3:a2000")
If c.Value = löscheLoop Then
c.EntireRow.Delete
End If
Next c
Application.ScreenUpdating = True
Sheets("Eingabemaske").Activate
Range("a1").Select
End Sub
Viele Grüße
Martina
Antwort 2 von Kaleun
@Martina
Funktioniert leider nicht.
In der Zeile
ActiveSheet.Shapes ("TextBox1").select
bringt er eine Fehlermeldung.
Ist es vielleicht möglich, das ich den Wert aus der Textbox1 in eine Zelle schreibe (activecell = textbox1.value) und diese Zelle dann als Zellbezug in das Makro schreibe?
z.B. in Zelle A1 wird der Wert aus der Textbox1 mittels activecell = Textbox1.value eingetragen.
Diesen Wert hole ich mir dann ins Makro (If c.value = ("A1") then ?????
Geht das vielleicht?
Kaleun
Funktioniert leider nicht.
In der Zeile
ActiveSheet.Shapes ("TextBox1").select
bringt er eine Fehlermeldung.
Ist es vielleicht möglich, das ich den Wert aus der Textbox1 in eine Zelle schreibe (activecell = textbox1.value) und diese Zelle dann als Zellbezug in das Makro schreibe?
z.B. in Zelle A1 wird der Wert aus der Textbox1 mittels activecell = Textbox1.value eingetragen.
Diesen Wert hole ich mir dann ins Makro (If c.value = ("A1") then ?????
Geht das vielleicht?
Kaleun
Antwort 3 von Kaleun
@Martina
Ich habe die Lösung
Das Makro sieht folgendermaßen aus:
Private Sub CommandButton2_Click()
Range("a1").Select
ActiveCell = TextBox1.Value
Sheets("Loop löschen").Activate
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("a3:a2000")
If c.Value = Range("a1").Value Then
c.EntireRow.Delete
End If
Next c
Application.ScreenUpdating = True
Range("a1").Select
End Sub
Ich übergebe den Wert aus der Textbox mittels activecell=textbox1.value in Zelle A1
Anschließend übernehme ich mittels
Range("a1").value den Wert aus Zelle A1 in mein Makro.
Und siehe da, es funktioniert.
Gruß Kaleun
Ich habe die Lösung
Das Makro sieht folgendermaßen aus:
Private Sub CommandButton2_Click()
Range("a1").Select
ActiveCell = TextBox1.Value
Sheets("Loop löschen").Activate
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("a3:a2000")
If c.Value = Range("a1").Value Then
c.EntireRow.Delete
End If
Next c
Application.ScreenUpdating = True
Range("a1").Select
End Sub
Ich übergebe den Wert aus der Textbox mittels activecell=textbox1.value in Zelle A1
Anschließend übernehme ich mittels
Range("a1").value den Wert aus Zelle A1 in mein Makro.
Und siehe da, es funktioniert.
Gruß Kaleun
Antwort 4 von Martina
@ Kaleun
kontrolliere mal ob der Name der Textbox stimmt. Vielleicht ist es ja auch "Text Box 2" die du ansprechen möchtest. Wenn du nämlich in einer Tabelle eine Textbox erstellst, sie anschließend wieder löschst und dann eine neue Textbox erstellst bekommt diese die Nummer 2. Und dann musst du zwischen Text und Box und der Ziffer jeweils ein Leerzeichen lassen.
Martina
kontrolliere mal ob der Name der Textbox stimmt. Vielleicht ist es ja auch "Text Box 2" die du ansprechen möchtest. Wenn du nämlich in einer Tabelle eine Textbox erstellst, sie anschließend wieder löschst und dann eine neue Textbox erstellst bekommt diese die Nummer 2. Und dann musst du zwischen Text und Box und der Ziffer jeweils ein Leerzeichen lassen.
Martina
Antwort 5 von Martina
@ Kaleun
ops, hab grad erst deine 2. Antwort gelesen. Super dass du es geschafft hast
Martina
ops, hab grad erst deine 2. Antwort gelesen. Super dass du es geschafft hast
Martina