AW: TextBox mittels VBA einfügen!
08.12.2008 13:22:17
adrian
Hi Luc,
im Hauptsheet habe ich einen Bereich "ODMListB", der Spaltenweise (immer 6 Spalten weiter) einen Wert aus anderen Sheets enthält bzw. anzeigt.
Die Range oder Größe bzw. der Inhalt von "ODMListB" variiert!
Die Funktion zum zum Auslesen der Werte "ALLODM_auslesen und übrigen Code habe ich mal weggelassen, weil es wahrsch. unwichtig ist.
Jetzt möchte ich 2 Zellen unterhalb jeder Zelle der Range "ODMListB" eine Textbox mit bestimmter Größe etc. einfügen.
optional:
Schrumpft die Range, sollen überflüssige Textboxen, d.h. welche über denen 2 Zellen oberhalb kein Wert mehr aus dem Bereich "ODMListB" steht, wieder entfernt werden.
lg
adrian
Folgender Codeausschnitt im Hauptsheet:
Sub CodeAusschnitt()
'#### Nochmals Aufnahme aller ODMs für Horizontale Darstellung! ####
Dim areaB As String, ODMBZeile As Long, ODMBSpalte As Long, Found As String, Kontrollzelle As _
Range
areaB = "ODMListB"
Set rangeListeB = Nothing
Application.Range(areaB).ClearContents
Set rangeZielB = Application.Range(areaB).Range("A1")
Call AllODM_Auslesen(rangeSector:=Worksheets("Overview").Range("ODMListA"))
With rangeListeB
Application.Names(areaB).RefersTo = "='" & .Parent.Name & "'!" & .Address
End With
ODMBZeile = 33
With Datenblatt
ODMBSpalte = .Cells(ODMBZeile, .Columns.Count).End(xlToLeft).Column
Set Kontrollzelle = .Cells(ODMBZeile, ODMBSpalte)
End With
While Found "Yes"
For Each Cell In Range("ODMListA")
If Cell.Value = Kontrollzelle.Value Then
Found = "Yes"
End If
Next
If Found "Yes" Then
Kontrollzelle.Value = ""
Set Kontrollzelle = Kontrollzelle.Offset(0, -6)
End If
Wend
For Each Cell In Range("ODMListB")
If Cell.Value "" Then
AddTextbox Cell.Offset(2, 0)
End If
Next
End Sub
Folgender Code im Modul1: habe fehlermeldung fett unterstrichen
Sub AddTextbox(Stelle As Range)
Const TEXTBOX As String = "Forms.TextBox.1"
Dim Objekt As OLEObject
Dim ObForm As MSForms.TEXTBOX
With ActiveSheet
Set Objekt = .OLEObjects.Add(ClassType:=TEXTBOX, _
Left:=Range(Stelle).Left, Top:=Range(Stelle).Top, Width:=Range(Stelle).Width, _
Height:=Range(Stelle).Height).Select
Set ObForm = Objekt.Object
With ObForm
.Name = "ODMVolumeBox" & ActiveSheet.OLEObject.Count
.Caption = "ODMVolumeBox" & ActiveSheet.OLEObject.Count
.Enabled = True
End With
End With
End Sub