Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Excel 2010 VB Makro Inhalt einer Webseite in Browser kopieren schlägt fehlt

Frage Microsoft Microsoft Office

Mitglied: SweetOne

SweetOne (Level 1) - Jetzt verbinden

12.11.2014 um 08:21 Uhr, 2453 Aufrufe, 17 Kommentare

Hallo liebe Leute!

ich möchte den Inhalt einer Webseite in ein Excel Sheet kopieren.

manueller Weg: Seite öffnen>Str+A>Str+C>Excel>Str+V
also nicht den Code kopieren und einfügen (!)

Hier mein aktueller code:

01.
Private Sub CopyHtmlToClipboard(wwwAdress As String) 
02.
     Dim appIE As Object 
03.
     Set appIE = CreateObject("InternetExplorer.Application") 
04.
 
05.
     appIE.navigate wwwAdress 
06.
     appIE.Visible = False 
07.
 
08.
     Do: Loop Until appIE.Busy = False 
09.
     appIE.ExecWB 17, 0 'Select All 
10.
 
11.
     Do: Loop Until appIE.Busy = False 
12.
     appIE.ExecWB 12, 0 'Copy 
13.
 
14.
     Do: Loop Until appIE.Busy = False 
15.
 
16.
     appIE.Application.Quit 
17.
     Set appIE = Nothing 
18.
End Sub
Grundsätzlich funktioniert das auch. Nur nicht bei der gewünschten (internen!) Seite.
ich vermute folgdendes als Ursache:

Diese erfordert eine Browser Authentifizierung.
Sprich der Broser überträgt die Nutzerdaten authomatisch.
Wie so üblich bei ERP Systemen..

Bei der Seite handelt es sich um eine .aspx Seite,
falls dass eine Rolle spielt.

Gruß aus dem noch nebeligen Bayern
SweetOne
Mitglied: Eintagsfliege
12.11.2014, aktualisiert um 12:04 Uhr
Hallo SweetOne!


Hast Du es auch mal per Daten>Externe Webabfrage versucht?

Teste mal damit:
01.
Sub TestUrl(ByRef sUrl) 
02.
    Dim sText As String 
03.
     
04.
    On Error Resume Next 
05.
    With CreateObject("WinHttp.WinHttpRequest.5.1") 
06.
        .Open "Get", sUrl, False 
07.
        .Send 
08.
         sText = .ResponseText 
09.
    End With 
10.
    On Error GoTo 0 
11.
     
12.
    If sText <> "" Then 
13.
        MsgBox True 
14.
    Else 
15.
        MsgBox False 
16.
    End If 
17.
End Sub
Wahr oder Falsch?

Wenn Wahr, kompletten Inhalt (body) oder nur Tabellen (table)?

Grüße Dieter
Bitte warten ..
Mitglied: SweetOne
12.11.2014 um 15:14 Uhr
Hallo Eintragsfliege,

ich hatte es noch nicht mit der externen Webabfrage Versucht.
Sehr nette idee .. leider kopiert er nur die Tabllen, nicht den Inhalt.
Ich fürchte das Excel hier nicht geduldig genug ist,
da Sie Seiten eine gewisse Ladezeit haben.

Als Makro stellt sich das so dar (google als Beispiel)

01.
    With ActiveSheet.QueryTables.Add(Connection:= _ 
02.
        "URL;https://www.google.de/?gws_rd=ssl", Destination:=Range("$A$1")) 
03.
        .Name = "?gws_rd=ssl" 
04.
        .FieldNames = True 
05.
        .RowNumbers = False 
06.
        .FillAdjacentFormulas = False 
07.
        .PreserveFormatting = True 
08.
        .RefreshOnFileOpen = False 
09.
        .BackgroundQuery = True 
10.
        .RefreshStyle = xlInsertDeleteCells 
11.
        .SavePassword = False 
12.
        .SaveData = True 
13.
        .AdjustColumnWidth = True 
14.
        .RefreshPeriod = 0 
15.
        .WebSelectionType = xlEntirePage 
16.
        .WebFormatting = xlWebFormattingNone 
17.
        .WebPreFormattedTextToColumns = True 
18.
        .WebConsecutiveDelimitersAsOne = True 
19.
        .WebSingleBlockTextImport = False 
20.
        .WebDisableDateRecognition = False 
21.
        .WebDisableRedirections = False 
22.
        .Refresh BackgroundQuery:=False 
23.
    End With
Kann man hier vlt. ihrgendwie eine Warezeit einstellen?


Das Ergebnis der Abfrage ist jedenfalls wahr.
Der hover beim Debugger zeigt das der body usw eingeladen wird.
..

Kann ich den html code vlt auch in den Browser wieder rein laden und dann versuchen zu kopieren?

Gruß der Dämmerung
SweetOne

PS: hatte heute leider nicht viel zeit mir die neuen Infos viel näher anzusehen, morgen hoffe ich =)
Bitte warten ..
Mitglied: Eintagsfliege
12.11.2014 um 15:55 Uhr
Hallo SweetOne!

Und wie funktioniert es hiermit:
01.
Public Sub Test() 
02.
   'Body=xlEntirePage, AllTables=xlAllTables 
03.
    Call GetWebDaten("https://www.google.de/?gws_rd=ssl", xlEntirePage) 
04.
   'Call GetWebDaten("https://www.google.de/?gws_rd=ssl", xlAllTables)  
05.
End Sub 
06.
 
07.
Private Sub GetWebDaten(ByRef sUrl, ByVal iMode As Long) 
08.
    Dim sHtmlText As String, sHtmlFile As String, sHtmlQuery As String 
09.
    Dim sText As String, i As Integer 
10.
     
11.
    On Error Resume Next 
12.
    With CreateObject("WinHttp.WinHttpRequest.5.1") 
13.
        For i = 1 To 3  'Max 3 Versuche 
14.
           .Open "Get", sUrl, False 
15.
           .Send 
16.
            sText = .ResponseText 
17.
            If sText <> "" Then 
18.
                Exit For 
19.
            End If 
20.
        Next 
21.
    End With 
22.
    On Error GoTo 0 
23.
     
24.
    If sText <> "" Then 
25.
        sHtmlText = "<html><head><title></title></head><body>" 
26.
        sHtmlText = sHtmlText & Split(sText, "<body")(1) 
27.
        sHtmlFile = Environ("Temp") & "\Temp.html" 
