Hi Leute,wer kann mir weiterhelfen.
(Einsteiger VBA)
ich möchte in einer Exeltabelle (Exel 2000) eine bestimmte Zeile
finden und bei höherem Wert soll dieser Wert überschrieben werden.
Versuch es mal verständlich zu erklären.
Habe eine Sporttabelle mit 4 Spalten, die mit Daten aus einer
UserForm gefüllt wird.
SpalteB=Startnummer
SpalteC=Name
SpalteD=Vorname
SpalteE=Ergebnis
Die Sportler starten immer mit der gleichen Startnummer so oft
wie sie wollen. Wenn zum Beispiel der Sportler mit der Startnummer
10 ein weitere Ergebnis abgibt,soll in der Tabelle die Zeile mit
der Startnummer 10 gefunden werden und das Ergebnis überschrieben werden.Die Startnummer 10 soll aber nur überschrieben werden, wenn das abgegeben Ergebnis höher ist als der vordene Wert in der Tabelle. Ist die Startnummer 10 noch nicht vorhanden, wird eine neue Zeile gefüllt. Die Daten werden immer aus der Userform in die Tabelle übertragen,(TextBox1=Startnummer,TextBox2=Name,TextBox3=Vorname,
TextBox4= Ergebnis)gefüllt mit „AktiveCell“ aus der Anmeldeliste.
Die Tabelle wird automatisch sortiert nach Ergebniswert.
Überschreiben funktioniert nicht, es wird immer eine neue Zeile
gefüllt. Die Tabelle hat in der 1.Zeile eine Überschrift.
Hier der Code der im Modul der UserForm steht:
Sub Bedingtes_übertragen()
Dim varZeilennummer As Variant
With Tabelle4
varZeilennummer = Application.Match(.Columns(„B:B“), CInt(Me.TextBox1), 0)
If IsNumeric(varZeilennummer) Then
If CDbl(Me.TextBox4) > CDbl(Tabelle4.Cells(CLng(varZeilennummer), 5)) Then
Tabelle4.Cells(CLng(varZeilennummer), 5) = CDbl(Me.TextBox4)
Else
MsgBox „Keine neue persönliche Bestmarke!“
End If
Else
Call Neuen_Starter_eintragen
End If
End With
Unload Me
End Sub
Sub Neuen_Starter_eintragen()
Dim lngZeile As Long
If Len(Me.TextBox1) * Len(Me.TextBox2) * Len(Me.TextBox3) * Len(Me.TextBox4) > 0 Then
With Tabelle4
lngZeile = Tabelle4.Cells(.Rows.Count, 2).End(xlUp).Row + 1
Tabelle4.Cells(lngZeile, 2).Value = CInt(Me.TextBox1)
Tabelle4.Cells(lngZeile, 3).Value = Me.TextBox2
Tabelle4.Cells(lngZeile, 4).Value = Me.TextBox3
Tabelle4.Cells(lngZeile, 5).Value = CDbl(Me.TextBox4)
End With
Else
MsgBox „Starterdaten fehlen!“
End If
End Sub
Private Sub CommandButton1_Click()
Call Bedingtes_übertragen
End Sub
Private Sub UserForm_Initialize()
Dim Wiederholungen As Integer
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Activate()
Call Zellen_ZuOrdnen
End Sub
Sub Zellen_ZuOrdnen()
Dim WS As Worksheet
Set WS = ActiveCell.Parent
For i = 1 To 3
UserForm2.controls(„Textbox“ & i).ControlSource = WS.Cells(ActiveCell.Row, i).Address
Next i
End Sub
Gruß Skaletti!