Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Prüfen ob Datensatz vorhanden ist
17.04.2017 17:24:38
René
Hallo @ all,
ich brauche mal ein bisschen Anschwung von Euch :).
Ja der COde sieht bestimmt nach Müll aus, aber mir ist wichtig das er Funktioniert :)^^
Dies ist nur der Ausschnitt der mit Sorgen bereitet. Dies soll eine Wettkampfliste sein. Per _
Listbox, übertrage ich die Kämpfer von einem Tabellenblatt ins andere. Was jetzt nicht Funktioniert ist, die Überprüfung ob der Wettkämpfer bereits vorhanden ist, er Prüft nur den ersten Datensatz im Tabellenblatt alle anderen nicht. Wo ist mein Fehler? Jeder Hilfe ist gern gesehen. Das fett gedruckte macht mir Probleme hmm.
Danke schon mal

'Markierten Wettkämpfer zur Auswahl der Punktekämpfer hinzufügen
With Me.lboListeWettkaempfer
For intZeile = 2 To 1000
If Tabelle5.Cells(intZeile, 4).Value = "" Then
Exit For
ElseIf Tabelle5.Cells(intZeile, 1).Value = .List(.ListIndex, 0) And _
Tabelle5.Cells(intZeile, 2).Value = .List(.ListIndex, 1) And _
Tabelle5.Cells(intZeile, 4).Value = .List(.ListIndex, 3) Then

For intZeilePruefung = 2 To 1000
If Tabelle4.Cells(intZeilePruefung, 1).Value = .List(.ListIndex, 0) And _
Tabelle4.Cells(intZeilePruefung, 2).Value = .List(.ListIndex, 1) Then
MsgBox "Diesen Registrierten Kämpfer gibt es bereits!"
ElseIf Tabelle4.Cells(intZeilePruefung, 1).Value  .List(.ListIndex, 0) And _
Tabelle4.Cells(intZeilePruefung, 2).Value  .List(.ListIndex, 1) Then
For intZeileUebertragung = 2 To 1000
If Tabelle4.Cells(intZeileUebertragung, 1).Value = "" Then
Tabelle4.Cells(intZeileUebertragung, 1).Value = Tabelle5.Cells(intZeileSicherung, 1).Value
Tabelle4.Cells(intZeileUebertragung, 2).Value = Tabelle5.Cells(intZeileSicherung, 2).Value
Tabelle4.Cells(intZeileUebertragung, 3).Value = Tabelle5.Cells(intZeileSicherung, 3).Value
Tabelle4.Cells(intZeileUebertragung, 4).Value = Tabelle5.Cells(intZeileSicherung, 4).Value
Tabelle4.Cells(intZeileUebertragung, 5).Value = Tabelle5.Cells(intZeileSicherung, 5).Value
Exit For
Else
End If
Next intZeileUebertragung
Exit For
Else
End If
Next intZeilePruefung
Else
End If
Next intZeile
End With

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Datensatz vorhanden ist
17.04.2017 17:43:42
René
Habe eine Lösung gefunden, und zwar nicht verschachteln sondern vorab prüfen :)
With Me.lboListeWettkaempfer
For intZeilePruefung = 2 To 1000
If Tabelle4.Cells(intZeilePruefung, 4).Value = "" Then
Exit For
ElseIf Tabelle4.Cells(intZeilePruefung, 1).Value = .List(.ListIndex, 0) And _
Tabelle4.Cells(intZeilePruefung, 2).Value = .List(.ListIndex, 1) And _
Tabelle4.Cells(intZeilePruefung, 4).Value = .List(.ListIndex, 3) Then
MsgBox "Diesen Registrierten Kämpfer gibt es bereits!"
Exit Sub 'Wenn bereits vorhanden, beende den Sub
Else
End If
Next intZeilePruefung
End With
Anzeige
geht auch ohne Schleife..
18.04.2017 09:26:25
UweD
unter Verwendung von Summenprodukt oder Zählenwenns() per VBA
Habe keine Lust die Daten nachzubilden; lad mal eine Musterdatei hoch.
LG UweD
Ohne Beispiel Datei schwer...
18.04.2017 16:43:11
Max2
Hallo,
bitte gib uns doch eine Beispieldatei...
Hier ist einfach ein bisschen ungetesteter Code zur "Anregung".
Habe den Quick and Dirty geschrieben.
Er sucht einfach nach dem Namen eines Kämpfers, die Variablen usw. muss man natürlich anpassen.
Die Zuweisung der Namensvariable kann man in einer schleife Lösen.
Option Explicit
Public ws As Worksheet
Public rngToSearch As Range
Sub Main_Find_Data()
Dim i As Long
Dim fighterToSearch As String
fighterToSearch = "Kämpfer nach dem gesucht wird" 'Anpassen
Set ws = ThisWorkbook.Sheets("Sheet wo Daten her kommen") 'Anpassen
Set rngToSearch = .Range(.Cells(1, 1), .Cells(Last_Row, 1)) 'Anpassen
i = Data_to_Find(fighterToSearch) 'kann über Schleifen gemacht werden
If i = 0 Then
Set ws = ThisWorkbook.Sheets("Sheet wo er rein soll")
Call Add_Fighter_to_Sheet(fighterToSearch)
Else
MsgBox "Der Wettkämpfer ist bereits vorhanden!", Title:="ACHTUNG!"
End If
End Sub
Function Last_Row() As Long
With ws
Last_Row = .Cells(.Rows.Count, 1).End(xlUp).Row 'Anpassen
End With
End Function
Function Data_to_Find(ByVal search As String) As Long
With ws
Data_to_Find = rngToSearch.Find(what:=search, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext)
End With
End Function
Function Add_Fighter_to_Sheet(ByVal fighter As String)
Dim lZeile As Long
lZeile = Last_Row + 1
With ws
.Cells(lZeile, 1).Value = fighter
End With
End Function

Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige