StartNr. suchen und Ergebnis in übernächste Spalte

Hi,
habe ein Problem. Zu schwierig für mich, muss aber gemacht werden.
Neben der Einzeltabelle gibt es für jede Klasse eine Mannschaftstabelle in die die Ergebnisse müssen.(Exel 2000)

Die Daten werden aus einem UserForm übertragen.
Startnummer = TextBox 1 - Ergebnis TextBox 8

Die Starnummern stehen in den Spalten D,G oder J.
Die Ergebnisse müssen in Spalte F,I oder L.
Wird die Startnummer in Spalte D gefunden, muss das Ergebnis in Spalte F.
Startnummer in Spalte G = Ergebnis in Spalte I
Startnummer in Spalte J = Ergebnis in Spalte L
Ich hoffe das ist soweit verständlich.
Wer Weiss Wie?
Mit bestem Dank im voraus.

Hier die Tabelle:
http://www.hostarea.de/server-06/Juni-018f53dcfc.xls

Gruß Ulli!

Sorry,
Habe was ganz wichtiges vergessen. Tut mir leid.
Das ist eine sehr große Anwendung mit 40 Tabellen.
In UserForm gibt es noch eine ComboBox aus der ich die verschiedenen klassen aufrufe.
z.B. Wenn ich „LG frei Schüler“ aufrufe wird dadurch bestimmt das alle Daten aus dem UserForm(Alle TextBoxen) in Tabelle5 gehen (Einzeltabelle Schüler), und nur der Wert aus TextBox8 soll in Tabelle27 in die richtige Spalte (Mannschaften Schüler). Also soll auch der Aufruf aus der ComboBox bestimmen in welche Tabelle
der Wert aus TextBox8(Mannschaftstabellen) übertragen werden soll.

Einzeltabelle:
Select Case Me.ComboBox1.Value 'Wert der verglichen wird
Case „LG frei Schüler“ 'Möglichkeit 1
Set wksKlasse = Tabelle5
Case „LG frei Jugend“ 'Möglichkeit 2
Set wksKlasse = Tabelle6
usw.

So kann ich mit der Combobox jede Tabelle ansprechen.

'Werte aus Textboxen in Tabelle
Dim lngZeile As Long

If Len(Me.TextBox1) * Len(Me.TextBox2) * Len(Me.TextBox3) * Len(Me.TextBox4) * Len(Me.TextBox5) * Len(Me.TextBox6) * Len(Me.TextBox7) * Len(Me.TextBox8) > 0 Then
With wksKlasse
lngZeile = wksKlasse.Cells(.Rows.Count, 3).End(xlUp).Row + 1
wksKlasse.Cells(lngZeile, 10).Value = CInt(Me.TextBox1)
wksKlasse.Cells(lngZeile, 3).Value = Me.TextBox2
wksKlasse.Cells(lngZeile, 4).Value = Me.TextBox3
wksKlasse.Cells(lngZeile, 5).Value = Me.TextBox4
wksKlasse.Cells(lngZeile, 6).Value = Me.TextBox5
wksKlasse.Cells(lngZeile, 7).Value = Me.TextBox6
wksKlasse.Cells(lngZeile, .Value = Me.TextBox7
wksKlasse.Cells(lngZeile, 9).Value = CDbl(Me.TextBox8)

Gruß Skaletti!

Hallo Skaletti.

Vorausgesetzt du bist schon in der richtigen Tabelle und hast die Startnummer und das Ergebnis als Variable vorliegen (folgend startnummer bzw. ergebnis), dann müsste das hier helfen.

sub test()

i=4
do until Range(„D“&i)=""
if activecell=startnummer then
range(„F“&i)=ergebnis
if 1=1 then goto ende
else
endif
i=i+1
Loop

i=4
do until Range(„G“&i)=""
if activecell=startnummer then
range(„I“&i)=ergebnis
if 1=1 then goto ende
else
endif
i=i+1
Loop

i=4
do until Range(„J“&i)=""
if activecell=startnummer then
range(„L“&i)=ergebnis
if 1=1 then goto ende
else
endif
i=i+1
Loop

ende:

endsub

Aufpassen musst du meiner erfahrung nach mit den Bezeichnungen 001, weil hier die beiden 00 vor der 1 gerne mal verschluckt werden. Bei mir hat sich als Sicherheit herausgestellt, dass ich die Variablen als string definiere, dann wird mit „001“ verglichen.

Den Rest hab ich - muss ich zugeben - nicht ganz vollständig verstanden, allerdings benutze ich auch weniger deine Art der Programmierung und durchschaue das deshalb nicht gleich.

Grüße, Aiko.

Hallo Aiko,
Danke für deine schnelle Antwort.

Ich bin bei der Ergebniserfassung nicht in der Tabelle 27, sondern in der Tabelle4 (Ergebniserfassung) wo die ganzen Anmeldedaten der Sportler stehen. Hier aktiviere ich die Zeile mit der Startnummer die gebraucht wird und Lade damit die TextBoxen in der UserForm.Jetzt kommt das Ergebnis dazu (TextBox8), in einer Combobox wird „LG frei Schüler“ aktiviert, und die Daten werden in die Tabelle5 „LG frei Schüler Einzel“ übertragen.
Ich habe das Makro (das funzt) für diesen Vorgang mit Kommentaren beigefügt damit das Ganze für dich leichter verständlicher wird.
In dem 2. Makro habe ich deinen Code reingesetzt, aber nur um dir
erklären zu können wie das nach meinen Vorstellungen laufen soll.
Das funktioniert natürlich nicht!!! Dient nur der Erklärung.

Danke im voraus für deine Mühe.

Gruß Skaletti!

Sub Bedingtes_übertragen()
’ Tabelle5 LG frei Schüler Einzel
Dim wksKlasse As Worksheet
'hier bestimme mit dem Aufruf aus der ComboBox ich in welche Tabelle die Daten sollen
’ in der ComboBox stehen die Klassen LG frei Schüler, LG frei Jugend usw.
Select Case Me.ComboBox1.Value
Case „LG frei Schüler“
Set wksKlasse = Tabelle5
'Select Case Me.ComboBox1.Value
'Case „LG frei Jugend“
'Set wksKlasse = Tabelle28
'usw.
'ist für jede weitere Tabelle erweiterbar
End Select

With wksKlasse
'Startnummer suchen(Textbox1) und Wert überschreiben wenn Wert in (TextBox8)höherist
'(für eventuelle Korrekturen)
i = 3
Do While .Range(„J“ & i) „“
If CInt(.Range(„J“ & i)) = CInt(Me.TextBox1) Then
If CDbl(Me.TextBox8) > CDbl(.Range(„I“ & i)) Then

.Range(„I“ & i) = CDbl(Me.TextBox8)
End If
Exit Sub
End If

i = i + 1
Loop
End With

’ Daten aus den TextBoxen in die nächste freie Zeile und richtige Spalte
Dim lngZeile As Long

If Len(Me.TextBox1) * Len(Me.TextBox2) * Len(Me.TextBox3) * Len(Me.TextBox4) * Len(Me.TextBox5) * Len(Me.TextBox6) * Len(Me.TextBox7) * Len(Me.TextBox8) > 0 Then
With wksKlasse
lngZeile = wksKlasse.Cells(.Rows.Count, 3).End(xlUp).Row + 1
wksKlasse.Cells(lngZeile, 10).Value = CInt(Me.TextBox1)
wksKlasse.Cells(lngZeile, 3).Value = Me.TextBox2
wksKlasse.Cells(lngZeile, 4).Value = Me.TextBox3
wksKlasse.Cells(lngZeile, 5).Value = Me.TextBox4
wksKlasse.Cells(lngZeile, 6).Value = Me.TextBox5
wksKlasse.Cells(lngZeile, 7).Value = Me.TextBox6
wksKlasse.Cells(lngZeile, 8).Value = Me.TextBox7
wksKlasse.Cells(lngZeile, 9).Value = CDbl(Me.TextBox8)

End With
Else
MsgBox „Starterdaten fehlen!“
End If
End Sub

Sub Mannschaft_übertragen() 'Tabelle27 LG frei Schüler Mannsch.

Dim wksKlasse As Worksheet

'hier bestimme mit dem Aufruf aus der Combobox ich in welche Tabelle die Daten sollen
Select Case Me.ComboBox1.Value
Case „LG frei Schüler“
Set wksKlasse = Tabelle27
End Select

'Startnummer in Tabelle27 Spalte D,G oder J suchen(steht in UserForm TextBox1)
'Ergebnis übertragen in Spalte F,I oder L (steht in UserForm TextBox8)
i = 4
Do Until Range(„D“ & i) = „“
If ActiveCell = („TextBox1“) Then
Range(„F“ & i) = („TextBox8“)

If 1 = 1 Then GoTo ende
Else
End If
i = i + 1
Loop

i = 4
Do Until Range(„G“ & i) = „“
If ActiveCell = startnummer Then
Range(„I“ & i) = ergebnis

If 1 = 1 Then GoTo ende
Else
End If
i = i + 1
Loop

i = 4
Do Until Range(„J“ & i) = „“
If ActiveCell = startnummer Then
Range(„L“ & i) = ergebnis

If 1 = 1 Then GoTo ende
Else
End If
i = i + 1
Loop

ende:

Unload Me

End Sub

Hallo Skaletti.

Wenn ich dich richtig verstanden habe, dann funktioniert folgender Teil nicht:

'Startnummer in Tabelle27 Spalte D,G oder J suchen(steht in
UserForm TextBox1)
'Ergebnis übertragen in Spalte F,I oder L (steht in UserForm
TextBox8)
i = 4
Do Until Range(„D“ & i) = „“
If ActiveCell = („TextBox1“) Then
Range(„F“ & i) = („TextBox8“)

If 1 = 1 Then GoTo ende
Else
End If
i = i + 1
Loop

i = 4
Do Until Range(„G“ & i) = „“
If ActiveCell = startnummer Then
Range(„I“ & i) = ergebnis

If 1 = 1 Then GoTo ende
Else
End If
i = i + 1
Loop

i = 4
Do Until Range(„J“ & i) = „“
If ActiveCell = startnummer Then
Range(„L“ & i) = ergebnis

If 1 = 1 Then GoTo ende
Else
End If
i = i + 1
Loop

ende:

Unload Me

End Sub

Bekommst du eine Fehlermeldung? Wo genau hakt es. Ich könnte mir vorstellen, dass die abfrage

If ActiveCell = („TextBox1“) Then

das Problem ist weil er zB 6 und „6“ vergleicht. Beides wäre für VB nicht identisch, und somit springt er nicht in die anschließende Ausführung. ich mache dann immer haltepunkte, gehe Schritt für Schritt vor und wenn ich dann auf der Abfrage bin, überprüfe ich mit der Maus, das aktuell verglichen wird.

Aber wie schon erwähnt, ih kenne mich mit TextBox und so noch nicht wirklich aus, weil ich das meist einfach direkt in die Zellen schreibe.

Oh, du müsstest der vollständigkeit halber

If ActiveCell = („TextBox1“) Then
Range(„F“ & i) = („TextBox8“)

überall entsprechend einsetzen, sonst würde er die Variablen startnummer und ergebnis suchen (aber das hast du wahrscheinlich berücksichtigt).

Grüße, Aiko.

Hallo Aiko,
Es funzt jetzt.
Mit „aktivCells“ geht das nicht.
Aber der Grundaufbau deines Codes hat mich auf den Weg gebracht.
Startnummern ohne „00“
„Man steht manchmal wie ein Ochse vor einem Berg.“
Habe das Makro etwas umgeschrieben.
Vielen, Vielen Dank für deine Hilfe und Geduld!

Falls es dich interessiert, hier das jetzige Makro:

Gruß Skaletti!

Select Case Me.ComboBox1.Value
Case „LG frei Schüler“
Set wksKlasse = Tabelle27
End Select

'Startnummer in Tabelle27 Spalte D,G oder J suchen(steht in UserForm TextBox1)
'Ergebnis übertragen in Spalte F,I oder L (steht in UserForm TextBox8)
With wksKlasse
i = 4
Do While .Range(„D“ & i) „“
If CInt(.Range(„D“ & i)) = CInt(Me.TextBox1) Then
.Range(„F“ & i) = CDbl(Me.TextBox8)
If 1 = 1 Then GoTo ende
Else
End If
i = i + 1
Loop

i = 4
Do While .Range(„G“ & i) „“
If CInt(.Range(„G“ & i)) = CInt(Me.TextBox1) Then
.Range(„I“ & i) = CDbl(Me.TextBox8)
If 1 = 1 Then GoTo ende
Else
End If
i = i + 1
Loop

i = 4
Do While .Range(„J“ & i) „“
If CInt(.Range(„J“ & i)) = CInt(Me.TextBox1) Then
.Range(„L“ & i) = CDbl(Me.TextBox8)

If 1 = 1 Then GoTo ende
Else
End If
i = i + 1
Loop
End With
ende:

Unload Me

End Sub