28.
        sHtmlQuery = "FINDER;File:///" & Replace(sHtmlFile, "\", "/") 
29.
                     
30.
        With CreateObject("Scripting.FileSystemObject") 
31.
            .CreateTextFile(sHtmlFile).Write sHtmlText 
32.
             Do Until .FileExists(sHtmlFile): Loop 
33.
        End With 
34.
     
35.
        With ActiveSheet 
36.
           .UsedRange.Cells.Clear 
37.
            With .QueryTables.Add(Connection:=sHtmlQuery, Destination:=.Range("A1")) 
38.
                .AdjustColumnWidth = True 
39.
                .WebSelectionType = iMode    'xlAllTables, xlEntirePage 
40.
                .WebFormatting = xlWebFormattingNone 
41.
                .Refresh BackgroundQuery:=False 
42.
                .Delete 
43.
            End With 
44.
        End With 
45.
    End If 
46.
End Sub

Grüße Dieter
Bitte warten ..
Mitglied: SweetOne
13.11.2014, aktualisiert um 07:32 Uhr
Hallo Dieter,

sehr schöner Ansatz den ich selbst sicherlich nicht geschafft hätte.
Zumindest nicht so schnell. Bei google Funktioniert der Ansatz auch...

Aber bei der problematischen ERP Seite leider nicht... =(

Mich irritiert das die Daten aus dem Web Abfrage scheinbar keine Zugriffsprobleme hat...
dafür sind aber auch die Tabellen leer.

>Serverfehler
>401 - Nicht autorisiert: Zugriff aufgrund ungültiger Anmeldeinformationen verweigert.
>Die angegebenen Anmeldeinformationen berechtigen Sie nicht, dieses Verzeichnis oder >diese Seite anzuzeigen.

Noch eine Idee dazu?
So langsam glaube ich, dass es einfach nicht geht.... .

Wäre sehr schade, es geht um eine monatliche Kopierarbeit im Umfang von etwa 25 Seiten und Excel Erstellung,
welche sehr schön für ein Makro wäre. Wenn es funktioniert sicherlich auch mehr als einmal im Monat..

Ergänzung: Sehr gute Seite gefunden wo ich glaube ich mit weiter komme.
http://www.freecoffee.de/2014/09/tutorial-web-scraping-mit-vba-teil-1/

Sehr lange gesucht aber erst jetzt nach der Recherche nach der HTTP request gefunden.

Darin verwendet wird URLencode...:
http://dc-storm.com/de/news-events/news/urlencode-urldecode-als-excel-f ...
Funktioniert bei mir nur leider nicht.
Alternative: http://www.dorf-rauxel.de/picard/tools/urlcode.php

Mit freundlichen Grüßen
SweetOne
Bitte warten ..
Mitglied: SweetOne
13.11.2014, aktualisiert um 08:25 Uhr
Hallo,

also den Authentifizierungsfehler habe ich web bekommen.
ich habe den Befehl ".SetCredentials" ergänzt.

Nur sieht das resultat nun genau so aus wie beim Import über die Excel "Daten von Webseite" Funktion. Die Tabellen sind leer.

Die gleiche Adresse im Browser ist definitv nicht leer.

Ich habe nach meinem besten wissen Versucht über die msdn Seite weiter zu kommen:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384106(v=vs.8 ...

Leider komme ich auf keinen grünen Zweig =(.

Gruß
SweetOne
Bitte warten ..
Mitglied: Eintagsfliege
13.11.2014 um 08:46 Uhr
Hallo SweetOne!

Sorry, da ich keine Möglichkeit habe den Vorgang nachzustellen, kann ich Dir leider nicht weiterhelfen

Eventuell hätte Uwe (colinardo) als Allround-Experte diesbezüglich mehr Möglichkeiten und könnte weiterhelfen?

Versuchs mal mit einer PN an colinardo

Deine geposteten Links sind auch für mich sehr hilfreich, von daher mal Danke dafür...


Grüße Dieter
Bitte warten ..
Mitglied: SweetOne
13.11.2014 um 08:56 Uhr
Hallo Dieter,

naja trotzdem danke! =)

weist du vlt ob die HTTP Request Funktion wartet bis die Seite geladen hat?

Gruß aus gefühlten Unterwelt in Bayern (Nebel)
SweetOne
Bitte warten ..
Mitglied: Eintagsfliege
13.11.2014, aktualisiert um 09:16 Uhr
Hallo SweetOne!

Yepp, HttpRequest wartet. Du kannst auch noch nach dem '.Send' eine Statusabfrage (MsgBox .Status) in den HttpRequest einbauen, wobei der Wert '200' für 'OK' steht...

Grüße Dieter
Bitte warten ..
Mitglied: SweetOne
13.11.2014, aktualisiert um 09:23 Uhr
Hallo,

bin jetzt in der Ursachen Forschung weiter gekommen.

Ich habe die Seite im Browser gespeichert als html.
Hier war die Formatirung auf einmal total Wüst aber mit Inhalt.

Gepspeichert als .mht führte dazu das der IE eine Meldung bringt:
"Die Seite greift auf Informationen aus anderen Daten zu. (...) Möchten Sie fortsetzen.
Darauf hin öffnet sich ein neues Fenster und .... (!)
==> die Tabelle bleibt leer.

Soll heisen scheinbar existiert eine Art Ajax Stream welcher Seiten nachläd und im Lokalen Zustand den Server nicht erreicht.
Aufgrund des Seiten Umfangs habe ich das nicht gesehen.... .

Gruß aus Bayern
SweetOne
Bitte warten ..
Mitglied: Eintagsfliege
13.11.2014, aktualisiert um 10:19 Uhr
OK, dann versuchs mal damit:
01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
Private Const IE_READYSTATE_COMPLETE = 4 
05.
 
06.
Public Sub Test() 
07.
   'Body=xlEntirePage, AllTables=xlAllTables 
08.
    Call GetWebDaten("https://www.google.de/?gws_rd=ssl", xlEntirePage) 
09.
End Sub 
10.
 
11.
Private Sub GetWebDaten(ByRef sUrl, ByVal iMode As Long) 
12.
    Dim sHtmlText As String, sHtmlFile As String, sHtmlQuery As String, sText As String 
13.
     
14.
     With CreateObject("InternetExplorer.Application") 
15.
         .Navigate sUrl 
16.
          Do Until .ReadyState = IE_READYSTATE_COMPLETE:  Loop 
17.
          'Call WaitOfLoad(2)   'Falls Seite noch nicht geladen Wartezeit aktivieren 
18.
          sText = .document.body.innerHtml 
19.
         .Quit 
20.
     End With 
21.
     
22.
    If sText <> "" Then 
23.
        sHtmlText = "<html><head><title></title></head><body>" & sText & "</body></html>" 
24.
        sHtmlFile = Environ("Temp") & "\Temp.html" 
25.
        sHtmlQuery = "FINDER;File:///" & Replace(sHtmlFile, "\", "/") 
26.
                     
27.
        With CreateObject("Scripting.FileSystemObject") 
28.
            .CreateTextFile(sHtmlFile).Write sHtmlText 
29.
             Do Until .FileExists(sHtmlFile): Loop 
30.
        End With 
31.
     
32.
        With ActiveSheet 
33.
           .UsedRange.Cells.Clear 
34.
            With .QueryTables.Add(Connection:=sHtmlQuery, Destination:=.Range("A1")) 
35.
                .AdjustColumnWidth = True 
36.
                .WebSelectionType = iMode    'xlAllTables, xlEntirePage 
37.
                .WebFormatting = xlWebFormattingNone 
38.
                .Refresh BackgroundQuery:=False 
39.
                .Delete 
40.
            End With 
41.
        End With 
42.
    End If 
43.
End Sub 
44.
 
45.
'Funktion Warten auf Ausführung in Sekunden ( 1s = 1, 100ms = 0.1, 500ms = 0.5, 10ms = 0.01...) 
46.
Private Sub WaitOfLoad(ByVal Sekunden As Double) 
47.
    Dim StopTime As Double 
48.
    StopTime = Date + ((Timer + Sekunden) / 86400) 
49.
    Do While StopTime >= (Date + Timer / 86400) 
50.
        DoEvents 
51.
    Loop 
52.
End Sub
Wobei Du bei Bedarf die Codezeile 17 mit einer Wartezeit versehen kannst...

Grüße aus (dem trüben) Baden-Württemberg
Dieter
Bitte warten ..
Mitglied: SweetOne
13.11.2014, aktualisiert um 11:07 Uhr
Hallo,

ja zwei dumme ein Gedanke =). Genau das hatte ich auch versucht.
Bleibe aber bei deinem Script an der gleichen Stelle hängen wie an meiner.

Abgesehen davon ist deins ihrgendwie eleganter...
sText = .document.body.innerHTML

>Die Methode 'Document' für das Objekt 'IWebBrowser 2' ist fehlgeschlagen

Mir fehlt aktuell noch der Wink woran das liegt....
Sind diese Bezeichnungen vom Dom aufbau der Seite abhängig?
Oder aber von der Browser Version. Bei mir IE8.

Gruß aus Bayern
SweetOne

Ergänzung:
Es ist nicht so das es grundsätzlich nicht geht. Google zum Beispiel geht wieder.
Der Aufbau zwischen der google seite und meiner erp seite ähneln sich. Denke nicht, dass das relevant ist.
Browser Version fällt weg da google funktioniert.

Vmtl Authentifizierung/Ajax
Bitte warten ..
Mitglied: SweetOne
13.11.2014, aktualisiert um 11:38 Uhr
Hallo,

Ihrgendwie schlägt so gut wie jede Methode fehl mit der geöffneteten Internetexplorer Anwendung was zu machen.
(gilt nicht für google!!)

Ich habe es nun auch mal per ExecWB versucht... nicht gefunden.
01.
appIE.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER, "c:\temp\test.pdf"
Aber eben nur speziell bei den Seiten.
Der Browser mit korrekten Inhalt geht ja auf.

---
werde heute wohl erstmal was anderes machen
das ist ja frustrierent =(

gruß
SweetOne
Bitte warten ..
Mitglied: Eintagsfliege
14.11.2014 um 10:17 Uhr
Hallo SweetOne!

Normalerweise kann bei Https-Seiten im Browser nicht auf den Documentinhalt zugegriffen werden oder der Quelltext angezeigt werden, was dann aber per Http-Request wiederum geht. Wenn die Tabellinhalte allerdings nach dem Öffnen der Website erst nachträglich mit einer Verzögerung geladen werden, sehe ich da keine Chance die Inhalte auszulesen.

Ändert sich nach dem Laden der Daten in der Address-Leiste irgendwas?


Grüße Dieter
Bitte warten ..
Mitglied: SweetOne
14.11.2014, aktualisiert um 10:38 Uhr
Hallo Dieter,

keine direkte Verzögerung. Die Daten werden aus der SQL Datenbank ausgelesen und dann eingeladen. Wie gesagt so eine Art Ajax oder so. Die Adressleiste bleibt gleich.

Unter diesen Umständen muss ich wohl doch direkt die SQL Datenbank befragen.
Excel selbst schafft es nicht die SQL Abfrage durchzuführen. Ich denke mal zu komplex in diesem Fall, habe ich öfters.
Zudem brauch ich da sicherlich wieder einiges an Makro Code zum formatieren...
..ich hoffe das dies dann über VB ihrgendwie trotzdem zu händeln ist.
Zumal es eh etwas Tricky ist die Datenverbindung vom Excel per VB anzusteuern.

Aber das ist dann doch etwas out-of-topic würde ich mal sagen.

Gruß nach BaWü
SweetOne
Bitte warten ..
Mitglied: Eintagsfliege
14.11.2014 um 11:27 Uhr
Hallo SweetOne!

Unter diesen Umständen muss ich wohl doch direkt die SQL Datenbank befragen.
Excel selbst schafft es nicht die SQL Abfrage durchzuführen.
Das war auch mein erster Gedanke, wollte Dich damit aber nicht überfordern

Hast Du Zugriff (Rechte, Username, Passwort...) auf die Datenbank und kennst Tabellenname, Feldnamen...?


Grüße Dieter
Bitte warten ..
Mitglied: SweetOne
14.11.2014, aktualisiert um 11:55 Uhr
Hallo Dieter,

Für die Abfrage habe ich einen speziellen Account mit Leserechten damit nichts verändert wird.
Den Connection String habe ich 1:1 aus der ODDB Verbindung kopiert.
Sollte dann passen oder?

Tabellen sind mir soweit vollständig bekannt und eine entsprechende Abfrage liegt schon bereit,
aus dem ERP genommen und im MS SQL Manager getestet.

In diesem VB-Bereich fehlt mir nur etwas die Erfahrung.
Ich bekomme einen Fehler nach dem anderen....

01.
Sub test() 
02.
    'erforderliche Bilbiotek: Microsoft ActiveX Data Object 6.1 Library 
03.
     
04.
    'Deklaration von Variablen (wer hätte das gedacht  ) 
05.
    Dim con As ADODB.Connection 'Deklarieren der connection 
06.
    Set con = New ADODB.Connection 'Instanzierung des Objektes 
07.
    Dim RS As Recordset 'Deklaration des Recordset 
08.
    Set RS = New ADODB.Recordset 'Instanzierung des Recordsets 
09.
    Dim SQL As String 
10.
    SQL = "SELECT TOP 100 * from adressen" 
11.
     
12.
    'Öffnen der ODBC Schnittstelle DSN ist der DataSourceName 
13.
    con.ConnectionString = "Provider=SQLOLEDB.1;Password=MeinPW;Persist Security Info=True;User ID=MeinUser;Initial Catalog=ERB_DB_NAME;Data Source=ERB_DB_SERVER;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=PCNAME;Use Encryption for Data=False;Tag with column collation when possible=False" 
14.
    con.Open 
15.
    RS.Open SQL, con 
16.
    con.Close 
17.
 
18.
End Sub 
19.
 
..Automatisierungsfehler ihrgendwas....
Ich habe google danach bemüht, leider erfolglos.

Der Fehler kommt in der Zeile RS.Open SQL, con.

Meine erste Ídee währe ein Fehlerhafter Connection String.
Auf der anderen Seite funktioniert dieser doch 1:1 in Excel.
Zudem sieht er nicht ganz falsch aus:
http://support.microsoft.com/kb/193135/de

Nachträgliche Anmerkung:
Wenn ich die ConnectionString verfäsche, sprich z.b. passwort ändere kommt direkt fehler,
hier scheint also alles i.O. zu sein. Verbindung scheint laut MS auch so zu stimmen:
http://technet.microsoft.com/en-us/library/aa905872(v=SQL.80).aspx

Anmerkung:
Connection String um Zugansdaten etc. abgeändert und SQL Select ganz einfach zum testen.

Gruß aus Bayern
SweetOne
Bitte warten ..
Mitglied: Eintagsfliege
14.11.2014, aktualisiert 15.11.2014
Hallo SweetOne!

Zum Testen:
SQL = "SELECT * From adressen"

Connection-Beispiele sind hier noch zu finden...

Das Ganze dann in etwa so:
01.
Public Sub GetData() 
02.
    Call DataImport("Tabelle1", "SELECT * From [Adressen]") 
03.
End Sub 
04.
 
05.
Private Sub DataImport(ByRef sSheetName, ByRef sSQL) 
06.
   'Verweis-Bibliothek: Microsoft ActiveX Data Object 6.1 Library 
07.
    Dim con As ADODB.Connection, rs As Recordset 
08.
    Dim Wks As Worksheet, RowNext As Long, i As Long 
09.
 
10.
    Set con = New ADODB.Connection 'Instanzierung des Objektes 
11.
    Set rs = New ADODB.Recordset 'Instanzierung des Recordsets 
12.
 
13.
    'Öffnen der ODBC Schnittstelle DSN ist der DataSourceName 
14.
    con.ConnectionString = "Connect-Daten" 
15.
    con.Open 
16.
     
17.
    'Dieser Teil schreibt die Daten (Spaltenüberschrift, Werte) in die Tabelle 
18.
    If con.State = adStateOpen Then 
19.
        rs.Open sSQL, con 
20.
         
21.
        Set Wks = Sheets(sSheetName):  Wks.UsedRange.ClearContents 
22.
         
23.
        RowNext = 1 
24.
         
25.
        With rs 
26.
            If .Fields.Count Then   'Import Spaltenüberschriften (Feldnamen) 
27.
                For i = 0 To .Fields.Count - 1 
28.
                    Wks.Cells(RowNext, i + 1).Value = .Fields(i).Name 
29.
                Next 
30.
            End If 
31.
             
32.
            Do Until .EOF   'Import Werte 
33.
                RowNext = RowNext + 1 
34.
                For i = 0 To .Fields.Count - 1 
35.
                    Wks.Cells(RowNext, i + 1).Value = .Fields(i).Value 
36.
                Next 
37.
               .MoveNext 
38.
            Loop 
39.
           .Close 
40.
        End With 
41.
        con.Close 
42.
    Else 
43.
        MsgBox "Keine Verbindung!" 
44.
    End If 
45.
End Sub
Grüße Dieter
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

Microsoft Office
Excel 2010 - Microsoft Excel kann die Daten nicht kopieren (4)

Frage von EDV-Oellerking zum Thema Microsoft Office ...

Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

Windows 10
Excel 2010 unter Windows 10

Frage von MiSt zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (23)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...