Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1716to1720
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

Wie SQL Server Import transponieren?

Wie SQL Server Import transponieren?
17.10.2019 11:32:00
AleXSR700
Hallo zusammen,
das neue Forum sieht gut aus :-)
Ich mache jetzt mal einen neuen Beitrag auf, weil es zwar eine gewisse Verbindung zu meinem Problem des Löschens leerer Spalten hat, aber zwei mögliche Lösungspunkte hat ( https://www.herber.de/forum_mobile/cgi-bin/call_thread.pl?index=1712051).
Folgendes Problem:
Ich habe eine Tabelle, in die abhängig vom Wert in der Kopfzeile Daten kopiert werden.
Zur Veranschaulichung: steht in Spalte x in der Kopfzeile die "Kunde", dann kopiert er den Kundennamen. In der Spalte mit Kopfzeile = "Anschrift" kopiert er die Anschrift usw.
Die Werte der Kopfzeile werden über einen SQL Server Import eingelesen und die zuzuweisenden Daten stammen aus einer zweiten Exceldatei.
Nachdem die Werte in die Tabelle eingetragen wurden, sollen alle Spalten, die keine Werte enthalten, gelöscht werden. Hierzu wird folgende Lösung verwendet:
Dim CleanColumn As Long
For CleanColumn = .Cells(9, Columns.Count).End(xlToLeft).Column To 4 Step -1
If .Cells(Rows.Count, CleanColumn).End(xlUp).Row = 9 Then _
Call .Range(.Cells(8, CleanColumn), .Cells(Rows.Count, CleanColumn)).Delete(Shift:=xlShiftToLeft)
Next
Das Problem ist, dass ich die Daten aus dem SQL Import als Array eingefügt habe. Das Löschen einzelner Spalten eines Arrays ist aber verboten. Es gibt also eine Fehlermeldung.
Wieso habe ich ein Array benutzt? Weil ich beim Import drei Spalten bekomme.
1. Datenwert
2. Datentyp (Kundenname, Anschrift etc.)
3. Status (bspw. "Fertiggestellt").
Problem 1: "Status" ist lediglich eine Kontrollspalte und soll nur als Filter dienen. Diese soll aber nicht in der Kopfzeile angezeigt werden. Angezeigt werden sollen nur "Datenwert" und "Datentyp".
Problem 2: Der Import erzeugt immer Zeilenweise die Einträge. Für eine Kopfzeile brauche ich diese Werte transponiert. Deshalb habe ich die Kopfzeile via MTRANS gefüllt.
Ich vermute also, dass man entweder eine Alternative zu MTRANS nutzen könnte, die dann das Problem der Arrays löst, oder man irgendwie Zellen/Spalten aus einem Array löschen kann, was im obigen Codeschnipsel nicht funktioniert.
Wichtig, falls man die SQL Infos irgendwie transponiert importieren kann: in der Kopfzeile dürfen weder die Titel der SQL Tabellen angezeigt werden noch die dritte Spalte (=das Filterkriterium).
Weiss von euch jemand, wie man das bewerkstelligen könnte?
Vielen Dank und viele Grüße

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie SQL Server Import transponieren?
18.10.2019 12:24:01
AleXSR700
Hallo noch einmal.
Ich versuche weiter mein Glück, komme aber noch nicht weiter. Ich finde keinen Weg eine transponierte Verknüpfung zu erstellen.
Und gleichzeitig finde ich keinen Weg, um eine einzelne Spalte aus einem Array zu löschen. Kennt jemand für eines von beiden eine Lösung?
AW: Wie SQL Server Import transponieren?
18.10.2019 12:36:59
AleXSR700
Edit:
Ich finde natürlich einen Weg transponierte Verknüpfungen zu erstellen. Nämlich mit MTRANS. Aber ich finde keinen Weg aus einem MTRANS Array etwas zu löschen.
Wie passe ich also meinen Code an, damit er auch aus einem MTRANS Array etwas löscht?
    With Worksheets("Analysenübersicht")
Dim CleanColumn As Long
For CleanColumn = .Cells(9, Columns.Count).End(xlToLeft).Column To 4 Step -1
If .Cells(Rows.Count, CleanColumn).End(xlUp).Row = 9 Then _
Call .Range(.Cells(8, CleanColumn), .Cells(Rows.Count, CleanColumn)).Delete(Shift:= _
xlShiftToLeft)
Next
End With

Anzeige
AW: Wie SQL Server Import transponieren?
18.10.2019 15:57:55
AleXSR700
Hallo zusammen,
ich wollte nur sagen, dass ich das Problem umgangen bin. Ich lasse jetzt das VBA Skript die Informationen immer Zelle für Zelle kopieren. Dann muss nichts transponiert werden und kann normal gelöscht werden.
Viele Grüße

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige