Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

chkBoxCaption in den dazugehörigen Rahmen
#11
https://www.office-fragen.de/index.php/t...l#msg78269
Antworten Top
#12
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
Antworten Top
#13
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#14
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


Angehängte Dateien
.xlsm   Auswahl über Checkboxen_Kuwer.xlsm (Größe: 19 KB / Downloads: 5)
Antworten Top
#15
Wink 
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste