Mehrere If-Abfragen
27.07.2003 08:20:52
Erich M.
ich habe ein Makro, das drei Abfragen
=
kleiner
größer
durchführen und dann entsprechend reagieren soll. Funktioniert aber leider nur bei "=" und "kleiner";
bei "größer" kommt immer das gleiche Ergebnis wie bei "kleiner".
Kann jemand einen Fehler erkennen?
Private Sub CommandButton1_Click()
Dim zeile1 As Long, zeile2 As Long, zeile3 As Long, Tab1 As Worksheet, Tab2 As Worksheet
Dim myName1 As String, Auswahl As String, myDatei As String
Dim myWert1 As Integer, mySpalte As Integer
Dim myName2 As String, gefunden As Boolean
Dim zelle As Range, Tb(1 To 15) As Worksheet, zeile As Long
If ComboBox1.Text = "" Then MsgBox "Bitte Datei auswählen.", 48, "Hinweis": Exit Sub
If ComboBox2.Text <> "" Then Set Tb(1) = Workbooks(ComboBox1.Text).Worksheets(ComboBox2.Text) Else MsgBox "Bitte Tabellenblatt 1 auswählen.", 48, "Hinweis": Exit Sub
If ComboBox3 = "" Then MsgBox "Beschreibung auswählen.", 48, "Hinweis": Exit Sub
If ComboBox4 = "" Then MsgBox "Bitte Suchspalte auswählen.", 48, "Hinweis": Exit Sub
myDatei = ComboBox1.Text 'Datei in der gesucht wird
myWert1 = TextBox1.Text 'Suchbegriff Wert
Auswahl = ComboBox3.Text 'kleiner oder gleich
myName1 = ComboBox2.Text 'Suchtabelle
mySpalte = ComboBox4.Text 'Suchspalte in Suchtabelle
Workbooks(ComboBox1.Text).Activate
Sheets(ComboBox2.Text).Select
Range("A1").Select
Set Tab1 = Sheets(ComboBox2.Text) ' = Ausgangstabelle, Suchtabelle
TabAuswahl
Sheets("Gefundene Werte").Cells.Clear
Sheets("Gefundene Werte").Cells(1, 1) = "Der Wert " & Auswahl & " " & myWert1 & _
" wurde in der Datei " & myDatei & ", Tabelle " & myName1 & _
", in der Spalte " & mySpalte & " gefunden"
Set Tab2 = Sheets("Gefundene Werte") ' = Eingabetabelle
If Auswahl = "=" Then
If Tab2.Cells(1, 1) = "" Then zeile2 = 2 Else zeile2 = Tab2.Cells(65536, 1).End(xlUp).Row + 1
For zeile1 = 1 To Tab1.Cells(65536, mySpalte).End(xlUp).Row
If Tab1.Cells(zeile1, mySpalte) = myWert1 Then Tab1.Rows(zeile1).Copy Tab2.Rows(zeile2)
zeile2 = Tab2.Cells(65536, 1).End(xlUp).Row + 1
Next
ElseIf Auswahl = "kleiner" Then
If Tab2.Cells(1, 1) = "" Then zeile2 = 2 Else zeile2 = Tab2.Cells(65536, 1).End(xlUp).Row + 1
For zeile1 = 1 To Tab1.Cells(65536, mySpalte).End(xlUp).Row
If Tab1.Cells(zeile1, mySpalte) < myWert1 Then Tab1.Rows(zeile1).Copy Tab2.Rows(zeile2)
zeile2 = Tab2.Cells(65536, 1).End(xlUp).Row + 1
Next
ElseIf Auswahl = "größer" Then
If Tab2.Cells(1, 1) = "" Then zeile2 = 2 Else zeile2 = Tab2.Cells(65536, 1).End(xlUp).Row + 1
For zeile1 = 1 To Tab1.Cells(65536, mySpalte).End(xlUp).Row
If Tab1.Cells(zeile1, mySpalte) < myWert1 Then Tab1.Rows(zeile1).Copy Tab2.Rows(zeile2)
zeile2 = Tab2.Cells(65536, 1).End(xlUp).Row + 1
Next
End If
Unload Me
Sheets("Gefundene Werte").Activate
Range("B2").Select
ActiveWindow.FreezePanes = True
Range("J1").Select
End Sub
Code eingefügt mit: Excel Code Jeanie
Besten Dank für eine Hilfe!
mfg
Erich