Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textboxen kopieren Code verfeinern

Textboxen kopieren Code verfeinern
15.12.2007 20:14:32
Fred
Hallo zusammen
Ich habe hier einen Code gefunden, der für mich fast perfekt ist.
Mit ihm kann ich den inhalt aller Textboxen in ein neues Blatt schreiben.Leider copiert er auch alle anderen ole Objekte wie Buttons,Comboboxen und ähnliches auch mit.
Kann mir jemand helfen ihn so umzuschreiben,das er nur die Textboxen kopiert
Vielen Dank für Eure hilfe
anbei mal der Code

Private Sub CommandButton20_Click()
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Fehler"
Dim Blatt As Long
For Blatt = 1 To ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets(Blatt).Unprotect Password:="Bertelsmann1969"
Next Blatt
Dim Obj As OLEObject
Dim shQuelle As Worksheet
Dim shZiel As Worksheet
Sheets("Schichtübergabe").Select
Set shQuelle = Sheets("Schichtübergabe")
With ActiveSheet
Debug.Print .OLEObjects("Textbox1").Object.Value
Set shZiel = Sheets("Fehler")
Sheets("Fehler").Cells(3, 1).Resize(1000).EntireRow.ClearContents
For Each Obj In shQuelle.OLEObjects
If Obj.OLEType = 2 Then
With shZiel.Cells(65536, 1).End(xlUp).Offset(1, 0)
.Value = Obj.Name
On Error GoTo DispFehler
Application.DisplayAlerts = False
.Offset(0, 1) = Replace(Obj.Object.Value, Chr(13), "")
DispFehler:
Application.DisplayAlerts = True
End With
End If
Next
Sheets("Fehler").Select
Sheets("Fehler").Columns("B:B").Select
Selection.AutoFormat Format:=xlRangeAutoFormatList1, Number:=True, Font:= _
True, Alignment:=True, Border:=True, Pattern:=True, Width:=True
Selection.Rows.AutoFit
Sheets("Fehler").Columns("B:B").Select
With Selection
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "Fett"
.Size = 14
End With
For Blatt = 1 To ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets(Blatt).Protect Password:="Bertelsmann1969", DrawingObjects:=True,  _
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Next Blatt
End With
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Workaround, es muss auch anders gehen
15.12.2007 20:44:54
Daniel
HI
wenn deine Textboxen alle gleich beginnen, könnte man es so machen:

For Each Obj In shQuelle.OLEObjects
If  obj.name like "Textbox*" then


allerdings müsste es auch einen "offiziellen" Weg geben, die Art des Steuerelements herauszufinden
die Hilfe hilft mir aber gerade nicht viel weiter.
deswegen lass ich die Frage mal offen
Gruß, Daniel

AW: Workaround, es muss auch anders gehen
15.12.2007 20:49:09
Daniel
ups, das offen vergessen

AW: Workaround, es muss auch anders gehen
15.12.2007 21:35:54
Fred
Hallo Daniel
Vielen Dank so gehts
If Obj.Name Like "TextBox*" Then

AW: Workaround, es muss auch anders gehen
15.12.2007 21:45:00
Rudi
Hallo,
als Anregung:

Sub tt()
Dim objOLE As Object
For Each objOLE In Sheets(1).OLEObjects
If objOLE.progID = "Forms.TextBox.1" Then
MsgBox objOLE.Name
End If
Next
End Sub


Gruß
Rudi
Eine Kuh mach muh, viele Kühe machen Mühe.

Anzeige
@Daniel
15.12.2007 21:51:00
Rudi
Hallo Daniel,
Blende das Lokalfenster ein und gehe den Code mit F8 durch. Dann kannst du dir alle Eigenschaften der Variablen anschauen.
Gruß
Rudi
Eine Kuh mach muh, viele Kühe machen Mühe.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige