Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
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 aus anderer Datei auslesen

Daten aus anderer Datei auslesen
16.02.2022 13:01:19
Gasius
Hallo zusammen,
ich wurde mit der Lösung einer Aufgabe betreut und versuche dies über VBA zu lösen.
Folgender Fall:
Ich habe ein Workbook "Artikel", in dessen Worksheet "EU" unterschiedliche Artikel nach Produktgruppe und mit vielen weiteren Daten aufgelistet sind.
Für die einzelnen Produktgruppen möchte ich ein neues Sheet erstellen, nur relevante Daten kopieren und in das bestimmte Sheet einfügen. Das für alle Gruppen. Klappt auch soweit.
Nun habe ich vier weitere offene Spalten in jedem Sheet deren Daten in einem anderen Workbook "Auszug" liegen. Das Workbook soll geöffnet werden und anhand der "Artikelnummer" soll das "Kennzeichen 1", "Kennzeichen 2" "Kennzeichen 3" & "Kennzeichen 4" kopiert und in das Workbook "Artikel" eingefügt werden. Anschließend soll jedes Sheet einzeln abgespeichert werden.
Das Workbook bekomme ich noch geöffnet, allerdings weiß ich nicht wie ich weiter vorgehen soll. Da fehlen mir dann die Kenntnisse dafür Kann mir da jemand behilflich sein? Wäre sehr dankbar dafür! Vielen dank schonmal im Voraus
Anbei mal mein Skript bis da hin:

Option Explicit
Dim sheet As Object
Dim sheetname As String
Dim wks As Worksheet
Dim wksDaten As Worksheet
Dim wkbDaten As Workbook
Dim cell As Range
Dim c As Double 'Zeilenzähler
Dim rng As Range
Dim bolFlg As Boolean 'Wahrheitsbit
Sub Aufteilungen()
sheetname = "Reifen" 'Blattname festlegen
'---- Prüfen ob Blatt bereits vorhanden'
For Each sheet In Sheets
If sheet.Name = sheetname Then bolFlg = True
Next sheet
'---- Blatt einfügen wenn noch nicht vorhanden
If bolFlg = False Then
With ThisWorkbook
Worksheets.Add after:=Worksheets("EU")
ActiveSheet.Name = sheetname
With ActiveSheet
.Range("A1:I1").Value = Array("Artikelnummer", "Serie", "Produktgruppe", "Produkttyp", "Artikelbezeichnung", "Kennzeichen 1", "Kennzeichen 2", "Kennzeichen 3", "Kennzeichen 4") 'Überschriften einfügen
End With
End With
End If
'---- Werte ausschneiden und in Blatt einfügen
Set rng = Worksheets("EU").Range("F:F")
For Each cell In rng
c = cell.Row 'Reihe der Zelle
If cell.Value = "WCs" Or cell.Value = "WC-Sets" Then
Worksheets("EU").Range("K" & c).Cut 'Ausschneiden von Artikelnummer
Worksheets("Reifen").Range("A" & c).Insert
Worksheets("EU").Range("C" & c).Cut 'Ausschneiden von Serie
Worksheets("Reifen").Range("B" & c).Insert
Worksheets("EU").Range("F" & c, "H" & c).Cut 'Ausschneiden von Produktgruppe, Produkttyp und Artikelbezeichnung
Worksheets("Reifen").Range("C" & c, "E" & c).Insert
End If
Next
'----- Leere Zeilen löschen
With ActiveSheet.UsedRange
.AutoFilter Field:=2, Criteria1:="="
.Offset(1, 0).EntireRow.Delete '--- das Offset verhindert das Löschen der Überschrift
.AutoFilter
End With
'------ Türen
sheetname = "Türen" 'Blattname festlegen
'---- Prüfen ob Blatt bereits vorhanden'
For Each sheet In Sheets
If sheet.Name = sheetname Then bolFlg = True
Next sheet
'---- Blatt einfügen wenn noch nicht vorhanden
If bolFlg = False Then
With ThisWorkbook
Worksheets.Add after:=Worksheets("EU")
ActiveSheet.Name = sheetname
With ActiveSheet
.Range("A1:I1").Value = Array("Artikelnummer", "Serie", "Produktgruppe", "Produkttyp", "Artikelbezeichnung", "Kennzeichen 1", "Kennzeichen 2", "Kennzeichen 3", "Kennzeichen 4") 'Überschriften einfügen
End With
End With
End If
'---- Werte ausschneiden und in Blatt einfügen
Set rng = Worksheets("EU").Range("F:F")
For Each cell In rng
c = cell.Row 'Reihe der Zelle
If cell.Value = "WCs" Or cell.Value = "WC-Sets" Then
Worksheets("EU").Range("K" & c).Cut 'Ausschneiden von Artikelnummer
Worksheets("Türen").Range("A" & c).Insert
Worksheets("EU").Range("C" & c).Cut 'Ausschneiden von Serie
Worksheets("Türen").Range("B" & c).Insert
Worksheets("EU").Range("F" & c, "H" & c).Cut 'Ausschneiden von Produktgruppe, Produkttyp und Artikelbezeichnung
Worksheets("Türen").Range("C" & c, "E" & c).Insert
End If
Next
'----- Leere Zeilen löschen
With ActiveSheet.UsedRange
.AutoFilter Field:=2, Criteria1:="="
.Offset(1, 0).EntireRow.Delete '--- das Offset verhindert das Löschen der Überschrift
.AutoFilter
End With
'-------------------- weitere Produktgruppen nach selbem Schema an dieser Stelle ---------------------------------------------
'--------- EU Worksheet löschen
Application.DisplayAlerts = False
Worksheets("EU").Delete
Application.DisplayAlerts = True
End Sub
'Sub Kennzeichen()
On Error GoTo FEHLER
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Workbooks.Open "U:\Gasius\Auszug.xlsx"
'End Sub
LG
Gasius

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

Betreff
Datum
Anwender
Anzeige
AW: Typische Pivottabellen Anwendung (owT)
16.02.2022 13:25:45
EtoPHG

AW: Typische Pivottabellen Anwendung (owT)
16.02.2022 14:58:45
Gasius
Pivot eignet sich für mein Vorhaben denke ich eher nicht. Ich muss keine Summen oder Berechnungen anstellen sondern das Sheet übersichtlicher darstellen und weitere Werte zuweisen.
AW: Daten aus anderer Datei auslesen
16.02.2022 16:22:59
Oberschlumpf
Hi,
handelt es sich um ne erteilte Aufgabe im Job? Dann mutig mutig vom Chef (oder fahrlässig?), wenn du von VBA fast keine Ahnung hast.
(wenn Aufgabe = privat/Freizeit/etc, dann is alles gut!)
Auf jeden Fall aber:
Weil du eben von VBA fast noch nix weißt, wird es einfacher sein, dir zu helfen, wenn du uns bitte per Upload eine Excel-Bsp-Datei mit Bsp-Daten und deinem Code zeigst.
Ciao
Thorsten
Anzeige
AW: Daten aus anderer Datei auslesen
18.02.2022 17:05:33
Yal
Hallo Gasius,
Pivot kann aggregieren, muss aber nicht.
Die einfachste Lösung wäre 2 Power Query Abfragen:
eine für die Liste der einzelne Produkte ("distinct"),
eine auf die Zeilen "WC"/"WC-Set" gefiltert, und nur die notwendige Spalten. Beim "Laden in.." nur Verbindung herstellen.
Das Laden in eine Arbeitsmappe erfolgt unter Makrorekorder.
Dann kannst Du den "select * from [meineDaten]" mit einem " Where [Produkt] = " & meinProduktAusDerListe ergänzen.
Wenn Du eine reduzierte Datei postet, kann man Dir einen Entwurf machen.
VG
Yal

330 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige