zeile mit variable vergleichen

hertie

Grünschnabel
hallo, ich möchte ein Programm schreiben, in dem ich einen Wert(Seriennummer) eingeben kann und der diesen Wert mit den Werten aus meiner Excel tabelle vergleicht, wenn der Wert schon einmal vorhanden ist, soll eine Fehlermeldung erscheinen.

wäre nett wenn ihr mir helfen könnt.
vielen dank
 
Moin moin,

bestimmt können wir Dir helfen. Nur gib' uns mal bisschen mehr Info. Was hast Du denn schon und wo klemmt's genau!?

Gruß
 
Hallo.

Ich gehe mal aus, dass du ein Excel-Makro schreiben möchtest.
mit
Code:
Tabelle1.Cells(SpaltenNr, ZeilenNr).Value
kannst du den Inhalt einer Zelle abfragen oder setzen. Alles was du jetzt noch machen musst, ist deine SereinNr mit allen Inhalten des Bereiches in dem du suchst zu vergleichen:
Code:
Public Sub Test(SerienNr As String)
    Dim I As Integer
    
    For I = 1 To 20
        If Tabelle1.Cells(I, 1).Value = SerienNr Then
            Call MsgBox("Gibt's schon.", vbOKOnly, "Fehler.")
            Exit Sub
        End If
    Next I
End Sub

In diesem Bsp. muesste deine Liste an Sereinnummern zwischen A1 und A20 stehen. Ach ja, dein Tabellenblatt müsste in diesem Beispiel natürlich 'Tabelle1' lauten.
 
Zuletzt bearbeitet:
ich hab eine excel datei, in der die seriennummern aufgelistet sind, a1 bis a82, b1 bis b82 und so weiter....
und ich will in eine neue spalte eine serien nummer eingeben können, diese soll dann überprüft werden, ob es diese seriennummer in der datei schon gibt, wenn nicht, dann soll sie in die nächste freie zeile geschrieben werden.

ich habe das programm zur hälfte fertig. es fehlt nur noch die überprüfung.

das ist mein programm bis jetzt



Public Function test()

Dim x As String
Dim zeile, spalte As Integer
spalte = 1
zeile = 1


schleife:

x = InputBox("nummer eingeben")
Worksheets("kurse").Cells(zeile, spalte) = x
zeile = zeile + 1
If x = "ende" Then GoTo Endee
If zeile = 82 Then spalte = spalte + 1
If zeile = 82 Then zeile = 1

GoTo schleife
Endee:

End Function

ich hoffe ich habe es deutlich erklärt =) ich wüsste nicht was ich sonst noch schreiben sollte...
ich hoffe ihr könnt mir helfen.
vielen dank
 
So, hab mal eine kurze Sub geschrieben, hier erst mal der Code:
Visual Basic:
Sub test()
 'Deklarationen
 Dim x As String, Spalten As Integer, Zeile As Integer
 
 'Anzahl der maximalen Spaltenzahl ermitteln
 Spalten = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
 'Seriennummer eingeben
 x = InputBox("nummer eingeben")
 With ActiveSheet
  'Suche im ganzen Bereich die eingegebene Nummer
  Set cIn = .Range(.Cells(1, 1), .Cells(82, Spalten)).Find(x, LookIn:=xlValues)
  'Wenn nicht gefunden
  If cIn Is Nothing Then
   'Letzte Zeile der letzten Spalte ermitteln
   Zeile = .Cells(.Rows.Count, Spalten).End(xlUp).Row + 1
   'Wenn Spalte voll dann nächste Spalte
   If Zeile = 83 Then Spalten = Spalten + 1: Zeile = 1
   'Und die Nummer schreiben
   .Cells(Zeile, Spalten).Value = x
  Else:
   'Wenn Nummer doch gefunden, Meldung ausgeben
   MsgBox "Schon vorhanden"
  End If
 End With
End Sub
Ich arbeite hier ohne End-Tag, es wird automatisch die letzte beschriebene Spalte ermittelt (in der ersten Zeile). Die Prüfung geht dann nicht über eine Schleife sondern über die Find-Funktion von Excel.


Der Doc!
 
Zurück