Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1788to1792
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

Workbook dynamisch ansprechen

Workbook dynamisch ansprechen
05.11.2020 15:02:21
Dennis
Mahlzeit zusammen,
Ich habe eine Datei, in der ich aus anderen Arbeitsmappen(Workbooks) Sachen einlesen möchte...
Ich gebe in einer Inputbox, die KW ein, welche ich haben möchte.
VBA durchsucht den Pfad und öffnet mir die diese gesucht Datei ("KW 43.xlsm") und schreibt den Namen in die Zelle Workbooks("Kontaktliste.xlsm").Sheets("Liste").Range("a1") ("KW 43.xlsm")
in meinem Makro würde ich jetzt gerne mit der Variable arbeiten:
Sub Datenkopieren()
Dim kl As Workbook 'Datei zum Einlesen "Kontaktliste"
Dim pp As Workbook 'variabler Dateiname zum Auslesen z.B. "KW 43.xlsm")
Set kl = ThisWorkbook
Set pp = Workbooks("Kontaktliste.xlsm").Sheets("Liste").Range("a1")
'Hier zum Testen ob es richtig angesprochen wird
kl.Sheets("Liste").Range("B2") = "Fuck"
pp.Sheets("Schicht 1").Range("B7:B16").Select 'MO A1
Kann mir da einer weiter helfen... Steh aufm Schlauch =/

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbook dynamisch ansprechen
05.11.2020 18:11:24
ChrisL
Hi Dennis
Hierarchie:
1. Application (Anwendung)
2. Workbook (Arbeitsmappe)
3. Worksheet/Sheet (Tabellenblatt/Blatt)
4. Range (Bereich)
Einer Workbook-Variable kannst du keine Range übergeben.
Dim kl As Workbook
Dim pp As Workbook
Dim strName As String
strName = "KW 43.xlsm" ' kann auch strName=inputbox("blabla") sein
Set kl = ThisWorkbook
Set pp = Workbooks.Open("C:\Pfad\" & strName)
kl.Sheets("Liste").Range("a1") = pp.Name
pp.Sheets("Schicht 1").Range("B7:B16").Select 
cu
Chris
AW: Workbook dynamisch ansprechen
06.11.2020 08:37:55
Dennis
Okay...
Mein Problem jetzt aber ist noch, dass ich den Pfad nicht kenne... bzw. C:\BLABLA\Januar\ , \Februar\ usw...
Ausgeben lassen, kann ich mir den z.B. in einer Zelle von vorherigem Makro in dem er die Datei sucht...
" Workbooks("Kontaktliste.xlsm").Sheets("Liste").Range("a2") = DirToSearch & "\" "
Die Datei ist ja bereits schon offen und in der Taskleiste auch Sichtbar.
Ich habe auch schon versucht mit "Windows.activate" etc, was mich aber auch nicht vorran brachte =/
Anzeige
AW: Workbook dynamisch ansprechen
06.11.2020 11:35:49
ChrisL
Hi Dennis
Wenn die Datei bereits offen ist, dann musst du die Datei natürlich nicht mehr öffnen.
Set pp = Workbooks(strName)
cu
Chris
AW: Workbook dynamisch ansprechen
06.11.2020 11:42:57
Dennis
Hi,
Ich habe es in der zwischenzeit weiter probiert und nun so hinbekommen...
Sub Datenkopieren()
Dim pfad As String
Set kl = ThisWorkbook
pfad = kl.Sheets("Liste").Range("a2")
Set pp = Workbooks.Open(pfad)
Set liste = kl.Worksheets("Liste")
Set S1 = pp.Sheets("Schicht 1")
Set S2 = pp.Sheets("Schicht 2")
Set S3 = pp.Sheets("Schicht 3")
liste.Range("B7:B16").Value = S1.Range("B7:B16").Value

Ich danke dir für die Hilfe und unterstützung..
Ich werde das noch ausprobieren am Montag, da ich bei der Variante jetzt eben die erneute Öffnung der Datei abfragen müsste. Da wäre dein Ansatz jetzt etwas einfacher :) Aber es funktioniert schon mal *thumbs up
PS: Ähm ich müsste das also so ändern?

pfad = kl.Sheets("Liste").Range("a2")
set pp = Workbooks(pfad)
Charmantes Wochenende
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige