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

Daten einfügen VBA

Daten einfügen VBA
30.11.2019 09:16:52
Peter
Guten Morgen
Ich importiere Zellwerte aus unterschiedlichen Exceldateien in eine Tabelle. Dafür verwende ich einen im Internet gefundenen Code, welchen ich etwas angepasst habe. Soweit funktioniert alles bestens. Der Code arbeitet alle Dateien im Verzeichnis ab und listet die entsprechenden Werte in einer Tabelle auf. Es wäre super, wenn man den Code noch so modifizieren könnte, dass er bei erneuter Ausführung die neuen Daten jeweils in der Tabelle nach dem letzten Datensatz anfügt. Ich muss teilweise Dateiwerte aus unterschiedlichen Ordnern einfügen. Momentan würden die bestehenden Werte dann immer überschrieben. Ideal wäre natürlich auch noch, wenn man den abzuarbeitenden Pfad mit den Dateien über ein Dialogfenster auswählen könnte. Nachfolgend der Code:
Private Sub DatenHolen_Click()
Dim strDatei As String, strPfad As String, strTyp As String
Dim wbX As Workbook, wksX As Worksheet, wksN As Worksheet
Dim lngCount As Long
Application.ScreenUpdating = False
strPfad = "C:\Test\"                 'Pfad anpassen
strTyp = "xls"                      'Dareityp anpassen
Set wksN = ThisWorkbook.Sheets(1)   'Zieltabelle
lngCount = 2                        'Startzeile in der Zieltabelle
wksN.Range(wksN.Rows(lngCount), wksN.Rows(wksN.UsedRange.Rows.Count + lngCount)).Delete
strDatei = Dir(strPfad & "\*." & strTyp)
Do Until strDatei = ""
Set wbX = Workbooks.Open(strPfad & "\" & strDatei)
Set wksX = wbX.Sheets(1)
wksN.Cells(lngCount, 1) = wksX.Cells(31, 2)
wksN.Cells(lngCount, 2) = wksX.Cells(2, 2)
wksN.Cells(lngCount, 3) = wksX.Cells(4, 1)
wksN.Cells(lngCount, 4) = wksX.Cells(4, 2)
wksN.Cells(lngCount, 5) = wbX.Name
wksN.Cells(lngCount, 6) = wbX.BuiltinDocumentProperties("Last save time").Value
wksN.Cells(lngCount, 7) = wbX.BuiltinDocumentProperties("Last author").Value
lngCount = lngCount + 1
wbX.Close False
strDatei = Dir
Loop
Application.ScreenUpdating = True
End Sub
Vielen Dank für Eure Unterstützung.
Liebe Grüsse
Peter

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

Betreff
Datum
Anwender
Anzeige
AW: Daten einfügen VBA
30.11.2019 09:25:26
Hajo_Zi
Halllo Peter,
lngCount = 2 ersetzen
lngCount =wksN.UsedRange.SpecialCells(xlCellTypeLastCell).Row+1

AW: Daten einfügen VBA
30.11.2019 09:56:37
Peter
Hallo Hajo
Vielen Dank. Hat bestens funktioniert.
Hat ev. noch jemand einen Tipp mit dem Dialogfenster für den Pfad?
Liebe Grüsse
Peter
AW: Daten einfügen VBA
30.11.2019 11:17:31
Peter
Hallo
Habe vergessen, die Frage als noch offen zu deklarieren. Bei der ersten Frage könnte mir Hajo schon weiterhelfen.
Danke für Eure Antworten.
Liebe Grüße
Peter
AW: Daten einfügen VBA
30.11.2019 15:10:17
volti
Hallo Peter,
hier eine Möglichkeit:
Sub Test()
 Dim oPfad As Object, MeinPfad As String
 Set oPfad = CreateObject("Shell.Application").BrowseForFolder(0, "Pfad auswählen", &H1000, 17)
 MeinPfad = oPfad.items().Item().Path
 Set oPfad = Nothing
End Sub

Anzeige
fast gut...
30.11.2019 15:38:15
Oberschlumpf
Hi Peter,
...die Variante von Volti.
Aber wenn du bei Verwendung von voltis Code auf "Abbrechen" klickst, kommt es durch einen Fehler zum Code-Abbruch.
Versuch es mal so:
1. Füge dem allgemeinen Modul diese Funktion hinzu:

Function fcPath() As String
Dim oPfad As Object
Set oPfad = CreateObject("Shell.Application").BrowseForFolder(0, "Pfad auswählen", &H1000,  _
17)
If Not oPfad Is Nothing Then
fcPath = oPfad.items().Item().Path & "\"
End If
Set oPfad = Nothing
End Function

2. Ändere diese Zeile
strPfad = "C:\Test\"

durch diese Zeilen

strPfad = fcPath
If strPfad = "" Then
MsgBox "Es wurde kein Ordner ausgewählt."
End
End If
Tipp: Ändere strTyp = "xls" um in strTyp = "xls*".
So werden nicht nur .xls-Dateien, sondern alle Excel-Dateien im ausgewählten Verzeichnis gefunden.
Hilfts?
Ciao
Thorsten
Anzeige
AW: fast gut...
30.11.2019 16:44:38
volti
Ja, ja der Fehlerabfang.
Hatte erst ON Error Resume Next drin. Da ging's noch, gefiel mir aber nicht.
Dann schlicht vergessen, weil Abbrechen nicht mehr probiert.:-)
Danke Torsten für die Ergänzung.
viele Grüße
KH
kommt vor..ich mach ja auch nix falsch...
30.11.2019 16:47:15
Oberschlumpf
...und schon wieder überschätzt...hehe ;-)
nur zusammen sind wir ein TEAM!
AW: kommt vor..ich mach ja auch nix falsch...
30.11.2019 17:42:28
Peter
Guten Abend
Fantastisch!!!! Das ist genau, was ich gesucht habe. Es funktioniert perfekt.
Vielen herzlichen Dank für Eure Hilfe.
Ich wünsche Euch einen schönen Abend.
Liebe Grüsse
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige