Clever-Excel-Forum

Normale Version: chkBoxCaption in den dazugehörigen Rahmen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Moin Moin,

ich suche die Lösung für diese Variante:

"Wenn Du jedoch bei z.B. 5 cbo's und zwei beliebigen angeklickten immer die caption in rahmen1 und rahmen 2 haben willst, müsste man anders vorgehen. Man könnte z.B. erst mal die captions erfassen und anschliessend auf die rahmen verteilen. Dazu könnte man z.B. ein Array verwenden oder eine Collection. Da wäre ja auch der Fall interessant, wenn Du z.B. 3 cbo's anklickst, ob die in Reihenfolge des Anklickens in die rahmen sollen oder z.B. in Reihenfolge ihrer Indizees. "

- nicht die Reihenfolge des Anklickens
- sondern die Reihenfolge ihrer Indizees

Andreas
Hallöchen,

ich würde das so angehen. Deine 5 Rahmen-Variablen würde ich als Array ausführen, da man darüber dann mit einer Schleife gehen kann. Falls die Bereiche noch an anderer Stelle genutzt werden, müsstest Du dort auch noch ändern.
Über die Checkboxen gehe ich auch mit einer Schleife, da die schön kontinuierlich mit 100, 200 usw. benannt sind.
Das Größe vom Array ergibt sich aus der Anzahl der gewählten Checkboxen. Ich erweitere das dann, dadurch werden leere Inhalte erzeugt die ich zum Überschreiben eventuell aus einer letzten Auswahl vorhandener Inhalte nutze.

Code:
'Variablendeklarationen
    Dim arrRahmenA(1 To 5), arrCaption
    Dim iCnt%, strCaption$
    'Array mit RahmenRange
    arrRahmenA(1) = "A6:H9"
    arrRahmenA(2) = "A12:H15"
    arrRahmenA(3) = "A18:H21"
    arrRahmenA(4) = "A24:H27"
    arrRahmenA(5) = "A28:H32"
    'Schleife zum Erfassen der Captions
    For iCnt = 1 To 5
      With Me.Controls("chkr" & iCnt & "00")
        If .Value = True Then strCaption = strCaption & .Caption & ";"
      End With
    Next
    'Array mit Captions erzeugen
    arrCaption = Split(strCaption, ";")
    'Array auf max. Anzahl Captions erweitern
    ReDim Preserve arrCaption(5)
    'Schleife zum Anlegen und Entfernen der Eintraege
    For iCnt = 1 To 5
      Range(arrRahmenA(iCnt)).Cells(2, 1).Value = arrCaption(iCnt - 1)
    Next
Hallo Andreas,

eine Schleife sollte doch genügen. Das wäre der komplette Code im UserForm:

Dialog UserForm1
Option Explicit 

Private Sub UserForm_Initialize()
   Dim sngTop As Single, sngLeft As Single
   Me.StartUpPosition = 0
   sngLeft = Application.Left + Application.Width / 2 - Me.Width / 2
   sngTop = Application.Top + Application.Height / 2 - Me.Height / 2
   Me.Left = sngLeft
   Me.Top = sngTop
End Sub

Private Sub cmdOK_Click()
   Dim i As Long, j As Long
   Dim oControl As Object
   Dim oWs As Worksheet
   Const lngAbstand As Long = 6
   Const lngAnzahl As Long = 5
   Const lngSpalten As Long = 8
   Const lngZeilen As Long = 4
   Const strZ1 As String = "A6"
   
   Set oWs = Worksheets("Rahmen")
   
   For i = 1 To lngAnzahl
     Set oControl = Me.Controls("chkR" & i & "00")
     If oControl.Value Then
       If j = 0 Then
         oWs.Range(strZ1, oWs.Cells.SpecialCells(xlCellTypeLastCell)).Delete Shift:=xlShiftUp
         oWs.Range("H4").Value = "Checkboxen"
         oWs.Range("H4").HorizontalAlignment = xlRight ' richtet den Text rechts aus.
       End If
       With oWs.Range(strZ1).Offset(j * lngAbstand).Resize(lngZeilen, lngSpalten)
         .Cells(1).Value = oControl.Caption
         'Rahmenlinie
         .BorderAround ColorIndex:=1, Weight:=xlMedium
         'Rahmenfarbe
         .Interior.Color = RGB(255, 255, 255)
       End With
       j = j + 1
     End If
   Next i
   
   If j = 0 Then
     ' wenn keine chkBox ausgewählt wird
     MsgBox "Bitte ein Auswahl auswählen"
   Else
     Unload Me
   End If
End Sub

Private Sub cmdCancel_Click()
   Unload Me
End Sub





VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0

TypNameEigenschaften
CheckBoxchkR400
Caption:R400
Height:18
Left:6
Top:60
Width:60
CheckBoxchkR300
Caption:R300
Height:18
Left:6
Top:42
Width:60
CheckBoxchkR200
Caption:R200
Height:18
Left:6
Top:24
Width:60
CheckBoxchkR100
Caption:R100
Height:18
Left:6
Top:6
Width:60
CheckBoxchkR500
Caption:R500
Height:18
Left:6
Top:78
Width:60
CommandButtoncmdOK
Caption:OK
Height:24
Left:6
TabIndex:1
Top:126
Width:72
CommandButtoncmdCancel
Caption:Abbrechen
Height:24
Left:6
TabIndex:2
Top:156
Width:72
FramefrmNE
Caption:Netze
Height:114
Left:6
TabIndex:0
Top:6
Width:72

Gruß Uwe
Moin Moin André aus G in T     und      Moin Moin Uwe

DANKE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Ihr habt mir richtig weiter geholfen. Beides funktioniert. ENDLICH.

Wünsche Euch noch eine sonnige Restwoche.

Andreas mit einem breiten Lächeln
Seiten: 1 2