Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro über mehrere Arbeitsblätter

Makro über mehrere Arbeitsblätter
Ben
Hallo
Da wir den Datenbankserver wechseln, müssen bei vielen Abfragen, die auf Excel/Query basieren, die ODBC-Quelle geändert werden. Ich habe dazu diesen Code
Worksheets(1).QueryTables(1).Connection="ODBC;DSN=PABS"
Dies funktioniert, wenn ich im Tabellenblatt 1 eine Abfrage habe. In anderen Dateien sind auf verschiedenen Arbeitsblättern Abfragen, nicht unbedingt aber auf allen Arbeitsblättern.
Hat jemand eine Idee, wie man obigen Code anpassen müsste, so dass die ODBC-Quelle bei allen Tabellenblättern mit Abfragen geändert werden, egal ob die Datei eine oder mehrere Abfragen enthält?
Danke und Gruss
Ben

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

Betreff
Benutzer
Anzeige
AW: Makro über mehrere Arbeitsblätter
16.02.2011 09:05:40
Jürgen
Hallo Ben,
dafür eignen sich For-Each-Schleifen recht gut:
Sub Aendern()
Dim QT As QueryTable
Dim Blatt As Worksheet
For Each Blatt In ActiveWorkbook.Worksheets
For Each QT In Blatt.QueryTables
QT.Connection = "ODBC;DSN=PABS"
Next
Next
End Sub

Gruß, Jürgen
AW: Makro über mehrere Arbeitsblätter
16.02.2011 09:30:55
Guenther
Ginge nicht auch die ODBC-Quelle auf den anderen Server verweisen zu lassen, dann bräuchte im Excel nichts angepasst werden.
Ansonsten sollte die Count-Eigenschaft helfen
for ws=1 to Worksheets.count
if worksheet(ws).Querytables.count >0 then ...
endif
next
Gruß,
Günther
Anzeige
AW: Makro über mehrere Arbeitsblätter
16.02.2011 16:13:55
Ben
Hallo Günther
Du hast recht. Wir sind intern mittlerweile auch auf diese Lösung gekommen und die funktioniert einwandfrei und ist viel weniger aufwendig.
Danke und Gruss
Ben

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige