| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Datei öffnen mit VBA (1250 / mal gelesen)
|
codmo Mitglied Elektroplaner

 Beiträge: 55 Registriert: 18.10.2016 Windows 10
|
erstellt am: 02. Nov. 2020 23:10 <-- editieren / zitieren --> Unities abgeben:         
Hallo Ich habe eine Excel-Datei mit cirka 100 Zeilen und kommen immer neue dazu. Am Ende einer jeden Zeile möchte ich ein Bedienfeld einrichten das eine andere Exceldatei öffnet. Leider habe ich noch keine Erfahrung in VBA Programmierung. Mit dem einfachen Hyperlink geht es gut aber es ist sehr umständlich für jede neue Zeile einen neuen Hyperlink zu erstellen. Es währe höchstwahrscheinlich eleganter mit einem VBA Skript den ich kopieren könnte und nur den Zielort ändern müsste. Kann mir jemand mit einer Schritt für Schritt Anleitung weiterhelfen. Vielen Dank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general

 Beiträge: 3449 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 03. Nov. 2020 10:59 <-- editieren / zitieren --> Unities abgeben:          Nur für codmo
Servus, woher stammt der Dateiname der zu öffnen Datei? Eventuell hilft dir "=Hyperlink" weiter... ------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. Schöne Grüsse aus der Steiermark Bernd P. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2862 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 03. Nov. 2020 12:20 <-- editieren / zitieren --> Unities abgeben:          Nur für codmo
Zitat: Original erstellt von Bernd P: Servus, woher stammt der Dateiname der zu öffnen Datei?Eventuell hilft dir "=Hyperlink" weiter...
Genauso würde ich das auch machen, da brauchst Du gar kein VBA dazu. Angenommen du hast in Zelle E4 den Pfad und in F4 den Dateinamen, dann führt
Code: =HYPERLINK(VERKETTEN("File:";E4;"\";F4);F4)
zur Anzeige des Dateinamens. Mit klick darauf öffnest Du es Zelle dann einfach in die nächste Zeile kopieren und die neuen Werte werden übernommen Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
codmo Mitglied Elektroplaner

 Beiträge: 55 Registriert: 18.10.2016 Windows 10
|
erstellt am: 13. Nov. 2020 10:01 <-- editieren / zitieren --> Unities abgeben:         
Guten Tag Vielen Dank für all die Antworten. Ich habe eine Datei mit >100 Zeilen. (laufend zunehmend. Jede Zeile hat eine Seitennummer. Diese Seitennummer entspricht der Seitennummer in der komplett anderen Datei. Ich möchte wenn ich Ste101 in der ersten Datei anwähle das das Bild in Ste101 von der zweiten Datei springt. Mit einem Hyperlink klappt das super. Es ist aber sehr aufwendig jeder neuen Seite den Hyperlink zu setzen. Meine Idee ist: Ste101 von erster Datei entspricht Ste101 von zweiter Datei. Mittels Klick sollte er also in Ste101 von zweiter Datei springen. Und dann mittels Klick wieder in die gleiche Zeile mit der Ste101 von erster Datei zurückspringen. Achtung Datei kann mehrere Ste101 haben. Er müsste also wissen von wo er gekommen ist um in die richtige Ste101 zurück zu springen.Beim Hyperlink passiert das automatisch wenn ich die zweite Datei mit x zumache. Im Anhang habe ich das Muster. Vielen Dank für einen Scipt. Ich bin leider immer noch Anfänger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
codmo Mitglied Elektroplaner

 Beiträge: 55 Registriert: 18.10.2016 Windows 10
|
erstellt am: 13. Nov. 2020 10:04 <-- editieren / zitieren --> Unities abgeben:         
|
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2862 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 13. Nov. 2020 13:07 <-- editieren / zitieren --> Unities abgeben:          Nur für codmo
Hallo codmo, Ehrlich gesagt, Du verwirrst mich und ich habe keine Ahnung was Du eigentlich machen möchtest. Kannst Du einmal eine Beispiel xlsx beilegen? Anscheinend hast Du eine Menge Kontrollkästchen. Was soll damit passieren? Dürfen mehrere anwählbar sein? Oder soll bei Anwahl eines die anderen abgewählt werden? Wo ist der Hyperlink? Fragen über Fragen Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
codmo Mitglied Elektroplaner

 Beiträge: 55 Registriert: 18.10.2016 Windows 10
|
erstellt am: 14. Nov. 2020 08:04 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen Klaus Danke für Deine Antwort. Ganz einfach gesagt. Ich möchte mittels Mausklick ins Quadrat der Ausgangszeile in der Ausgangsdatei in eine andere Zieldatei wechseln. Die Zieldatei sollte sich dann automatisch öffnen. In der geöffneten Zieldatei gibt es wieder ein Quadrat das ich anklicken kann um wieder in die Ausgangszeile in der Ausgangsdatei zu wechseln. Das alles mit einem Skript. Danke für Deine Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2862 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 14. Nov. 2020 18:23 <-- editieren / zitieren --> Unities abgeben:          Nur für codmo
Hallo codmo, Und Dein Quadrat ist was ? CheckBox? Textfeld? Optionsfeld? So schwierig mal eine kleine Beispieldatei beizulegen? Wenn es ein Steuerelement ist, kannst Du mit rechter Maustaste den Code anzeigen lassen und dann z.B. eintragen:
Code:
Private Sub CheckBox1_Click() Dim WB As Workbook If CheckBox1.Value = True Then Set WB = Workbooks.Open("Kontrolltexte_01.xlsx") WB.Activate Exit Sub End If CheckBox1.Value = False End Sub
Ähnliches in der anderen Tabelle Natürlich kann man dann auch gleich dort die richtige Zeile markieren Aber dazu fehlen mir einfach die benötigten Angaben. Dazu müssen natürlich noch Fehlerabfangroutinen kommen z.B. was wenn die Tabelle bereits offen ist? Offen lassen oder beim Markieren und Rückwechseln trotzdem schließen? Du siehst, möglich ist eine ganze Menge aber vor dem Code schreiben sollte man sich doch einige Gedanken machen (Stichwort: Pflichtenheft). Oder man braucht es nur für sich und kann mit Fehlern leben, dann geht natürlich auch "quick & dirty" Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |