Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Inhalte aus Steuerelementen mit Makro löschen

Inhalte aus Steuerelementen mit Makro löschen
litschis
Guten Morgen zusammen,
ich habe das erste Mal mit Steuerelementen gearbeitet und habe jetzt folgende Überlegung: Meine Datei umfasst sehr viele Textfelder und eine Handvoll Dropdown Menüs. Ich würde gerne eine Art "Alles zurücksetzen"-Button im Tabellenblatt einfügen, so dass alle Werte, die in die Textfelder eingetragen wurden, gelöscht und die Dropdown-Menüs auf das erste Auswahlfeld zurückgesetzt werden, wenn dieser Button gedrückt wird.
Ist so etwas mit einem Makro möglich? Ich habe leider noch keine Erfahrung mit VBA, habe lediglich mal ein paar Makros per Recorder aufgezeichnet...aber das scheint mir hier zu umständlich, wegen der über 400 Textfelder.
Habt ihr eine Lösung?
Vielen lieben Dank,
Litschis
AW: Inhalte aus Steuerelementen mit Makro löschen
12.10.2011 10:47:24
Beverly
Hi,
was für Steuerelemente verwendest du - aus der Formular-Symbolleiste oder der Steuerelemente-Toolbox?


AW: Inhalte aus Steuerelementen mit Makro löschen
12.10.2011 11:05:28
litschis
Hi,
also ehrlich gesagt weiß ich das gar nicht genau, das Dropdown-Menü habe ich mir aus einer anderen Datei kopiert und die Textfelder habe ich - meine ich - aus der Toolbox. Ich lade mal ein vereinfachtes Beispiel hoch, mit einem Dropdown und einem Textfeld und dem besagten Button, der evtl mit einem Makro hinterlegt dann meine Eingaben "wegzaubert" :-)
https://www.herber.de/bbs/user/76969.xls
Anzeige
Tabelle1.TextBox1.Text = "" & Range("A10") = ""
12.10.2011 11:41:45
Matthias
Hallo
Code in Tabelle1

Private Sub CommandButton1_Click()
Tabelle1.TextBox1.Text = ""
Range("A10") = ""
End Sub
Gruß Matthias
AW: Tabelle1.TextBox1.Text = "" & Range("A10") = ""
12.10.2011 12:27:56
litschis
Super, vielen Dank!!!
Habe für das Dropdown-Menü die "" durch eine 1 ersetzt, damit der Punkt angewählt wird. Jetzt habe ich ca. 400 Textfelder...muss ich hier die Zeile
Tabelle1.TextBox1.Text = ""
kopieren und immer wieder die Nummer der textbox entsprechend anpassen, oder gibt es eine schnellere/bessere Lösung?
Vielen Dank für die super Hilfe!
AW: Tabelle1.TextBox1.Text = "" & Range("A10") = ""
12.10.2011 12:32:08
Beverly
Hi Matthias,
weshalb sowohl Inhalt der TextBox als auch die verlinkte Zelle leeren? Eines von Beidem genügt, da beide miteinander "verlinkt" sind.


Anzeige
stimmt :o) oT
12.10.2011 12:33:18
Matthias
AW: Inhalte aus Steuerelementen mit Makro löschen
12.10.2011 12:22:47
Beverly
Hi,
du verwendest beide Steuerelement-Typen, was das ganze ein wenig kompliziert macht. Versuche es mal mit diesem Code:

Sub InhalteZuruecksetzen()
Dim shaShape As Shape
For Each shaShape In ActiveSheet.Shapes
If shaShape.Type = 12 Then
If shaShape.OLEFormat.progID = "Forms.TextBox.1" Then _
shaShape.DrawingObject.Object.Text = ""
ElseIf shaShape.Type = 8 Then
shaShape.ControlFormat.ListIndex = 0
End If
Next shaShape
End Sub



AW: Inhalte aus Steuerelementen mit Makro löschen
12.10.2011 14:18:02
litschis
Wooow...erstes mal VBA und war gar nicht so schwer ;-)
Also ich schreibe jetzt...

Private Sub CommandButton1_Click()
Range("Y13") = ""
Range("Y16") = ""
Range("Y33") = ""
Range("A6") = 1
Range("A21") = 1
Range("A25") = 1
End Sub
...wobei A6, A21, A25 meine Dropdown-Menüs sind und die Spalte Y meine Textfelder...davon habe ich aber ein paar mehr, um genau zu sein geht das ganze bis Y499. Habt ihr eine Idee, wie ich um das Kopieren und Angleichen der Zeilen herum komme? Ich stehe gerade auf dem Schlauch, möchte aber auch ungern über 400 mal kopieren und die Zeile angleichen.
Lieben Dank,
Litschis
Anzeige
AW: Inhalte aus Steuerelementen mit Makro löschen
12.10.2011 20:52:13
Beverly
Hi,
hast du meinen Code denn schon einmal getestet?


AW: Inhalte aus Steuerelementen mit Makro löschen
13.10.2011 11:34:22
litschis
Hi Berverly,
bis vor 2 Minuten hatte ich es noch nicht getestet *schäm*. Ich habe es nicht gleich nachvollziehen können und der andere Code schien simpler, aber da habe ich mich geirrt!! Dein Code funktioniert super, ich habe lediglich in folgender Zeile
shaShape.ControlFormat.ListIndex = 0
die 0 durch eine 1 ersetzt. Mit dem anderen Code, der jede einzelne Linked Cell auf o bzw. 1 setzt, rattert das Makro schon ziemlich lange, bei deinem Code gehts in einem Bruchteil einer Sekunde!
Also, vielen Dank nochmal dafür...Stück für Stück traue ich mich dann mehr mit VBA ;-)
Viele Grüße,
Litschis
Anzeige
AW: Inhalte aus Steuerelementen mit Makro löschen
14.10.2011 16:06:11
litschis
Hallo zusammen,
jetzt muss ich zu diesem Thema noch einmal eine Frage nachschießen:
Habe jetzt zusätzlich zu meinen Dropdown-Menüs und den Textfeldern eine Checkbox aus der Formular-Symbolleiste in mein Tabellenblatt installiert.
Um die Inhalte der Steuerelemente zurückzusetzen benutze ich Beverlys Code:

Private Sub CommandButton1_Click()
Dim shaShape As Shape
For Each shaShape In ActiveSheet.Shapes
If shaShape.Type = 12 Then
If shaShape.OLEFormat.progID = "Forms.TextBox.1" Then _
shaShape.DrawingObject.Object.Text = ""
ElseIf shaShape.Type = 8 Then
shaShape.ControlFormat.ListIndex = 1
End If
Next shaShape
End Sub
Jetzt habe ich wie gesagt das Kontrollkästchen dabei - wie könnte ich dieses in den Code einbauen? Ist das dann auch ein Shape.Type 8? Hier ist der List.Index ja auf 1 gesetzt. Ein Kontrollkästchen spuckt mir in der Linked Cell ja nur True/False aus.
Wie ihr seht bin ich überfodert ;-)
Hat jemand eine Idee?
Vielen Dank,
Litschis
Anzeige
AW: Inhalte aus Steuerelementen mit Makro löschen
14.10.2011 16:45:20
Beverly
Hi,

Private Sub CommandButton1_Click()
Dim shaShape As Shape
For Each shaShape In ActiveSheet.Shapes
If shaShape.Type = 12 Then
If shaShape.OLEFormat.progID = "Forms.TextBox.1" Then _
shaShape.DrawingObject.Object.Text = ""
ElseIf shaShape.Type = 8 Then
If shaShape.FormControlType = xlCheckBox Then
shaShape.ControlFormat = -4146
ElseIf shaShape.FormControlType = xlDropDown Then
shaShape.ControlFormat.ListIndex = 1
End If
End If
Next shaShape
End Sub



Anzeige
Vielen Dank!
17.10.2011 09:33:41
litschis
Vielen Dank für eure Hilfe! Funktioniert alles einwandfrei!
@Berverly: Noch einmal extra Dank an dich, dein Code ist super fix!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige