Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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
Inhaltsverzeichnis

CommandButton suchen

CommandButton suchen
06.09.2013 09:11:06
Martin
Hallo zusammen,
habe mir in einer Excel Tabelle ca. 400 CommandButton mit Namen (Thomas, Günter, usw.) erstellt, die mich durch klicken auf ein anderes Tabellenblatt weiterleiten.
Jetzt meine Frage:
Kann man einen Button mit dem Namen „Suche“ erstellen; wenn ich auf diesen klicke ein Fenster aufgeht, wo ich einen Namen eingeben kann (z.B. Thomas) und er mir, wenn er den passenden Namen gefunden hat auch gleich öffnet? Falls dieser Name nicht besteht, sollte das natürlich in einem Fenster anzeigt werden. Wie sollte der VBA Befehl aussehen?
Vielen Dank im Voraus für Eure Bemühungen.
Gruß Martin

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CommandButton suchen
06.09.2013 09:20:11
hary
Moin Martin
Code in den Code des Buttons.
Option Explicit
Sub zeige()
Dim strName As String
strName = Application.InputBox("Name eingeben", "Namenanzeige") 'Inputbox
If SheetExist(strName) Then 'pruefe ob Name gibt
Worksheets(strName).Select 'bei ja gehe zu Blatt
Else
MsgBox "Name nicht vorhanden", vbInformation, "Hinweis"
End If
End Sub
Private Function SheetExist(ByVal sheetName As String, Optional Wb As Workbook) As Boolean
Dim wks As Worksheet
On Error GoTo ERRORHANDLER
If Wb Is Nothing Then Set Wb = ThisWorkbook
For Each wks In Wb.Worksheets
If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function
Next
ERRORHANDLER:
SheetExist = False
End Function

gruss hary

Anzeige
AW: Kommando zurueck ;-(
06.09.2013 09:27:40
hary
Hollo Martin
War ein Schreibfehler drin. Sollte ja fuer einen Button sein.
Geht so.
Option Explicit
Private Sub CommandButton1_Click()
Dim strName As String
strName = Application.InputBox("Name eingeben", "Namenanzeige") 'Inputbox
If SheetExist(strName) Then 'pruefe ob Name gibt
Worksheets(strName).Select 'bei ja gehe zu Blatt
Else
MsgBox "Name nicht vorhanden", vbInformation, "Hinweis"
End If
End Sub
Private Function SheetExist(ByVal sheetName As String, Optional Wb As Workbook) As Boolean
Dim wks As Worksheet
On Error GoTo ERRORHANDLER
If Wb Is Nothing Then Set Wb = ThisWorkbook
For Each wks In Wb.Worksheets
If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function
Next
ERRORHANDLER:
SheetExist = False
End Function

Anzeige
AW: Kommando zurueck ;-(
06.09.2013 10:06:49
Martin
Hallo Harry
erstmal vielen Dank für die prompte Antwort, habe es natürlch gleich ausprobiert.
Das Problem ist, wenn ich in das Suchfeld den Namen eingebe z.B. Thomas. Dann kommt der Hinweis
"Name nicht vorhanden" obwohl das der erste Button ist. An was kann das liegen?

AW: Kommando zurueck ;-(
06.09.2013 10:20:57
hary
Moin
Ich ging davon aus das die Blaetter ebenso heissen.
gruss hary

AW: Kommando zurueck ;-(
06.09.2013 10:26:22
Martin
Das Tabellenblatt wo sich die Button befinden heist "Namensübersicht".

AW: nein..
06.09.2013 10:31:29
hary
Moin
Ich hatte es so verstanden: Du gibst einen Namen ein und es wird das Blatt angezeigt.
"wenn er den passenden Namen gefunden hat auch gleich öffnet"
Dann hab ich dich missverstanden, sry. Dann passt der Code nicht.
gruss hary

Anzeige
AW: nein..
06.09.2013 10:46:19
Martin
Hallo Hary,
vielen Dank für die schnellen Antworten.
ich gehe davon aus das du dann keine Lösung dafür hast.
Deshalb stelle ich hier nochmals die Frage:
Mein Tabellenblatt nennt sich: Namensübersicht
darauf befinden sich verschiedene CommandButton mit Namen versehen (Thomas, Michael usw.)
der Code der sich hinter den Button befindet lautet:
Sub Makro3()
ChDir "H:\Briefe"
Workbooks.Open Filename:="H:\Briefe\Thomas.xls"
End Sub
Kann man einen Button mit dem Namen „Suche“ erstellen; wenn ich auf diesen klicke ein Fenster aufgeht, wo ich einen Namen eingeben kann (z.B. Thomas) und er mir, wenn er den passenden Namen gefunden hat auch gleich öffnet? Falls dieser Name nicht besteht, sollte das natürlich in einem Fenster anzeigt werden. Wie sollte der VBA Befehl aussehen?

Anzeige
Arbeitsmappe öffnen mit Abfrage
06.09.2013 12:27:06
Beverly
Hi Martin,
versuche es mal so:
Sub MappeOeffnen()
Dim varSuche
varSuche = Application.InputBox(prompt:="Bitte Namen eingeben", Type:=2)
If varSuche  False Then
If Dir("D:\Test\" & varSuche & ".xls")  "" Then
Workbooks.Open Filename:="D:\Test\" & varSuche & ".xls"
Else
MsgBox "Datei nicht vorhanden"
End If
End If
End Sub


AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 12:57:47
Martin
Hi Karin,
danke für die Antwort, aber da kommt auch der Hinweis:
"Datei nicht vorhanden"
Gruß Martin

Anzeige
AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 13:15:42
Beverly
Hi Martin,
den Pfad hast du an deinen angepasst?


AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 13:46:49
Martin
hier sind mal die Codes
Sub Suche_Klicken()
Dim varSuche
varSuche = Application.InputBox(prompt:="Bitte Namen eingeben", Type:=2)
If varSuche  False Then
If Dir("C:\Users\Martin\Documents\Thomas" & varSuche & ".xls")  "" Then
Workbooks.Open Filename:="C:\Users\Martin\Documents\Thomas" & varSuche & ".xls"
Else
MsgBox "Datei nicht vorhanden"
End If
End If
End Sub

Sub Thomas_Klicken()
Workbooks.Open Filename:="C:\Users\Martin\Documents\Thomas.xlsx"
End Sub
Wenn ich auf den Button Thomas klicke macht es mir eine Datei auf die auf dem Laufwerk gespeichert ist. Das funktioniert. Ich möchte ja jetzt auf den Button "Suche" klicken, den Namen Thomas eingeben und wenn er den Namen findet, soll sich gleich die Datei öffnen.
Gruß Martin

Anzeige
AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 14:30:07
Beverly
Hi Martin,
und wo ist das Problem? Mein geposteter Code macht doch genau das: beim Klicken kommt die Abfrage, du gibst einen Namen ein und wenn die Mappe vorhanden ist, wird sie aus dem Verzeichnis geladen.


AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 15:00:16
Martin
Hi Karin,
ich habe die Codes genauso eingegeben, aber wenn ich in das Suchfeld Thomas eingebe kommt
"Datein nicht vorhanden" versteh ich nicht das das bei dir funktioniert?
Gruß

AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 15:57:06
Beverly
Hi Martin,
vergleich mal meine Codezeile
Workbooks.Open Filename:="D:\Test\" & varSuche & ".xls"
ganz genau mit deiner
Workbooks.Open Filename:="C:\Users\Martin\Documents\Thomas" & varSuche & ".xls"
Du suchst im Pfad "C:\Users\Martin\Documents\" nach der Datei "Thomas" & Eingabe & ".xls" und nicht nach der Datei Eingabe & ".xls"


Anzeige
AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 17:50:16
Martin
Hallo Karin,
nachdem ich auf diesem Gebiet noch Frischling :-) bin könntest du mir das bitte etwas genauer erklären wie den mein Code genau aussehen müsste. Vielen Dank
Gruß Martin

AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 17:55:53
Martin
Hallo Karin,
nachdem ich auf diesem Gebiet noch Frischling :-) bin könntest du mir das bitte etwas genauer erklären wie den mein Code genau aussehen müsste. Vielen Dank
Gruß Martin

AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 18:05:28
Beverly
Hi Martin,
bei mir ist es der Pfad "D:\Test\" und bei dir ""C:\Users\Martin\Documents\" - ist das wirklich so kompliziert an diesen Codeteil & varSuche & ".xls" anzuhängen? Das hat nichts mit VBA-Neuling zu tun - man muss einfach nur genau lesen. ;-)
Falls es keine XLS-Datei ist (so wie in deinem Ursprungscode) sondern eine XLSX-Datei (wie in einem deiner letzten Beiträge), musst du xls durch xlsx ersetzen.


Anzeige
AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 18:19:04
Martin
Hi Karin,
vielen Dank für deine Geduld. jetzt funktioniert es auch. Wie du schon sagst wer lesen kann ist klar im Vorteil :-) war etwas auf dem Schlauch gestanden.
Gruß und schönes Wochenende

AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 12:57:53
Martin
Hi Karin,
danke für die Antwort, aber da kommt auch der Hinweis:
"Datei nicht vorhanden"
Gruß Martin

AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 12:57:58
Martin
Hi Karin,
danke für die Antwort, aber da kommt auch der Hinweis:
"Datei nicht vorhanden"
Gruß Martin

AW: Arbeitsmappe öffnen mit Abfrage
06.09.2013 13:41:07
Gerd
Hallo Martin!
Sub MappeOeffnen()
Dim varSuche
varSuche = Application.InputBox(prompt:="Bitte Namen eingeben", Type:=2)
If varSuche  False Then
If Dir("D:\Test\" & varSuche & ".xl*")  "" Then
Workbooks.Open Filename:="D:\Test\" & varSuche
Else
MsgBox "Datei nicht vorhanden"
End If
End If
End Sub
Gruß Gerd
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige