Thema Datum  Von Nutzer Rating
Antwort
30.01.2015 16:40:35 Velox
NotSolved
30.01.2015 19:58:22 MarkusK
NotSolved
Rot VBA OptionButton hinzufügen
30.01.2015 20:11:48 Gast58824
NotSolved
30.01.2015 20:16:58 Gast52945
NotSolved
30.01.2015 20:21:18 Gast55385
NotSolved

Ansicht des Beitrags:
Von:
Gast58824
Datum:
30.01.2015 20:11:48
Views:
1098
Rating: Antwort:
  Ja
Thema:
VBA OptionButton hinzufügen
  Dim Stoff(1 To 35) As Boolean
  Dim i As Long
   
  For i = LBound(Stoff) To UBound(Stoff)
    Stoff(i) = UserForm2.Controls("CheckBox" & i).Value
  Next

Ist kürzer. :)

 

ungetestet:

Option Explicit

Private Sub CommandButton1_Click()
 
  Dim Stoff(1 To 35) As Boolean
  Dim blnFetch As Boolean
  Dim maxRow As Long
  Dim Text As String
  Dim i As Long
  Dim j As Long
   
  For i = LBound(Stoff) To UBound(Stoff)
    Stoff(i) = UserForm2.Controls("CheckBox" & i).Value
  Next
  
  With Worksheets("u01_uebersicht")
    
    maxRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    
    For i = 2 To maxRow + 1
      
      blnFetch = False
      
      For j = 1 To 35
        If Stoff(j) And Not CBool(.Cells(i, j + 2).Value) Then
          blnFetch = True
          Exit For 'j
        End If
      Next
      
      If UserForm2.OptionButton1.Value Then
        blnFetch = blnFetch And InStr(1, .Cells(i, "AB").Text, "Modul", vbTextCompare)
      ElseIf UserForm2.OptionButton2.Value Then
        blnFetch = blnFetch And InStr(1, .Cells(i, "AB").Text, "Maschine", vbTextCompare)
      Else 'keiner der OptionButtons wurde gesetzt
'        blnFetch = False
        Exit Sub
      End If
      
      If blnFetch Then
        Text = Text & .Cells(i, "AL").Text & vbKeyReturn ' wohl ehern vbNewLine ?
      End If
      
    Next
    
  End With
  
  UserForm2.TextBox1.Text = Text

End Sub

Was du bei mit der j-Schleife bezweckst, kann ich nur vermuten. Es sieht so aus als ob du mehrere Spalten absuchst und auf eine bestimmte Konfiguration schaust. Bei jedem Treffer zählst du Count ums eins nach oben, du fängst damit aber nichts weiter an, also ist diese Information überflüssig und es genügt sich ein Wahr oder Falsch zu merken (blnFetch) und nach dem ersten Treffer dann diese Schleife zu verlassen.

Anschließend kommt der Test auf den Inhalt in Spalte AB. Das resultatat davon  (enthalten / nicht enthalten) wird logisch mit der vorherigen Feststellung Und-Verknüpft, d.h. wenn beide Bedingungen nicht gleichzeitig erfüllt sind, dann ist blnFetch = False.

Anschließend wird je nachdem welchen Zustand blnFetch hat, die Information aus AL übernommen oder nicht - Wichtig: Zeichenketten werden mit dem Kaufmansund (&) verknüpft! Das Plus (+) ist ein Rechenoperator ... VBA handhabt das etwas lachs bzw. ist da sehr Einsteigerfreundlich. Man sollte das aber gleich von Anfang an voneinander trennen können und es auch konsequent voneinander trennen.

Du fügst am Ende den Chr(13) ans Ende an (das ist das Steuerzeichen für die Return-Taste. Meinem Verständnis nach ein merkwürdiges Zeichen als trennzeichen. Vielleicht meinst du ja den Zeilenumbruch? Dann ist vbNewLine dein Ding.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
30.01.2015 16:40:35 Velox
NotSolved
30.01.2015 19:58:22 MarkusK
NotSolved
Rot VBA OptionButton hinzufügen
30.01.2015 20:11:48 Gast58824
NotSolved
30.01.2015 20:16:58 Gast52945
NotSolved
30.01.2015 20:21:18 Gast55385
NotSolved