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

Abfrage & Verbindungen löschen

Forumthread: Abfrage & Verbindungen löschen

Abfrage & Verbindungen löschen
05.12.2018 15:14:52
Manuela
Hallo zusammen,
ich habe schon gegoogelt aber konnte keine Lösung finden. Und zwar möchte ich per VBA die "Abfrage & Verbindungen" löschen
Reiter:
Daten / Abfragen und Verbindungen
Ich habe zwar ein Code gefunden, aber der löscht mir dies nicht komplett.
Code aus dem INet:
Sub Verbindungen_Loeschen()
' Verbindungen in aktiver Arbeitsmappe Loeschen
Dim wb As Workbook, objConnection As Variant, varAuswahl As Long
Set wb = ActiveWorkbook
For Each objConnection In wb.Connections
varAuswahl = MsgBox(prompt:="Name: " & objConnection.Name & vbLf & vbLf _
& "Diese Verbindung löschen?", _
Buttons:=vbQuestion + vbYesNoCancel, Title:="Daten-Verbindungen löschen")
Select Case varAuswahl
Case vbYes
Application.DisplayAlerts = False
objConnection.Delete
Application.DisplayAlerts = True
Case vbNo
'do nothing
Case vbCancel
Exit For
End Select
Next
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage & Verbindungen löschen
05.12.2018 15:35:16
PeterK
Hallo
Weis heisst "komplett"? Werde Einzelen gelöscht und Andere nicht?
AW: Abfrage & Verbindungen löschen
05.12.2018 15:42:37
Manuela
Hallo PeterK,
Beim ersten mal ausführen scheint der Code was zu machen da die MSG-Box kommt. Aber unter "Abfrage" ist die die Importierte Datei noch zu sehen.
Und wenn ich den Code erneut starte, kommt Garnichts mehr. Somit geh ich davon aus, das was gelöscht wird aber eben nicht vollständig.
z.B. die Verbindung ist gelöscht aber die Abfrage ist noch da.
Bild habe ich hochgeladen:
https://www.herber.de/bbs/user/125916.jpg
gruß
Anzeige
AW: Abfrage & Verbindungen löschen
05.12.2018 15:47:30
PeterK
Hallo
Ungetestet, aber der Ansatz stimmt

Dim qt As QueryTable
Dim ws As Worksheet
For each ws in wb.worksheets
For Each qt In ws.QueryTables
If qt.Refreshing Then qt.CancelRefresh
qt.Delete
Next
Next

AW: Abfrage & Verbindungen löschen
05.12.2018 15:56:51
Manuela
Die "wb" Variable hab ich ergänzt, aber scheint nicht zu funktionieren.
Sub test()
'ungetestet
Dim qt As QueryTable
Dim ws As Worksheet
Set wb = ActiveWorkbook
For Each ws In wb.Worksheets
For Each qt In ws.QueryTables
If qt.Refreshing Then qt.CancelRefresh
qt.Delete
Next
Next
End Sub

Anzeige
AW: Abfrage & Verbindungen löschen
05.12.2018 16:11:39
PeterK
Hallo

Sub Verbindungen_Loeschen()
' Verbindungen in aktiver Arbeitsmappe Loeschen
Dim wb As Workbook, objConnection As Variant, varAuswahl As Long
Dim qt As QueryTable
Dim ws As Worksheet
Set wb = ActiveWorkbook
For Each objConnection In wb.Connections
varAuswahl = MsgBox(prompt:="Name: " & objConnection.Name & vbLf & vbLf _
& "Diese Verbindung löschen?", _
Buttons:=vbQuestion + vbYesNoCancel, Title:="Daten-Verbindungen löschen")
Select Case varAuswahl
Case vbYes
Application.DisplayAlerts = False
objConnection.Delete
Application.DisplayAlerts = True
Case vbNo
'do nothing
Case vbCancel
Exit For
End Select
Next
For Each ws In wb.Worksheets
For Each qt In ws.QueryTables
If qt.Refreshing Then qt.CancelRefresh
qt.Delete
Next
Next
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Abfragen und Verbindungen in Excel löschen


Schritt-für-Schritt-Anleitung

Um in Excel Abfragen und Verbindungen zu löschen, kannst Du ein VBA-Skript verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub Verbindungen_Loeschen()
       Dim wb As Workbook, objConnection As Variant, varAuswahl As Long
       Dim qt As QueryTable
       Dim ws As Worksheet
       Set wb = ActiveWorkbook
    
       ' Löschen der Verbindungen
       For Each objConnection In wb.Connections
           varAuswahl = MsgBox(prompt:="Name: " & objConnection.Name & vbLf & vbLf _
           & "Diese Verbindung löschen?", _
           Buttons:=vbQuestion + vbYesNoCancel, Title:="Daten-Verbindungen löschen")
           Select Case varAuswahl
           Case vbYes
               Application.DisplayAlerts = False
               objConnection.Delete
               Application.DisplayAlerts = True
           Case vbNo
               ' Nichts tun
           Case vbCancel
               Exit For
           End Select
       Next
    
       ' Löschen der QueryTables
       For Each ws In wb.Worksheets
           For Each qt In ws.QueryTables
               If qt.Refreshing Then qt.CancelRefresh
               qt.Delete
           Next
       Next
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, wähle Verbindungen_Loeschen aus und klicke auf Ausführen.

Nun sollten sowohl die Verbindungen als auch die Abfragen gelöscht sein.


Häufige Fehler und Lösungen

  • Fehler: Einige Abfragen bleiben bestehen.

    • Lösung: Stelle sicher, dass Du sowohl die Connections als auch die QueryTables im Code berücksichtigst. Der oben angegebene Code löscht beides.
  • Fehler: Der Code löscht nicht alle Verbindungen.

    • Lösung: Prüfe, ob die Verbindungen aktiv sind. Einige Verbindungen können in einer anderen Arbeitsmappe oder im Hintergrund aktiv sein.

Alternative Methoden

Neben VBA gibt es auch die Möglichkeit, externe Datenverbindungen manuell zu löschen:

  1. Gehe zum Reiter Daten.
  2. Klicke auf Abfragen und Verbindungen.
  3. Wähle die Verbindung, die Du löschen möchtest, mit der rechten Maustaste aus und klicke auf Löschen.

Diese Methode eignet sich gut, wenn Du nur gelegentlich Verbindungen löschen möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den VBA-Code anpassen kannst:

  • Löschen aller Verbindungen ohne Bestätigung:

    Sub Alle_Verbindungen_Loeschen()
       Dim wb As Workbook
       Set wb = ActiveWorkbook
       For Each objConnection In wb.Connections
           objConnection.Delete
       Next
    End Sub
  • Löschen spezifischer QueryTables:

    Sub Spezifische_QueryTables_Loeschen()
       Dim ws As Worksheet
       Set ws = ActiveSheet
       For Each qt In ws.QueryTables
           If qt.Name = "DeinQueryName" Then qt.Delete
       Next
    End Sub

Tipps für Profis

  • Backup erstellen: Bevor Du Verbindungen löschst, erstelle eine Sicherungskopie der Arbeitsmappe.
  • Regelmäßige Überprüfung: Überprüfe regelmäßig, welche Verbindungen in Deiner Arbeitsmappe aktiv sind, um die Übersicht zu behalten.
  • VBA optimieren: Optimiere Deinen VBA-Code zur besseren Performance, indem Du unnötige Schleifen vermeidest.

FAQ: Häufige Fragen

1. Wie kann ich externe Datenverbindungen in Excel löschen?
Du kannst externe Datenverbindungen über den Tab Daten unter Abfragen und Verbindungen löschen oder einen VBA-Code verwenden, wie oben beschrieben.

2. Was passiert, wenn ich eine Verbindung lösche?
Wenn Du eine Verbindung löschst, werden alle damit verbundenen Daten und Abfragen entfernt. Stelle sicher, dass Du diese Daten nicht mehr benötigst.

3. Kann ich alle Verbindungen auf einmal löschen?
Ja, mit dem entsprechenden VBA-Skript kannst Du alle Verbindungen in Deiner Arbeitsmappe auf einmal löschen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige