Live-Forum - Die aktuellen Beiträge
Datum
Titel
07.05.2024 16:36:49
07.05.2024 14:51:38
07.05.2024 13:27:17
Anzeige
Archiv - Navigation
1924to1928
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 in verschiedene Tabellenblätter ko

Daten in verschiedene Tabellenblätter ko
22.03.2023 21:40:02
Dan

Hallo Forum

Ich habe folgenden VBA-Code zusammengebastelt, der grundsätzlich funktioniert, solange ich alle Daten in das gleiche Tabllenblatt(1) der Zieldatei kopiere. Ich möchte die Daten aber wenn möglich in verschiedene Tabellenblätter der Zieldatei einfügen (z.B. Urlaubstage in Tabelle ("Urlaub"), Krankheitstage in Tabelle ("Krankheit"), Weiterbildungstage in Tabelle ("Weiterbildung"), etc.). Leider weiss ich nicht wie ich den Code anpassen muss um das zu erreichen. Wer kann mir helfen?

Sub Test_1()

Dim sPfad As String
Dim wbQuelle As Workbook
Dim wsZiel As Worksheet
Dim sDatei As String
Dim iZeile As Integer
Dim sMitarbeiter As String
Dim rngZiel As Range
Dim rngSuche As Range
iZeile = 20

'ScreenUpdating und PopUps deaktivieren
Application.ScreenUpdating = False
Application.DisplayAlerts = False

'Setzen des Ziel-Arbeitsblatts
Set wsZiel = ThisWorkbook.Worksheets(1)

'Ordnerpfad
sPfad = "C:\Users\danie\Desktop\Praxis\Stundenerfassung\Datenbank\"

'Durchlaufen der Quelldateien im Ordner
sDatei = Dir(sPfad & "*.xlsx")
Do While sDatei > ""

'Arbeitsmappe öffnen
Set wbQuelle = Workbooks.Open(sPfad & sDatei)

'Durchlaufen der Mitarbeiter in der Zieldatei
For Each rngZiel In wsZiel.Range("B20:B30")

'Mitarbeitername aus der Zieldatei
sMitarbeiter = rngZiel.Value

'Suchen des Mitarbeiters in der Quelldatei
Set rngSuche = wbQuelle.Worksheets(1).Range("B3:B100").Find(sMitarbeiter, LookIn:=xlValues, lookat:=xlWhole)

'Wenn Mitarbeiter gefunden wurde, kopieren und einfügen
If Not rngSuche Is Nothing Then

'iZeile = rngZiel.Row 'Zeilennummer in der Zieldatei
wsZiel.Range("Q" & iZeile).Value = wbQuelle.Worksheets(1).Range("B18").Value
wsZiel.Range("R" & iZeile).Value = wbQuelle.Worksheets(1).Range("AJ9").Value
wsZiel.Range("S" & iZeile).Value = wbQuelle.Worksheets(1).Range("AJ10").Value
wsZiel.Range("T" & iZeile).Value = wbQuelle.Worksheets(1).Range("AJ11").Value
wsZiel.Range("U" & iZeile).Value = wbQuelle.Worksheets(1).Range("AI21").Value

End If

iZeile = iZeile + 1

Next rngZiel
iZeile = 20 'setze iZeile zurück auf 20

'Arbeitsmappe schließen
wbQuelle.Close SaveChanges:=False

'Nächste Datei im Ordner durchlaufen
sDatei = Dir()

Loop

'ScreenUpdating und PopUps aktivieren
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

Schon mal zum voraus vielen Dank für Eure Ideen.

Liebe Grüsse
Dan

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

Betreff
Datum
Anwender
Anzeige
AW: Daten in verschiedene Tabellenblätter ko
23.03.2023 07:23:07
ralf_b
wenn du den Code wirklich selbst geschrieben hast, dann sollte díe Umsetzung deines Vorhabens für dich auch machbar sein.

1. Warum willst du die Daten in separate Tabellen schreiben? Sowas gehört in eine Tabelle, die dann durch Filtern auch deine gewünschten Ansichten hergibt.
2. Dein code sucht einen Namen in einer Datei und kopiert 5 Werte heraus. Woher weis dann dein neuer Code welche der Werte in welches Zielblatt sollen, sofern du noch an diesem Vorhaben festhälst?
das wsZiel mußt du eigentlich nur an das Zielblatt anpassen.
kann es sein das du die mit iZeile = 20 'setze iZeile zurück auf 20 im zweiten Durchlauf die ersten Werte überschreibst?


Anzeige
AW: Daten in verschiedene Tabellenblätter ko
25.03.2023 10:49:40
Dan
Lieber ralf_b

Nein, ich habe den Code so nicht selbst geschrieben, sondern ihn mir zusammengebastelt. Um den Code selbst zu schreiben, fehlen mir die VBA-Kenntnisse (noch).

Zu 1: Weil ich die Daten aus Statistikgründen gerne separat auswerten möchte und auch noch grafisch (mit Charts) darstellen will
Zu 2: Ja der Code soll im Ordner die Dateien pro Mitarbeiter durchlaufen und bestimmte Elemente auslesen. Danach wäre eben die Idee, dass er die Werte dem jeweiligen Mitarbeiternamen zuordnet. Die Mitarbeiternamen können z.B. im Bereich A2:A11 der entsprechenden Tabellenblättern stehen.

Und nein, bisher hat der Code nichts überschrieben. Aber ich habe mich auch schon gefragt, weshalb der Wert auf 20 zurückgesetzt werden muss. Aber da ich nicht so viel Ahnung von VBA habe, hat mich das nicht gestört. Bin ja auch noch nicht am Ziel meiner Wünsche! :-)

Besten Dank für Deine Hilfe.

Gruss


Anzeige
AW: Daten in verschiedene Tabellenblätter ko
25.03.2023 19:38:11
ralf_b
in VBA machte es Sinn solche Codes mit der passenden Datei zu sehen und zu testen.
falls du also weiterhin hierfür Hilfe benötigst, dann wäre eine Beispieldatei bzw. Ordnerstruktur mit Bespieldateien sehr hilfreich.


AW: Daten in verschiedene Tabellenblätter ko
27.03.2023 23:48:58
Piet
Hallo Dan

es macht für uns wenig Sinn deine Datei nachzubauen. Enfacher ist es uns eine Beispieldatei mit anonymen Daten hochzuladen (Mustermann 1,2,3).. Da reichen wenige Zeilen um den Tabellemaufbau zu erkennen.

Um dir helfen zu könen müssten wir auch wissen waran wir die richtige Tabelle für Urlaub, Krankheit usw. erkennen?? Und in welcher Spalte Daten stehen die auszuwerten sind?? Ohne diese Angaben geht es nicht.

mfg Piet

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige