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

VBA / Variable Datei aktivieren

VBA / Variable Datei aktivieren
17.11.2017 11:24:56
Bellandi
Hallo zusammen, (:-)
Habe versucht selbst mich schlau zu machen leider vergeblich.... "noch" totaler Anfänger.
Ich nutze folgenden Makro um eine Dateiauswahl vorzunehmen wo der User eine xbeliebige Datei öffnen kann. Im Anschluss wechsel das Makro in eine andere Datei um einige Daten zu kopieren und dann möchte ich diese Daten in der neu geöffneten Datei einfügen.
Wie aktiviere ich jedoch die neu geöffnete Datei ? Denn diese kann immer einen anderen Namen besitzen ? Ich denke sobald Ihr das Makro liest ist alles Glockenklar..... und wahrscheinlich in keine 30 Sek erledigt (:-)
If MsgBox("Um fortzufahren bitte mit OK bestätigen und CSV Datei zum Importieren der Datensätze auswählen", vbOKCancel, "Meldung1") = vbOK Then
Dim varDatei As Variant
varDatei = Application.GetOpenFilename()
Workbooks.Open Filename:=varDatei
Windows("Überhang automatisch 1.6.xlsm").Activate
Sheets("Daten").Select
Range("A2:J2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
-Workbooks(varDatei).Activate- Dieser Befehl geht gerade nicht. ich möchte nun die ausgewählte Datei aktivieren. Lösung ? (:-)

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Set
17.11.2017 11:31:52
Phi
Eine mögliche Variante ist

dim WB as Workbook
varDatei = Application.GetOpenFilename()
set WB = workbooksopen(varDAtei)
Dann kann diese Datei mit WB.sheets(1).Range("A1") angesprochen werden.
Wieso aktivieren?...
17.11.2017 11:45:31
EtoPHG
Hallo Belandi,
Nach einem Workbooks.Open ist die aktive Arbeitsmappe immer die gerade Geöffnete.
.Activate und .Select sind so ziemlich die überflüssigsten Befehle in VBA.
Lies mal Der Malermeister und sein Geselle , bvor du weiterprogrammierst!
Gruess Hansueli
Anzeige
AW: VBA / Variable Datei aktivieren
17.11.2017 13:37:46
fcs
Hallo Bellandi,
ergänzend zu den Hinweisen von Phil und Hansueli.
Wenn man mit mehreren Dateien in einem Makro arbeitet, dann ist es ratsam mit Objektvariablen zu arbeiten, denen die Dateien zum geeigneten Zeitpunkt (zu Beginn oder nach dem Öffnen) zugewiesen werden.
Gleiches sollte man auch mit den Tabellenblättern machen.
Dann kann man über die Variablen auf die Dateien/Tabellenblätter zugreifen und erspart sich Select/Activate-Aktionen.
Nachfolgend mal dein Makro in dieser Richtung beispielhaft erweitert.
Gruß
Franz
Sub daten_uebernehmen()
Dim wkbAktiv As Workbook
Dim wksDaten As Worksheet
Dim wkbCSV As Workbook
Dim wksCSV As Worksheet
Dim varDatei As Variant
Dim LetzteZeile As Long
If MsgBox("Um fortzufahren bitte mit OK bestätigen und CSV Datei zum Importieren " _
& "der Datensätze auswählen", vbOKCancel, "Meldung1") = vbOK Then
varDatei = Application.GetOpenFilename("csv-Datei (*.csv),*.csv", _
Title:="CSV-Datei auswählen")
If varDatei = False Then Exit Sub
Set wkbAktiv = ActiveWorkbook
Set wksDaten = wkbAktiv.Worksheets("Daten")
Set wkbCSV = Workbooks.Open(Filename:=varDatei, ReadOnly:=True, local:=True)
Set wksCSV = wkbCSV.Worksheets(1)
'Altdaten löschen
With wksDaten
LetzteZeile = .UsedRange.Row + .UsedRange.Rows.Count - 1
If LetzteZeile > 1 Then
.Range(.Cells(2, 1), .Cells(LetzteZeile, 10)).ClearContents
End If
End With
'CSV-Daten kopieren
With wksCSV
.Range(.Cells(2, 1), .Cells(LetzteZeile, 10)).Copy wksDaten.Cells(2, 1)
Application.CutCopyMode = False
End With
wkbCSV.Close savechanges:=False
End If
End Sub

Anzeige

167 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige