Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Externe Daten abrufen (Sql)
#11
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
Antworten Top
#12
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
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
Antworten Top
#14
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste