Richtige Arbeitsmappe finden und dann den richtigen Sheet finden und öffnen

Hola an alle, habe diese Frage schon in einem anderen Forum gestellt, komme aber noch nicht so wirklich weiter.
Auf dem Desktop liegt eine Excelverknüpfung die ich als Benutzer Plattform nehme.
Dort lese ich in Zelle E6 die KundenNr aus (zb 0001;0825;9999 usw), in Zelle E7 die AuftragsNr (zb 0005;0325;2547 usw). In einem anderen Ordner (C:\Users\carsten\Desktop\Bufete) liegen diese Klientenmappen und sind so benannt: M.Muster0001; P.Pan0125; W.MüllerLüdenscheidt2157 usw. Meine Idee ist folgende und ich wäre über jeden Ansatz dankbar:

  1. Festgelegten Ordner öffnen (C:\Users\carsten\Desktop\Bufete)
  2. Anhand Zelle E6(0001)auf der Benutzer Plattform, die Mappe M.Muster0001(in (C:\Users\carsten\Desktop\Bufete) finden und öffnen. Das bedeutet des Makro muß nach den letzten 4 Ziffern suchen. Geht das überhaupt?
  3. Anhand von Zelle E7 (0010) den richtigen Sheet suchen und öffnen. Die einzelnen Sheets sind so benannt wie die Auftragsnummer in E7
    Meine Userplattform liegt in C:\Users\carsten\Desktop\User Plattform.xlsm
    Vielen Dank und ich bin dankbar über jede Anregung oder über jeden Vorschlag.

Habe folgendes Makro schon bekommen aber irgendwie funktioniert es nicht. Welchen Fehler hat es oder was mache ich falsch?
Sub WorkbookOpen()
Dim WB As Workbook
Dim strDatei As String
Dim strSheet As String

strDatei = Dir(„C:\Users\carsten\Desktop\Bufete*“ & Range(„E6“) & „*.xlsm“)
strSheet = Range(„E7“)

If strDatei „“ Then
Set WB = Workbooks.Open(„C:\Users\carsten\Desktop\Bufete“ & strDatei)
WB.Worksheets(strSheet).Select
End If
End Sub

Der Code öffnet mir immer die gleiche Mappe (Abrechnung Gesamt 2013) und sagt mir dann Laufzeitfehler (9) Index außerhalb des gültigen Bereichs obwohl in dieser Mappe ein Sheet mit dem Namen 0001 besteht. Der Name mit des Books besteht immer nur einmal. Den Sheet gibt es einmal in der Klientemappe und natürlich einmal in der Abrechnung Gesamt 2013 Mappe.

Danke für jede Anregung oder Hilfe
Carsten
Y saludos a todos.

Hi,
Ich detektive mal von fern:

Da hat’s was mit den Nullen - denn die „Abrechnung Gesamt 2013“ enthält sichtlich nicht „0001“, aber „1“ - das deutet nun darauf hin, dass auch in deinem Excel in E6 nicht „0001“ steh, sondern schlicht 1, möglicherweise mit führenden Nullen via Zahlenformatierung „aufgefettet“, aber das ist und bleibt trotzdem die Zahl 1.

Lösung:
Range(„E6“) durch Format(Range(„E6“),„0000“) ersetzen, dann dasselbe nochmal mit dem zweiten Verweis.

Viel Erfolg - lass hören, ob der Blick in die Kristallkugel das Richtige zutage gefördert hat.

lg
Katharina

Hallo Katharina, das war es. Jetzt funktioniert es so wie ich es haben wollte. Vielen, vielen Dank y muchos saludos de Costa Rica
Carsten

Und wenn du deine Kristallkugel mal nicht mehr brauchst, ich würd sie nehmen.
Vielen Dank nochmal
Carsten

Leider hast Du dein Problem derart kompliziert beschrieben, dass ich nicht durchschaue.
Und dann kann ich natürlich nicht helfen

Danke dir Amtsschimmel, Katharina hat es schon gelöst. Ich wollte es ausführlich erklären, aber es ist nicht immer ganz einfach.
Vielen Dank das du dir die Zeit genommen hast.
Saludos
Carsten

Bin gerade im urlaub, aber das was du vorhast geht in jedem fall und ist kein zauberhandwerk.
Überlege dir wie du das Makro starten möchtest? Beispiel einen Button der dann die Werte der selektierten Zeile auswertet und deine zellen Inhalte so zerlegt, dass du dann das Open mit Focus auf die dortige Sheet machen kannst.

Hola Nico, das Problem hat sich schon Dank Katharina gelöst. Danke dir und wünsche dir weiterhin einen schönen Urlaub
Carsten

Hallo Carten,

Wenn Laufzeitfehler kommen, dann solltest Du mit F8 Dein Programm Schritt für Schritt durchgehen und dabei die Werte der Variablen überprüfen. So findest Du den Fehler bestimmt.
Wenn das nicht klappt, melde Dich nochmal

Gruß
Arnold

Hola Arnold,
danke dir für deine Antwort und das Problem ist schon gelöst.
Carsten

Hola,
ich habe mal die Prozedur etwas vereinfacht, und da funktioniert es:

Sub WorkbookOpen()
Dim WB As Workbook
Dim strDatei As String
Dim strSheet As String

strDatei = „C:\Users\carsten\Desktop\Bufete“ & Range(„E6“) & „.xlsm“)
strSheet = Range(„E7“)

If strDatei „“ Then
Set WB = Workbooks.Open(strDatei)
WB.Worksheets(strSheet).Select
End If
End Sub

Probiere es mal

Gruß Jürgen

Danke dir Jürgen, werde es mal ausprobieren. Die Lösung hatte Katharina schon gefunden. Ich habe dir die Antwort mal angehängt falls du Interesse hast.

Von Katharina:
Da hat’s was mit den Nullen - denn die „Abrechnung Gesamt 2013“ enthält sichtlich nicht „0001“, aber „1“ - das deutet nun darauf hin, dass auch in deinem Excel in E6 nicht „0001“ steh, sondern schlicht 1, möglicherweise mit führenden Nullen via Zahlenformatierung „aufgefettet“, aber das ist und bleibt trotzdem die Zahl 1.
Lösung:
Range(„E6“) durch Format(Range(„E6“),„0000“) ersetzen, dann dasselbe nochmal mit dem zweiten Verweis. …

Danke dir auch für deine Mühen und werde es auf jeden Fall probieren.
Carsten