HERBERS Excel-Forum - die Dialoge

Thema: Zeilenauswahl durch SpinButton

Home
Zeilen werden über SpinButton-Auswahl in TextBoxes zusammengefaßt und getrennt in das Tabellenblatt ausgegeben. Zeilenauswahl durch SpinButton
  • Prozedur: spnAuswahl_Change
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Zeilenauswahl durch SpinButton
  • Ablaufbeschreibung:
    • Variablendeklaration
    • SpinButton-Wert in Integer-Variable einlesen
    • Spaltenzähler initialisieren
    • Schleife bilden
    • Schleife über Spalten bilden
    • Wert der aktuellen Zelle mit nachgestelltem Wagenrücklauf einer String-Variablen hinzufügen
    • Spaltenzähler um eins hochzählen
    • String-Variable um den letzten Wagenrücklauf verkürzen
    • String-Variable in TextBox eintragen
  • Code:

    
    Private Sub spnAuswahl_Change()
       Dim iCells As Integer, iColumns As Integer
       Dim iR As Integer, iC As Integer
       Dim sTxt As String
       iR = spnAuswahl.Value
       iC = 1
       For iCells = 1 To 4
          For iColumns = 1 To 4
             sTxt = sTxt & Cells(iR, iC).Value & vbLf
             iC = iC + 1
          Next iColumns
          sTxt = Left(sTxt, Len(sTxt) - 1)
          Controls("TextBox" & iCells) = sTxt
          sTxt = ""
       Next iCells
    End Sub
    
  • Prozedur: cmdAuslesen_Click
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Werte in Tabelle zurücklesen
  • Ablaufbeschreibung:
    • Variablendeklaration
    • Spaltenzähler initialisieren
    • Wenn die erste TextBox leer ist...
    • Warnton
    • Warnmeldung
    • Prozedur verlassen
    • Schleife bilden
    • Schleife über Spalten bilden
    • Wenn die Zählvariable kleiner als 4...
    • In der zwölften Zeile in der Zelle gemäß Spaltenzähler Teilstring eintragen
    • Spaltenzähler um eins hochzählen
    • Sonst...
    • In der zwölften Zeile in der Zelle gemäß Spaltenzähler String-Variable eintragen
    • Spaltenzähler um eins hochzählen
  • Code:

    
    Private Sub cmdAuslesen_Click()
       Dim iCells As Integer, iColumns As Integer, iC As Integer
       Dim sTxt As String
       iC = 1
       If TextBox1.Text = "" Then
          Beep
          MsgBox "Sie müssen zuerst die Drehfeldauswahl treffen!"
          Exit Sub
       End If
       For iCells = 1 To 4
          sTxt = Controls("TextBox" & iCells).Text
          For iColumns = 1 To 4
             If iColumns < 4 Then
                Cells(12, iC) = Left(sTxt, InStr(sTxt, vbLf) - 2)
                sTxt = Right(sTxt, Len(sTxt) - InStr(sTxt, vbLf))
                iC = iC + 1
             Else
                Cells(12, iC) = sTxt
                iC = iC + 1
             End If
          Next iColumns
       Next iCells
    End Sub