Clever-Excel-Forum

Normale Version: Externe Daten abrufen (Sql)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Morgen

Habe zum Thema noch eine Folgefrage, in meiner untenstehenden Sql-Abfrage muss ich an drei Stellen meine auszuwertende Auftragsnummer (00015000) eingeben.
Um eine andere Auftragsnummer auszuwerten, muss ich immer ins PowerPivot-Fenster und unter Entwurf -> Tabelleneigenschaften die Auftragsnummer anpassen, was ziemlich umständlich und nicht gerade benutzerfreundlich ist.

Deswegen, ist es irgendwie möglich, im Excel-Fenster derselben Arbeitsmappe in einer Zelle eine Auftragsnummer zu erfassen, so dass diese dann an die Sql-Abfrage übergeben wird (mittels Makro oder dergleichen)? Der Benutzer der Arbeitsmappe sollte sich im Idealfall  gar nie im PowerPivot-Fenster bewegen müssen.

Besten Dank für Eure Bemühungen,
Freundlicher Gruss,
MiZ
Hallo Miz,

ich arbeite zwar nicht mit PowerPivot, könnte mir aber als ersten Schritt vorstellen, ein Makro für die Eingabe der Nummer usw. aufzuzeichnen. Ich hoffe mal, dass das geht. Es gibt ja die eine oder andere Aktion, wo nichts aufgezeichnet wird.

Wenn da was entsteht, könntest Du es hier mal posten. Eventuell reicht dann die Ergänzung einer Inputbox im code oder etwas ähnliches.
Guten Morgen

Habe versucht ein entsprechendes Makro aufzuzeichen, das Ganze kommt aber ziemlich spartanisch daher...:

Sub Auftragswahl3()
'
' Auftragswahl3 Makro
'

'
    Selection.Copy
    Range("C18").Select
    Application.CutCopyMode = False
End Sub


Vielleicht kann da ja jemand von euch weiterhelfen..?

Ausserdem, habe es in der Zwischenzeit auch hingekriegt, diesselbe Abfrage ohne PowerPivot mittels "Externe Daten abrufen" zu hinterlegen. Die entsprechenden Verbindungseigenschaften bzw. der Befehlstext sind nachfolgend zu sehen:

[
Bild bitte so als Datei hochladen: Klick mich!
]

Vielleicht ist es ja einfacher, hier mit Parametern zu arbeiten. Es existiert ja ein Button "Parameter", dieser ist aber ausgegraut..?

Vielen Dank für eure Hilfe,
Gruss, MiZ
Hallo Miz,

das hatte ich befürchtet Sad

Ich habe hier mal einen Link zu ein paar Grundlagen des Datenabrufs mit Excel, eventuell hilft Dir der weiter:
http://www.online-excel.de/excel/singsel_vba.php?f=135
Guten Abend

Bin inzwischen soweit, dass ich die mittels MS Query und Parameterabfrage die aufgelaufenen Kosten des gesuchten Auftrages in Excel importieren kann. Da die Kosten aus drei verschiedenen Tabellen stammen und ich es nicht fertig kriege eine UNION ALL Abfrage in MS Query zu erstellen, werden die Kosten auf drei Tabellenblätter ("Material", "Personal", "Fremdleistung") importiert.

Nun möchte ich das Ganze mittels Pivot Tabelle auswerten, dazu möchte ich mittels Makro die Kosten der drei Tabellenblätter in ein "Zusammenfassung"-Tabellenblatt kopieren (quasi die UNION ALL Funktion nachbilden) und basierend auf diesen Daten die Pivot Tabelle erstellen.

Folgendes Marko habe ich hierzu erstellt:

Sub BereichKopieren()

Dim wksTB1 As Worksheet
Dim wksTB2 As Worksheet
Dim wksTB3 As Worksheet
Dim wksTB4 As Worksheet
Dim lngLetzteZeile As Long

Set wksTB1 = ThisWorkbook.Worksheets("Material")
Set wksTB2 = ThisWorkbook.Worksheets("Personal")
Set wksTB3 = ThisWorkbook.Worksheets("Fremdleistung")
Set wksTB4 = ThisWorkbook.Worksheets("Zusammenfassung")
lngLetzteZeile = wksTB1.Cells(Rows.Count, 2).End(xlUp).Row
wksTB1.Range("a1:N" & lngLetzteZeile).Copy Destination:=wksTB4.Range("a1:n" & lngLetzteZeile)
lngLetzteZeile = wksTB2.Cells(Rows.Count, 2).End(xlUp).Row
wksTB2.Range("a1:N" & lngLetzteZeile).Copy Destination:=wksTB4.Range("a1:n" & lngLetzteZeile)
lngLetzteZeile = wksTB3.Cells(Rows.Count, 2).End(xlUp).Row
wksTB3.Range("a1:N" & lngLetzteZeile).Copy Destination:=wksTB4.Range("a1:n" & lngLetzteZeile)

End Sub

Irgendwie klappt das jedoch noch nicht ganz, auf dass die Datensätze von "Material", "Personal" und "Fremdleistung" schön untereinander in das Tabellenblatt "Zusammenfassung" kopiert werden..? Kann da jemand weiterhelfen?

Ausserdem, insgesamt scheint mir meine Vorgehensweise äusserst umständlich, ich bezweifle stark, ob das nicht eleganter geht..
Vielleicht hat hier ja auch jemand noch eine Idee?

Schönen Abend und freundliche Grüsse,
MiZ
Seiten: 1 2