Clever-Excel-Forum

Normale Version: Diskussionen um PQ (aus:Bezug jede 2. Zeile um eins erhöhen)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
In VBA:


Code:
Sub M_snb()
   sn = Cells(1).CurrentRegion
   ReDim sp(2 * UBound(sn), 1)
   
   For j = 1 To UBound(sn)
      sp(2 * (j - 1), 0) = Split(sn(j, 1), "/")(0)
      sp(2 * (j - 1) + 1, 0) = Split(sn(j, 1), "/")(1)
      sp(2 * (j - 1), 1) = sn(j, 2)
      sp(2 * (j - 1) + 1, 1) = sn(j, 2)
   Next
   
   Cells(1, 6).Resize(UBound(sp) + 1, 2) = sp
End Sub
(06.05.2019, 15:44)Jockel schrieb: [ -> ][...] obwohl es mal wieder geschafft wurde ein dunkles Tuch über PQ zu werfen. [...]

Aha! Da zeige ich - vielleicht zum ersten Mal in dt. Foren - eine VBA-Aufzeichnung (die kann man auch ohne VBA-Wissen) einer PQ-Erstellung (also das, was Hein Blöd mit Menüs macht, was nicht heißen soll, dass ich nicht auch nur Hein Blöd bin), und dann ist das nur ein dunkles Tuch? Wo ich eher ein Licht angeknipst habe?

Englisch wirst Du ja können und solche Wörter wie "Delimiter" et al. im Code verstehen, oder?
Moin, deinen VBA-Code meinte ich nicht. Eher die Polemik um dieses Thema und wie Power Query wieder behandelt wird und der, der ein Vorschlag unterbreitet. Und wie das spezielle Angebot hier behandelt wurde. Dass der TE Power Query kannte und den Vorschlag nicht wollte ist ja die eine Sache. Aber hier ging es wie schon so oft darum, dass das gar nicht ausprobiert wurde sondern die Art und Weise wie gegen den Vorschlag vorgegangen wurde. 

Bei dieser popeligen Problematik, so ein Zauber darum zu machen. Viel heiße Luft um zwei Klicks. Oje. Das sagt schon Einiges aus.

Deine Einlassung - das hatte ich auch schon geschrieben - kann und will ich gar nicht bewerten. Ich versuche auch nicht persönlich zu werden.
Ok.

Könntest Du vielleicht ein Beispiel für ein PQ mit variabel vielen / pro Zelle posten (gern als Datei), die dann trotzdem untereinander gehängt werden? Also:

1/23
45/6/7
89

wird einfach durch "Aktualisieren" zu

1
23
45
6
7
89

Dann wäre PQ nämlich eine schicke Kiste. Ich vermute, dass das geht.
(06.05.2019, 16:44)LCohen schrieb: [ -> ]...
wird einfach durch "Aktualisieren" zu
...

Hallo, nein - das wäre ja nur der Aktualisieren-klick. Das geht geht nicht. Ich hatte ja bereits geschrieben, wie's geht
Es bleibt dann wahrscheinlich für dich eine "lame duck" ... ... Englisch wirst du ja können...
Was mich wundert ist dass die Leute die so heftig PQ propagieren nicht verstehen dass PQ nur ein neues User Interface ist.
Im 'Background' wird einfach VBA verwendet. In diesem Fall VBA in ein eigenem PQ Library (wie z.B ADODB.recordset).
(06.05.2019, 17:25)snb schrieb: [ -> ]Was mich wundert ist dass die Leute die so heftig PQ propagieren nicht verstehen dass PQ nur ein neues User Interface ist.
Im 'Background' wird einfach VBA verwendet. In diesem Fall VBA in ein eigenem PQ Library (wie z.B ADODB.recordset).

Danke für die Aufklärung. Wusste ich nicht. Muss ich nicht wissen. Mir reicht, dass es nicht als *xlsm  oder *.xlsb  abgespeichert werden muss. Und das es menügesteuert ist. Ich keine Programmiersprache können muss. Also ist Power Query nichts weiter als VBA für doofe. Passt! Ergo: Da musst du dich nicht wundern (zumindest, was mich angeht)
Hallo zusammen,

ich habe die Diskussion aus dem ursprünglichen Thema abgetrennt. Es führte nicht mehr zur weiteren Problemlösung der Frage.
Okay, verstehe, da bin ich ganz nah bei dir. Aber: wo ist der eigentlich thread? Und. Wichtig: Ich habe diese Diskussion nicht voran getrieben und auch nicht eröffnet. Aber haut ruhig immer alle druff...

Habe den thread gefunden...
Antwort zu #15, wo Jockel nicht verstanden hatte, was ich von ihm wollte, weil er es nämlich schon hatte, was ich nicht wußte, was er mir wiederum nicht als Fehler meinerseits zutraute ;) :

Sub PQListeAusVariablenFeldanzahlen(): Workbooks.Add xlWorksheet
   [A1:A5] = WorksheetFunction.Transpose(Split("Titel '1/23 '4/5/6 '7 '8/9"))
   ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$A$5"), , xlYes).Name = "Tabelle1"
   Range("Tabelle1[[#All],[Titel]]").Select
   r = Chr(13) & "" & Chr(10)
   ActiveWorkbook.Queries.Add Name:="Tabelle1", Formula:="let" & r & _
   "    Quelle = Excel.CurrentWorkbook(){[Name=""Tabelle1""]}[Content]," & r & _
   "    #""Geänderter Typ"" = Table.TransformColumnTypes(Quelle,{{""Titel"", type text}})," & r & _
   "    #""Spalte nach Trennzeichen teilen"" = Table.ExpandListColumn(Table.TransformColumns(#""Geänderter Typ"", {{""Titel"", Splitter.SplitTextByDelimiter(""/"", QuoteStyle.None), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), ""Titel"")," & r & _
   "    #""Geänderter Typ1"" = Table.TransformColumnTypes(#""Spalte nach Trennzeichen teilen"",{{""Titel"", Int64.Type}})" & r & "in" & r & _
   "    #""Geänderter Typ1"""
   Worksheets.Add
   With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
       "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Tabelle1;Extended Properties=""""" _
       , Destination:=Range("$A$1")).QueryTable
       .CommandType = xlCmdSql
       .CommandText = Array("SELECT * FROM [Tabelle1]")
       .RowNumbers = False
       .FillAdjacentFormulas = False
       .PreserveFormatting = True
       .RefreshOnFileOpen = False
       .BackgroundQuery = True
       .RefreshStyle = xlInsertDeleteCells
       .SavePassword = False
       .SaveData = True
       .AdjustColumnWidth = True
       .RefreshPeriod = 0
       .PreserveColumnInfo = True
       .ListObject.DisplayName = "Tabelle1_2"
       .Refresh BackgroundQuery:=False
   End With
End Sub

Dieser Code läuft also sofort und erstellt auch die von mir gewünschte Teilung "variabel vieler Felder in einer Zelle" in eigene Zeilen.
Seiten: 1 2 3