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

Controls in Userform im Editor löschen

Controls in Userform im Editor löschen
Reinhard
Hallo Wissende,
in einer Fremdmappe ist eine Userform. Darauf sind so ca. 40 Elemente. Die sollen auch so sein.
Zählt man aber mit
Msgbox Me.Controils.count die Anzahl erschein 950.
Ich habe mir dann alle Top, Left usw Werte dieser Elemente auflisten lassen.
Dabei kam heraus das
TextBox9
TextBox29
TextBox49
usw. die gleiche Position und Größe haben und das 20 mal. Da da ca. 20 Textboxen sind ergibt das schon mal 400 Elemente. Dann gibts aber auch gleichviele label, das wären dann schon mal 800 Elemente zusammen, so gesehen ist die 950 erklärlich.
Der Ersteller beteuert er habe beim Erstellen der Userform schon Elemente eingefügt, dann aber wieder gelöscht und neu eingefügt.
Meine erste Frage an euch, kann man erraten welchen "Fehler" er da begangen haben könnte?
denn wenn ich z.B. eine TB einfüge so ist das TextBox1. Lösch ich die und füge erneut eine TB ein so heißt die TextBox2 *glaub*. Aber wenn ich dann mit Me.Controls.Count zähle kommt eine 1 raus.
Meine zweite Frage (für mich viel wichtiger) gibt es eine Möglichkeit durch Vba da die unnötigen Elemente zu entfernen?
Zur Laufzeit kann ich das inzwischen aber das meine ich nicht.
Angedacht habe ich dazu, man exportiert die UF und ändert dann die .frm ab. Geht das? Wie?
Ein aktuelles Problem ist das nicht, ich habe ihm schon gesagt er soll die UF halt neu aufbauen und bestücken.
Ansonsten Carpe diem
Schönes WE
Gruß
Reinhard

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Controls in Userform im Editor löschen
01.10.2011 15:51:07
Hajo_Zi
Hallo Reinhard,
ich vermute mal da gibt es kein Tool. Woher soll das Tool wissen welche der 20 übereinanderliegenden Textbox Du behalten möchtest? Es könnte ja auch Steuerelemente geben die mit keinem Code belegt sind.

AW: Controls in Userform im Editor löschen
01.10.2011 15:53:05
Tino
Hallo,
wenn ich eine Textbox kopiere und mit Strg+v mehrmals drücke habe ich in Windeseile 100 Textboxen übereinander auf derselben Stelle.
Kannst mal diesen Code testen, den Namen der Userform im Code noch anpassen.
Dem Zugriff auf VBA Projekte muss vertraut werden!
kommt als Code in Modul

Option Explicit 
Sub ControlsUmbenennen() 
Dim i As Integer 
Dim oDic As Object 
Set oDic = CreateObject("Scripting.Dictionary") 
 
With ThisWorkbook.VBProject.VBComponents("Userform1").Designer.Controls 
    For i = .Count - 1 To 0 Step -1 
     If LCase(TypeName(.Item(i))) = "textbox" Then 
        If Not oDic.exists(.Item(i).Top & "-" & .Item(i).Left) Then 
            oDic(.Item(i).Top & "-" & .Item(i).Left) = 0 
        Else 
            .Remove .Item(i).Name 
        End If 
     End If 
    Next i 
End With 
End Sub 
Gruß Tino
Anzeige
Hajo hat mich noch auf die Idee gebracht
01.10.2011 16:07:00
Tino
Hallo,
alle Textboxen die keinen Code haben zu löschen.
Normalerweise beginnt jeder Code von einem Control so z.Bsp.
Private Sub TextBox1_ diesen Text suche ich, ist dieser nicht im Code wird diese Textbox gelöscht.

Sub ControlsLoeschen()
Dim i As Integer
Dim oDic As Object
Set oDic = CreateObject("Scripting.Dictionary")
Dim strCode$
With ThisWorkbook.VBProject.VBComponents("Userform1")
    strCode = .CodeModule.Lines(1, .CodeModule.CountOfLines)
    With .Designer.Controls
        For i = .Count - 1 To 0 Step -1
         If LCase(TypeName(.Item(i))) = "textbox" Then
            If InStr(strCode, "Private Sub " & .Item(i).Name & "_") = 0 Then
                .Remove .Item(i).Name
            End If
         End If
        Next i
    End With
End With
End Sub
Gruß Tino
Anzeige
Dankeschön
02.10.2011 11:19:46
Reinhard
Hallo Tino,
danke dir, ja es funktioniert :-)
Dank auch an Hajo & Luc
Gruß
Reinhard
Naja, Hajo hat recht, das geht schnell, und ...
01.10.2011 20:45:52
Luc:-?
…besonders hartnäckig sind dabei in Frames „verloren” gegangene (verrutschte) Controls. Allerdings wdn doch alle im VBE als potenzielle Code-Container angezeigt. Das hätte dem Autor eigentl auffallen müssen!
Gruß Luc :-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige