Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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

Textboxzähler

Textboxzähler
29.08.2023 17:12:50
Rolf H.
Hallo liebe Excelgemeinde,
auf einem Tabellenblatt sind mehrere durch VBA erzeugte Textboxen.
Je nach Gebrauch werden diese wieder gelöscht und auch wieder erzeugt.
Lässt sich erreichen, dass die "wiedererzeugten" Boxen die gleichen laufenden Nummern haben wie vorher.
Aus Textbox(3) soll wieder Textbox(3) werden.
Schöne Grüße
Rolf

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textboxzähler
29.08.2023 17:34:54
Oberschlumpf
Hi Rolf,

ich würd es so versuchen:

An der Stelle in deinem Code, wo eine Textbox gelöscht wird, den Namen dieser Textbox z Bsp in eine Textdatei speichern (oder auf einem versteckten Tabellenblatt in der Exceldatei).

An der Stelle in deinem Code, wo eine Textbox wieder hinzugefügt wird, aus meiner Liste mit den zuvor gelöschten Textboxen einen Namen auswählen, und diesen der neuen Textbox zuweisen - nicht vergessen, diesen Namen aus der Liste mit gelöschten Textboxen zu löschen.

Hilfts?

Ciao
Thorsten
Textboxzähler
29.08.2023 17:48:52
Rolf H.
Hallo Thorsten,
danke für die schnelle Antwort!
Ich weiß leider nicht wie der Namen der Textbox zu bekommen ist (außer durch Klick auf die Textbox und in der Bearbeitungsleiste nachschauen).
Mittels VBA gelingt es mir nicht.
Gruß Rolf
Anzeige
AW: Textboxzähler
29.08.2023 17:57:05
Oberschlumpf
Hi Rolf,

da ich deinen Code ja nicht kenne, weiß ich da auch nicht weiter.
Zusätzlich befürchte ich, wenn du noch nicht weißt, wie man Textbox-Namen mit VBA auslesen kann, dass hier für dich mit VBA bescheiden das Level noch zu hoch ist, das du brauchst, um dein Problem lösen zu können - nein, das hab ich schlecht formuliert! Ich versuch es noch mal.

Ich will sagen, dass zumindest ICH dir nicht helfen kann, weil ich nicht wüsste, wo ich bei deinem VBA bescheiden anfangen müsste, zu erklären.

Was aber dir vielleicht helfen kann:

Stell doch bitte per Upload eine Bsp-Datei, mit Bsp-Daten, mit Textboxen, mit deinem Code hier zur Verfügung.
Es gibt ja hier noch viele andere Antworter - und vielleicht ist einer dabei, der dir besser helfen kann.

Ich lass den Beitrag offen, damit das auch die Anderen sehen.

Ciao
Thorsten


Anzeige
Textboxzähler
29.08.2023 17:43:10
Yal
Hallo Rolf,

nach dem Erzeugen der Textbox(en), einfach den Name festlegen. Vermeide eine Benennung, die mit der automatische Benennung kollidieren könnte.

VG
Yal
Textboxzähler
29.08.2023 17:44:58
daniel
Hi
wie soll Excel wissen, was gelöscht wurde und welche der gelöschten du gerade erzeugst?
wenn es darum geht, Lücken in der Nummerierung zu füllen, also wenn Textbox1, und Textbox3 vorhanden sind und Textbox2 gelöscht wurde, dann wird beim nächsten erstellen einer Textbox als erstes die Nummer 2 vergeben.
was anderes kann nicht funktionieren.
Gruß Daniel
Textboxzähler
30.08.2023 09:36:43
Der Steuerfuzzi
Hallo,

mal eine blöde Frage:
Warum löscht Du die Textboxen, wenn Du diese ggf. noch brauchst? Setze alles zurück (z. B. Inhalt etc.) und blende sie aus. Wenn Du sie wieder brauchst, blende sie wieder ein.

Gruß
Michael
Anzeige
Textboxzähler
29.08.2023 17:55:19
Rolf H.
Hallo Daniel,
wenn ich Textbox 1 bis 8 lösche, werden beim weiderherstellen Textbox 9 bis 16 erzeugt.
Gruß Rolf
Textboxzähler
29.08.2023 18:09:49
daniel
Ok das konnte ich nicht beobachten, bei mir wurden die Lücken gefüllt.
wenn es bei dir anders ist, probier mal diesen Code aus:.

Sub Makro1()

Dim testobj
Dim i As Long

With ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, DisplayAsIcon:=False, Left:=322.5, Top:=121.5, Width:=135, Height:=33.75)
On Error Resume Next
For i = 1 To Val(Mid(.Name, 8)) - 1
Set testobj = ActiveSheet.Shapes("Textbox" & i)
If Err > 0 Then
.Name = "Textbox" & i
Exit For
End If
Next
On error goto 0
End With
End Sub


die Textbox wird in der WITH-Klammer erstellt.
dann läuft eine Schleife von 1 bis zur Textbox nummer und prüft, ob alle Nummern darunter vorhanden sind.
Wenn nicht, wird die Textbox auf die erste freie Nummer umbenannt.

Gruß Daniel
Anzeige
Textboxzähler
29.08.2023 18:15:22
Rolf H.
Hallo Daniel,
erstmal herzlichen Dank für deine Antwort.
Heute komme ich nicht mehr dazu, deinen Vorschlag auszuprobieren.
Gruß Rolf
Textboxzähler
29.08.2023 18:10:01
Rolf H.
Es geht nur um diese beiden Makros, alles andere hat darauf keinen Einfluss.
Gruß Rolf

Sub Hamburg()
Dim shp As Shape
Dim i As Integer
Dim LL As Long
LL = 100
For i = 1 To 8
With Worksheets("Tabelle1")
Set shp = .Shapes.AddTextbox(msoTextOrientationHorizontal, LL, 100, 50, 300)
End With
LL = LL + 100
Next
End Sub

Sub DeleteAllTextBoxes()
ActiveSheet.TextBoxes.Delete
End Sub
Anzeige
Textboxzähler
29.08.2023 18:26:56
daniel
ok, das sind jetzt Textfelder (Grafikelemente) und keine Textboxen (ActiveX-Steuerelemente)
da kann das natürlich anders sein.
Wenn du immer alle Textfelder vorher löschst, kannst du den Namen auch einfach selbst vergeben:

Sub Hamburg()

Dim shp As Shape
Dim i As Integer
Dim LL As Long
LL = 100
For i = 1 To 8
With Worksheets("Tabelle1")
Set shp = .Shapes.AddTextbox(msoTextOrientationHorizontal, LL, 100, 50, 300)
shp.Name = "Textbox " & i '--- Namen zuweisen
End With
LL = LL + 100
Next
End Sub


Gruß Daniel
Anzeige
Textboxzähler
30.08.2023 08:14:59
Rolf H.
Hallo Daniel,
genau das habe ich gesucht. Die einfache Zeils "shp.Name = "Textbox " & i " habe ich einfach nicht hinbekommen.
Vielen herzlichen Dank für deine Geduld
Rolf

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige