Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

Versetzung nach der Import XML

Versetzung nach der Import XML
16.02.2022 14:19:54
Thomas
Guten Tag Forum,
Bei mir gehts um folgendes, und zwar ich möchte:
1- Ein XML-Datei importieren.
2- Nach dem Import sortiert werden
3- Die Leere Zeilen gelöscht werden
Die Schritte 1 und 3 habe ich geschafft, aber bei der Versetzung scheitere ich.
Ein Beispiel nach dem Import der XML Datei habe ich dargestellt, ist im Anhang → https://www.herber.de/bbs/user/151169.xlsx
Das ist mein Code zum Import der XML_Datei :
Sub Impor_XML_Data() Application.ScreenUpdating = False Dim TargetSheet As Worksheet Dim ChooseFIle As Variant Dim TargetSheetName As String Dim TargetCellAddress As String TargetSheetName = Application.InputBox("Geben Sie einen Blattnamen an, unter dem Sie die XML-Daten ablegen möchten ***Case Sensitive***", "Target Sheet Name") TargetCellAddress = Application.InputBox("Schreiben Sie eine Zelladresse, ab der XML-Daten platziert werden sollen"., "Target Cell Address") Set TargetSheet = ThisWorkbook.Sheets(TargetSheetName) TargetSheet.UsedRange.Clear ChooseFIle = Application.GetOpenFilename("XML File (*.xml), *.xml" , False) If ChooseFIle = vbNullString Then Exit Sub ThisWorkbook.xmlImport URL:=ChooseFIle, ImportMap:=Nothing, Overwrite:=True, Destination:=TargetSheet.Range(TargetCellAddress) MsgBox "Import Done" Set TargetSheet = Nothing Application.ScreenUpdating = True End Sub >

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ich würde es ohne VBA lösen ...
16.02.2022 14:59:52
neopa
Hallo Thomas,
... und zwar gibt es dafür zwei grundsätzliche Möglichkeiten.
1.) Wenn es nicht all zu viele Daten sind käme z.B. eine Formellösung in Betracht.
2.) oder ganz ohne Formeln eine Lösung mit der PowerQuery Funktionalität kombiniert mit einer Pivotauswertung
Für beide könnte ich Dir die Lösung aufzeigen nicht aber für eine VBA-Lösung.
Gruß Werner
.. , - ...
AW: ich würde es ohne VBA lösen ...
16.02.2022 15:20:21
Thomas
Hallo Werner,
Ich sag mal so. In Wahrheit wird eine Tabelle 236 x 10000 wird. Die unnötigen Spalten habe ich mit VBA gelöscht (steht nicht in meinem Code). Ich scheitere echt bei dem Schritt 2 was ich erwähnt habe nämlich die Sortierungen wie ich dargestellt habe. Seit zwei Tagen bin ich daran, aber komme ich auf keine Lösung, leider.
Ich wäre sehr sehr dankbar, wenn du mir helfen würdest.
Anzeige
AW: dazu nun ...
16.02.2022 16:00:56
neopa
Hallo Thomas,
... die unnötigen Spalten könnten in einer Formellösung einfach ignoriert werden. Da es aber offensichtlich sehr viele auszuwertende Datensätze gibt, würde ich keine Formellösung vorschlagen.
Bei der Power Query Lösung können die unnötigen Spalten ebenso ignoriert werden und ist für eine derartige große Datenmenge wohl besser geeignet als eine Formelauswertung.
Doch nun noch nachgefragt:
- sind wirklich immer nur zwei Typen (im Beispiel "Audi" und "Benz") auszuwerten?
- sollten die Reihenfolge der Typen in Spalte C vertauscht sein, sind die Werte in Spalte B dann auch entsprechend zugeordnet?
- sind die leeren Zellen in in Deiner Datenliste im Original auch wirklich leer oder können evtl. da vorhandene nicht relevante Werte einfach durch "" ersetzt werden?
Wenn dem so sein sollte, kann ich Dir eine PQ/Pivot-Lösung dafür aufzeigen.
Gruß Werner
.. , - ...
Anzeige
AW: dazu nun ...
16.02.2022 17:41:12
Thomas
Hallo Werner,
• Die sind mehr als Audi und Benz, eigentlich 5. Wie gesagt, das ist nur einfach ein einfaches Beispiel dafür, um besser verstehen zu werden. Somit kann man einfacher ein VBA Code schreiben.
• Die Reihenfolge darf nicht in den Spalten geändert werden.
• Die leeren Zeilen sind auch im Original genauso leer und müssen gelöscht werden, damit am Ende alle in einer Reihe stehen. (wie in der Datei)
Viele Grüße
Thomas
AW: geht mit PQ dann auch für 5 "Typen" owT
16.02.2022 19:54:37
neopa
Gruß Werner
.. , - ...
AW: nachgetragen ...
16.02.2022 20:16:09
neopa
Hallo,
... mein M-Code für die zuvor als intelligente Tabelle formatierte Quelldatenliste, die durch XL automatisch als "Tabelle1" benannt wurde, ist folgender:

let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"ID", type text}, {"NAME", type text}, {"A", type text}, {"B", Int64.Type}}),
#"Nach unten gefüllt" = Table.FillDown(#"Geänderter Typ",{"ID", "NAME"}),
#"Duplizierte Spalte" = Table.DuplicateColumn(#"Nach unten gefüllt", "A", "A - Kopie"),
#"Duplizierte Spalte1" = Table.DuplicateColumn(#"Duplizierte Spalte", "B", "B - Kopie"),
#"Zusammengeführte Spalten" = Table.CombineColumns(Table.TransformColumnTypes(#"Duplizierte Spalte1", {{"B - Kopie", type text}}, "de-DE"),{"A - Kopie", "B - Kopie"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Zusammengeführt"),
#"Gefilterte Zeilen" = Table.SelectRows(#"Zusammengeführte Spalten", each ([Zusammengeführt]  "")),
#"Nach unten gefüllt1" = Table.FillDown(#"Gefilterte Zeilen",{"A"}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Nach unten gefüllt1",{"Zusammengeführt"}),
#"Entpivotierte andere Spalten" = Table.UnpivotOtherColumns(#"Entfernte Spalten", {"ID", "NAME", "A"}, "Attribut", "Wert"),
#"Entfernte Spalten1" = Table.RemoveColumns(#"Entpivotierte andere Spalten",{"Attribut"})
in
#"Entfernte Spalten1"
Das Ergebnis dessen hab ich in die (interne) Datenbank schreiben lassen, welche ich mit Pvot im Berichtslayout "Tabellenformat" ohne Teil- und Gesamtergebnisse auswerten lasse habe.
Für mein erweitertes Beispiel sieht das Ergebnis wie folgt aus:
Arbeitsblatt mit dem Namen 'Sheet1'
 ABCDEFGHIJKLMNO
2IDNAMEAB    Daten Typ    
301       IDNAMEAudiBenzOpelToyotaVW
4 Thomas      01Thomas25222565  77
5  VW     02Julian102254566  
6   77    03Andre558784222333112
7  Audi     12Max321 444  
8   252           
9  Benz            
10   22565           
1102              
12 Julian             
13  Audi            
14   102           
15  Benz            
16   2545           
17  Opel            
18   66           
1903              
20 Andre             
21  Benz            
22   784           
23  Toyota            
24   333           
25  Audi            
26   558           
27  VW            
28   112           
29  Opel            
30   222           
3112              
32 Max             
33  Opel            
34   444           
35  Audi            
36   321           
37               
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Gruß Werner
.. , - ...
Anzeige
AW: Versetzung nach der Import XML
16.02.2022 18:26:40
Herbert_Grom
Hallo Thomas,
wenn deine Ausgangsdaten immer im gezeigten Format sind, dann sollte das damit funktionieren:
https://www.herber.de/bbs/user/151179.xlsm
Servus
AW: Versetzung nach der Import XML
16.02.2022 19:18:39
Thomas
Hallo Herbert,
Prima und vielen Dank. Aber die Sortierung sollte eigentlich in der Tabelle selbst stattfinden. Ich möchte nicht, dass die Daten von einer Tabelle zu einer anderen Tabelle transportiert werden und dann dort sortiert werden. :)
AW: hierzu ...
17.02.2022 10:27:33
neopa
Hallo Herbert,
... kopiere mal meine Beispieldaten von gestern Abend in die Datenliste: A:D. Dein Programm wertet noch nicht alle Daten aus.
Gruß Werner
.. , - ...
AW: hierzu ...
17.02.2022 11:22:45
Herbert_Grom
Hallo Werner, oder, wie man auch sagen könnte: Hallo "Nischelstädter" ;o)=)
deshalb habe ich ja auch geschrieben: wenn deine Ausgangsdaten immer im gezeigten Format sind, dann sollte das damit funktionieren! Warten wir doch mal, was er sagt.
Servus
AW: nun, geschrieben war ja aber schon, ...
17.02.2022 11:34:44
neopa
Hallo Herbert,
... dass es auch 10.000 Datensätze geben könne und auch nicht nur 2 sondern 5, wenn letzteres er dies auch nur in einem Beitrag an mich geschrieben hatte.
Gruß Werner
.. , - ...
Anzeige
AW: nun, geschrieben war ja aber schon, ...
17.02.2022 11:36:53
Herbert_Grom
Da hast du auch wieder recht. Aber ich warte mal, was er dazu sagt.
AW: nun, geschrieben war ja aber schon, ...
18.02.2022 06:59:24
Thomas
Hallo Herbert,
ich habe dein Makro probiert. Funzt leider halbwegs für mich, weil ich es umformulieren musste, um bei der echten Datei zu probieren. Es wäre sehr freundlich, wenn du kurze Kommentare geschrieben hättest, damit ich verstehe, welche Syntax welche Aufgabe hat.
@Werner: Mit PQ kam ich bedauerlicherweise nicht weiter, für eine gigantische Tabelle, ist schwierig einzusetzen.
AW: gerade für solche Datenmengen ...
18.02.2022 08:40:28
neopa
Hallo Thomas,
... und deren Auswertung ist PQ bereitgestellt. Teste es doch zunächst mal an der Beispieldatei.
Gruß Werner
.. , - ...
Anzeige
AW: ergänzend noch ...
18.02.2022 11:25:19
neopa
Hallo Thomas,
... sollte Dich der von mir eingestellte M-Code evtl. abgeschreckt haben, so wisse, dass Du diesen nicht lernen musst. Er wurde lediglich durch die Ausführung interaktiver Aktivitäten (= "Schritte") erzeugt. Also vergleichbar mit dem durch einen mit dem Makrorekorder erstellten VBA-Code.
Die Schritte zur Lösung bedürfen lediglich einiger Mausklicks und diese nachfolgend wie folgt:
- Erzeuge eine "intelligente Tabelle" aus Deinen Quelldaten (diese könnte übrigens schon auch mit PQ erzeugt werden)
- aktiviere eine Zelle in dieser und dann im Menü: Daten die Fkt. "Aus Tabelle"
- aktiviere alle Spalten und danach die Funktion "Ausfüllen" und da "nach unten"
- dupliziere die Spalten A und B
- für diese dann die Funktion "Spalten zusammenführen" (in Menü Transformieren)
- in dieser neuen Spalte filtere die leeren Datenwerte aus.
- die Spalte A lasse nach unten ausfüllen
- entferne die "Zusammengeführte" Spalte
- markiere die Spalte B und aktiviere danach die Funktion "entpivotieren"
- entferne die Spalte "Attribut"
- Aktiviere die Funktion "Schließen und Laden in... " und dort in Datenbank
Danach nimm die Pivotierung bezogen auf die mit PQ erzeugte Datenbank vor. Ich setze voraus, dass dies kein Problem für Dich darstellt.
Mehr zu PQ kannst Du z.B. hier: https://excelhero.de/power-query/power-query-ganz-einfach-erklaert/ nachlesen.
Dort kannst Du sicherlich auch irgendwo entnehmen, wie Du den von mir bereitgestellten M-Code in den PQ-Editor einkopieren kannst, anstelle die dazu notwendigen Schritte selbst auszuführen. Allerdings rate ich Dir dazu Dich mit den Schritten etwas vertraut zu machen.
Gruß Werner
.. , - ...
Anzeige
AW: nun, geschrieben war ja aber schon, ...
20.02.2022 17:24:59
Herbert_Grom
Hallo Thomas,
kannst du mir nicht mal eine Beispieldatei schicken, die deutlich mehr Daten hat als die, die du bisher gepostet hast? Am besten wäre die Originale! Wenn du sie hier nicht öffentlich posten willst, dann schicke sie mir per eMail. Meine findest du hier in den Profilen!
Servus
AW: nun, geschrieben war ja aber schon, ...
21.02.2022 19:10:03
Thomas
Hallo Herbert,
Tut mir leid für die verspätete Antwort. Gesundheitsbedingt war ich nicht in der Lage zu beantworten.
AW: Versetzung nach der Import XML
21.02.2022 12:28:30
Herbert_Grom
Hallo Thomas,
ich habe deine Version bereits fertig, würde sie aber gerne noch mit ein paar mehr Daten testen. Wenn du sie haben willst, dann schicke mir doch die Daten. Und da der Thread bald unten rausfällt, kannst du sie mir auch per eMail senden. Findest du hier in den Profilen!
Servus
Anzeige
AW: einen Test Deines Makros ...
21.02.2022 16:48:04
neopa
Hallo Herbert,
... könntest Du doch zunächst mal an den von mir am 16.02. um 20:16 eingestellten Daten vornehmen. Ich rechne jedenfalls nicht damit, dass Thomas sich hier nochmal meldet.
Gruß Werner
.. , - ...
AW: einen Test Deines Makros ...
22.02.2022 09:03:43
Herbert_Grom
Hallo Werner,
vielen Dank, die habe ich schon verwendet. Ich wollte nur sehen, wie es mit noch mehr Daten aussieht.
Servus
AW: Versetzung nach der Import XML
21.02.2022 19:16:30
Thomas
Hallo Herbert,
ich kann leider keine Original-XML-Datei an dich senden und bedanke mich für dein Verständnis. Mein Problem ist, ich konnte einfach dein Code nicht verstehen. TUT mir sehr leid dass ich zu spät antworte
AW: Versetzung nach der Import XML
22.02.2022 09:02:13
Herbert_Grom
Hallo Thomas,
dann teste mal diese Version:
https://www.herber.de/bbs/user/151287.xlsm
Servus
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige