Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Über VBA mittels msgbox ein Verzeichnis zuweisen

Über VBA mittels msgbox ein Verzeichnis zuweisen
11.04.2017 12:52:53
Marcus
Hallo zusammen,
ich habe ein Access-Datenbank mit einem Makro mit deren Hilfe ich viele xls.Dateien aus einem festen Verzeichnis einlade:
Public Sub MehrereDateienImportierenV1()
'geteset AC97, AC2000
' es werden mehrere GLEICHARTIGE Importdateien nacheinander verknüpft und an
' eine Haupttabelle angefügt
' Voraussetzungen :
' TXT,CSV : Importspezifikation wurde erstellt und gespeichert
' Startverzeichnis für die Suche angeben
Const SuchVerzeichnis = "E:\Test\2017 03\Test\"
' einen Filetyp bzw Dateinamensbild freischalten
' ("*.txt";"*.csv";"2005*.xls")
Const DatTyp = "*.xlsm"
' Zieltabelle, an welche die Daten angefügt werden sollen
Const ZielTab = "Haupttabelle"
Dim i As Integer
Dim AktDatei As String
AktDatei = Dir(SuchVerzeichnis & DatTyp)
While Len(AktDatei) > 0
Debug.Print AktDatei
EineExcelDateiEinlinkenUndAnfügen SuchVerzeichnis & _
AktDatei, ZielTab
AktDatei = Dir ' nächste Datei
Wend
End Sub
Besteht die Möglichkeit über eine msgbox das Verzeichnis je Monat zuzuweisen. Also das die Box nach dem Verzeichnis fragt? Zum Beispiel für Januar "2017 01" eingeben und somit die Dateien aus dem Verzeichnis E:\Test\2017 01\ ziehen.
Viele Grüße

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Über VBA mittels msgbox Verzeichnis zuweisen
11.04.2017 15:00:57
JoWE
Hallo Marcus,
ja, aber mit Inputbox!!
Suchwort = InputBox("Wo soll gesucht werden? " _
& vbCr & "Eingabe: 'JJJJ MM'", "Suchbegriff definieren")
SuchVerzeichnis = "E:\Test\" & Suchwort & "\"

Gruß
Jochen
AW: Über VBA mittels msgbox Verzeichnis zuweisen
11.04.2017 15:01:05
JoWE
Hallo Marcus,
ja, aber mit Inputbox!!
Suchwort = InputBox("Wo soll gesucht werden? " _
& vbCr & "Eingabe: 'JJJJ MM'", "Suchbegriff definieren")
SuchVerzeichnis = "E:\Test\" & Suchwort & "\"

Gruß
Jochen
AW: Über VBA mittels msgbox Verzeichnis zuweisen
11.04.2017 18:53:34
Marcus
Hallo Jochen,
erstmal vielen Dank für deine Unterstützung.
Kannst du mir kurz sagen wie ich das in mein Makro einbauen muss damit dies funktioniert?
Ich habe zusätzlich noch das Problem das die Datenbank durch das Makro Zeilen überschreibt die an manchen Stellen doppelt sind.
Bsp:
Xlsm.Datei1:
Max Mustermann 01.03.2017 31.03.2017
xlsm. Datei 2:
Max Mustermann 01.04.2017 28.04.2017
Ich benötige das so das in der Access-Datenbank dann beide Datensätze untereinander eingefügt werden. Jedoch wird das alte überschrieben und ich habe nur den Datensatz aus xlsm.Datei2. Woran liegt das?
Viele Grüße
Marcus
Anzeige
Über VBA mittels msgbox ein Verzeichnis zuweisen
11.04.2017 19:03:43
Marcus
Hier nochmal mein vollständiges Makro in das dein Makro eingebaut werden müsste:
Option Compare Database
Option Explicit

Public Sub MehrereDateienImportierenV1()
'geteset AC97, AC2000
' es werden mehrere GLEICHARTIGE Importdateien nacheinander verknüpft und an
' eine Haupttabelle angefügt
' Voraussetzungen :
' TXT,CSV : Importspezifikation wurde erstellt und gespeichert
' Startverzeichnis für die Suche angeben
Const SuchVerzeichnis = "E:\AÜG\AÜG-Datenbank Einzeldateien\2017 03 AÜG\"
' einen Filetyp bzw Dateinamensbild freischalten
' ("*.txt";"*.csv";"2005*.xls")
Const DatTyp = "*.xlsm"
' Zieltabelle, an welche die Daten angefügt werden sollen
Const ZielTab = "Haupttabelle"
Dim i As Integer
Dim AktDatei As String
AktDatei = Dir(SuchVerzeichnis & DatTyp)
While Len(AktDatei) > 0
Debug.Print AktDatei
EineExcelDateiEinlinkenUndAnfügen SuchVerzeichnis & _
AktDatei, ZielTab
AktDatei = Dir ' nächste Datei
Wend
End Sub

Public Sub EineExcelDateiEinlinkenUndAnfügen(AktDatFullNam As String, _
ZielTab As String, Optional ExcelTabNam)
' eigentliche Import/Verknüfungsfunktion
Const TmpLink = "TabtmpLink"  ' beliebiger Tabellenname (wird gelöscht)
On Error Resume Next
DoCmd.DeleteObject acTable, TmpLink
On Error GoTo 0
DoCmd.TransferSpreadsheet acLink, , TmpLink, _
AktDatFullNam, True, ExcelTabNam
CurrentDb.Execute "INSERT INTO " & ZielTab & _
" SELECT " & TmpLink & ".* " & _
"FROM " & TmpLink & ";"
End Sub

Anzeige
AW: Über VBA mittels msgbox ein Verzeichnis zuweisen
11.04.2017 19:14:46
JoWE
Hi,
statt:
Const SuchVerzeichnis = "E:\AÜG\AÜG-Datenbank Einzeldateien\2017 03 AÜG\"
einfach so:
Suchwort = InputBox("Wo soll gesucht werden? " _
& vbCr & "Eingabe: 'JJJJ MM'", "Suchbegriff definieren")
SuchVerzeichnis = "E:\AÜG\AÜG-Datenbank Einzeldateien\" & Suchwort & " AÜG\"

Gruß
Jochen
Über VBA mittels msgbox ein Verzeichnis zuweisen
11.04.2017 19:31:15
Marcus
Hi,
wenn ich das so einfüge kommt die Fehlermeldung: "Fehler beim Kompiliren: Variable nicht definiert".
VG
Marcus
AW: Über VBA mittels msgbox ein Verzeichnis zuweisen
11.04.2017 19:48:12
JoWE
ja richtig! Also dann so:
Dim Suchwort as string
Suchwort = InputBox("Wo soll gesucht werden? " _
& vbCr & "Eingabe: 'JJJJ MM'", "Suchbegriff definieren")
SuchVerzeichnis = "E:\AÜG\AÜG-Datenbank Einzeldateien\" & Suchwort & " AÜG\"

Gruß
Jochen
Anzeige
Über VBA mittels msgbox ein Verzeichnis zuweisen
12.04.2017 16:46:18
Marcus
Klappt super! Danke!

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige