Hallo @all
hier erstmal die Codeschnipsel:
und
Mit dieser Codezeile ist es möglich die Listbox in der Ansicht zu beeinflussen (Herkunft=Tabellenblatt)
was ich erreichen möchte:
strErgebnisse = "25.09.2014" auch ändern sofern es funktionieren könnte den Fokus auf das neue Blatt zu lenken
Habe es mit der Zeile
versucht, ohne Ergebnis bzw. Fehlermeldung "Index ausserhalb Bereich"
Debugger hält bei markierter Codezeile:
Warum klappt meine Vorgehensweise so nicht?
Bitte erkläre mir das, wenn du gewillt bist.
Zur Zeit muss ich im Code das neue Blatt manuell einfügen/ändern strErgebnisse = "25.09.2014"
Kann mir einer von euch VBAlern helfen
vorab Danke für deine/eure freiwillge Hilfe
hier erstmal die Codeschnipsel:
Code:
Sub Cmd_Aktualisieren_Click()
'BEGINN: VARIABLENDEKLARATION
Dim strErgebnisse As String 'Tabelle mit Ergebnissen
Dim strDaten As String 'Tabelle mit Daten
Dim intErsteLeereZeile As Integer 'Erste leere Zeile
Dim intZeileAuffuellen As Integer 'Aufzufüllende Zeile
Dim intCtr_1 As Integer 'Zähler 1
Dim intSpielIDSpalte As Integer 'Spalte mit Spiel-ID
Dim intKeglerSpalte As Integer 'Spalte mit Kegler
Dim intSpielBeendetSpalte As Integer 'Spalte Spiel beendet?
'----------------------------------------------------------------------------------------------
'FESTLEGUNG FESTSTEHENDER WERTE auf VARIABLEN
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'hier den Wert will ich automatisch ändern lassen
strErgebnisse = "25.09.2014" ' <-----
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
strDaten = "Daten"
intSpielIDSpalte = 3
intKeglerSpalte = 4
intSpielBeendetSpalte = 41
intZeileAuffuellen = 0 'Startwert
'----------------------------------------------------
und
Code:
Sub CmdEingabe_Click()
'----------------------------------------------------------------------------------------------
'BEGINN: VARIABLENDEKLARATION
Dim strErgebnisse As String 'Tabelle mit Ergebnissen
Dim strDaten As String 'Tabelle mit Daten
Dim intErsteLeereZeile As Integer 'Erste leere Zeile
Dim intZeileAuffuellen As Integer 'Aufzufüllende Zeile
Dim intCtr_1 As Integer 'Zähler 1
Dim intCtr_2 As Integer 'Zähler 2
Dim intSpielIDSpalte As Integer 'Spalte mit Spiel-ID
Dim intKeglerSpalte As Integer 'Spalte mit Kegler
Dim intSpielBeendetSpalte As Integer 'Spalte Spiel beendet?
'----------------------------------------------------------------------------------------------
'FESTLEGUNG FESTSTEHENDER WERTE auf VARIABLEN
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'hier den Wert will ich automatisch ändern lassen
strErgebnisse = "25.09.2014" ' <-----
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
intCtr_2 = 0
strDaten = "Daten"
intSpielIDSpalte = 3
intKeglerSpalte = 4
intSpielBeendetSpalte = 41
intZeileAuffuellen = 0 'Startwert
'----------------------------------------------------
'BESTIMMUNG DER ERSTEN LEEREN ZEILE
intCtr_1 = 2 'Beginne erst bei Zeile 3 zu zählen! Wegen Leerzeile 2
Do
intCtr_1 = intCtr_1 + 1
Loop Until (ActiveWorkbook.Worksheets(strErgebnisse).Cells(intCtr_1, 1).Value = "")
intErsteLeereZeile = intCtr_1
'BESTIMMUNG DER RICHTIGEN ZEILE ZUM SCHREIBEN
For intCtr_1 = 1 To intErsteLeereZeile
'Suche nach NICHT BEENDETEN SPIELEN
If ActiveWorkbook.Worksheets(strErgebnisse).Cells(intCtr_1, intSpielBeendetSpalte).Value = "" Then
'Suche nach RICHTIGER SPIEL-ID
If ActiveWorkbook.Worksheets(strErgebnisse).Cells(intCtr_1, intSpielIDSpalte).Value = CboSpiel.Value Then
'Suche nach RICHTIGEM SPIELER
If ActiveWorkbook.Worksheets(strErgebnisse).Cells(intCtr_1, intKeglerSpalte).Value = CboKegler.Value Then
'RICHTIGE ZEILE ZUM SCHREIBEN MERKEN
intZeileAuffuellen = intCtr_1
intCtr_1 = intErsteLeereZeile 'Abbruch der Schleife erzeugen
End If
End If
End If
Next intCtr_1
If intZeileAuffuellen = 0 Then
intZeileAuffuellen = intErsteLeereZeile
End If
Code:
ListBox1.RowSource = Sheets(Worksheets("Start").Range("b2").Text).Range("B2:AA30").Address(External:=True)
strErgebnisse = "25.09.2014" auch ändern sofern es funktionieren könnte den Fokus auf das neue Blatt zu lenken
Habe es mit der Zeile
Code:
strErgebnisse = Sheets(Worksheets("Start").Range("b2").Text).Range("B2:AA30").Address(External:=True)
Debugger hält bei markierter Codezeile:
Code:
Loop Until (ActiveWorkbook.Worksheets(strErgebnisse).Cells(intCtr_1, 1).Value = "")
Warum klappt meine Vorgehensweise so nicht?
Bitte erkläre mir das, wenn du gewillt bist.
Zur Zeit muss ich im Code das neue Blatt manuell einfügen/ändern strErgebnisse = "25.09.2014"
Kann mir einer von euch VBAlern helfen
vorab Danke für deine/eure freiwillge Hilfe