Registriert seit: 09.09.2016
Version(en): 2010
13.09.2016, 09:52
(Dieser Beitrag wurde zuletzt bearbeitet: 13.09.2016, 09:52 von chrjh.)
Ein neuer Tag, ein neues Problem :) Ich versuche im Moment eine Funktion zu erstellen, mit der ein bestimmter Text in einer Zeile gesucht werden soll. Wird dieser gefunden, soll zu der Zielzelle gesprungen werden. Falls es den Text nicht in der Zeile gibt, soll es eine Fehlermeldung geben. Mein Code sieht im Moment noch so aus:
' Suchzeile wird initialisiert r = 2 Dim welchesSheet As String Dim welcherTyp As String welchesSheet = InputBox("Hier Typ eingeben.") welcheVariante = InputBox("Variante eingeben ") ' Excel springt zu definiertem Tabellenblatt Sheets(welchesSheet).Activate
For s = 1 To 200 If Cells(r, s) = welcheVariante Then Application.Goto Reference:=Worksheets(welchesSheet).Range(r, s), _ scroll:=True Else MsgBox ("Variante nicht gefunden!") End If Next
Der Code funktioniert leider noch nicht. Ich weiß, dass die Else-Funktion eigentlich erst später kommen sollte, aber wie genau muss ich das definieren? Viele Grüße chrjh
Registriert seit: 11.04.2014
Version(en): Office 2007
13.09.2016, 10:05
(Dieser Beitrag wurde zuletzt bearbeitet: 13.09.2016, 10:05 von Steffl.
Bearbeitungsgrund: Variablen angepaßt
)
Hallo, teste mal Code: Sub prcSuchen()
' Suchzeile wird initialisiert Dim welchesSheet As String Dim welcheVariante As String Dim rngTreffer As Range r = 2 welchesSheet = InputBox("Hier Typ eingeben.") welcheVariante = InputBox("Variante eingeben ") ' Excel springt zu definiertem Tabellenblatt With Worksheets(welchesSheet) 'Sheets(welchesSheet).Activate Set rngTreffer = .Cells(r, 1).Resize(, 200).Find(welcheVariante, LookIn:=xlValue, lookat:=xlWhole) If Not rngTreffer Is Nothing Then .Activate .Cells(r, rngTreffer.Column).Select Else MsgBox "Variante nicht gefunden!", vbInformation End If 'For s = 1 To 200 'If Cells(r, s) = welcheVariante Then ' Application.Goto Reference:=Worksheets(welchesSheet).Range(r, s), _ ' scroll:=True 'Else ' MsgBox ("Variante nicht gefunden!") 'End If 'Next End With End Sub
Gruß Stefan Win 10 / Office 2016
Registriert seit: 09.09.2016
Version(en): 2010
13.09.2016, 10:15
(Dieser Beitrag wurde zuletzt bearbeitet: 28.09.2016, 15:57 von Rabe.
Bearbeitungsgrund: Full-Quote reduziert
)
(13.09.2016, 10:05)Steffl schrieb: teste mal Hi Steffl, danke schonmal für deine Antwort. Leider bekomme ich aber noch einen Laufzeitfehler bei Set rngTreffer = .Cells(r, 1).Resize(, 200).Find(welcherTyp, LookIn:=xlValue, lookat:=xlWhole) EDIT: Excel sagt mir: "Objekt unterstützt diese Eigenschaften oder Methode nicht" chrjh
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo, sorry, habe das nicht getestet (es fehlt ein s bei Values Code: Sub prcSuchen()
' Suchzeile wird initialisiert Dim welchesSheet As String Dim welcheVariante As String Dim rngTreffer As Range Dim r r = 2 welchesSheet = InputBox("Hier Typ eingeben.") welcheVariante = InputBox("Variante eingeben ") ' Excel springt zu definiertem Tabellenblatt With Worksheets(welchesSheet) 'Sheets(welchesSheet).Activate Set rngTreffer = .Cells(r, 1).Resize(, 200).Find(welcheVariante, LookIn:=xlValues, lookat:=xlWhole) If Not rngTreffer Is Nothing Then .Activate .Cells(r, rngTreffer.Column).Select Else MsgBox "Variante nicht gefunden!", vbInformation End If 'For s = 1 To 200 'If Cells(r, s) = welcheVariante Then ' Application.Goto Reference:=Worksheets(welchesSheet).Range(r, s), _ ' scroll:=True 'Else ' MsgBox ("Variante nicht gefunden!") 'End If 'Next End With End Sub
Gruß Stefan Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• chrjh
Registriert seit: 09.09.2016
Version(en): 2010
Perfekt! Jetzt funktioniert es wie gewollt. Gibt es vielleicht noch die Möglichkeit das so anzupassen, dass beim Sprung in die Zelle, die Zelle am linken Rand steht? Wenn ich jetzt in meiner Tabelle nach Varianten suche, liegt die Zelle ungefähr in der Mitte. Viele Grüße chrjh
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo, Code: Sub prcSuchen()
' Suchzeile wird initialisiert Dim welchesSheet As String Dim welcheVariante As String Dim rngTreffer As Range Dim r r = 2 welchesSheet = InputBox("Hier Typ eingeben.") welcheVariante = InputBox("Variante eingeben ") ' Excel springt zu definiertem Tabellenblatt With Worksheets(welchesSheet) 'Sheets(welchesSheet).Activate Set rngTreffer = .Cells(r, 1).Resize(, 200).Find(welcheVariante, LookIn:=xlValues, lookat:=xlWhole) If Not rngTreffer Is Nothing Then ' .Activate ' .Cells(r, rngTreffer.Column).Select Application.Goto reference:=.Cells(r, rngTreffer.Column), scroll:=True Else MsgBox "Variante nicht gefunden!", vbInformation End If 'For s = 1 To 200 'If Cells(r, s) = welcheVariante Then ' Application.Goto Reference:=Worksheets(welchesSheet).Range(r, s), _ ' scroll:=True 'Else ' MsgBox ("Variante nicht gefunden!") 'End If 'Next End With End Sub
Gruß Stefan Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• chrjh
Registriert seit: 09.09.2016
Version(en): 2010
Und nochmal danke! Genau so hatte ich mir das vorgestellt :) Viele Grüße chrjh
|