Autor
|
Thema: webseite (925 mal gelesen)
|
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 19. Feb. 2009 22:28 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 20. Feb. 2009 07:47 <-- editieren / zitieren --> Unities abgeben: Nur für thato
Hallo thato, Dein Vorhaben lässt sich sehr wahrscheinlich per VBA realisisieren. Es sind drei Schritte: 1. Webseite öffnen 2. Sachen kopieren 3. Sachen in xls einfügen Zum 1. Teil probier mal auf die Schnelle diesen Code: Code:
Private Sub cmdRegierungsb_Click() DestatisAufrufen "http://www.destatis.de/gv/suche_gv2000.htm", "Hamburg" End Sub Private Sub DestatisAufrufen(strURL As String, strOrt As String) 'IE als Objekt festlegen, URL aufrufen, Ort vorschlagen 'Quelle: http://www.wer-weiss-was.de/theme156/article1466713.html#1466713 Dim objBrow As Object 'Browser (NUR für IE möglich?!) Set objBrow = CreateObject("InternetExplorer.Application") With objBrow .Visible = True .Navigate (strURL) Do While .Busy Loop Do While .Document.ReadyState <> "complete" Loop SendKeys strOrt, True SendKeys "{TAB}{TAB}", True 'Es SOLLTE der gesuchte Ort eingetragen und die Schaltfläche 'Gemeinde suchen' 'aktiviert sein. Der User bestätigt (hoffentlich!) einfach per [Enter]. End With Set objBrow = Nothing End Sub
Die Sub arbeitet teilweise mit Tastenkürzeln (SendKeys). Vielleicht gibt es hierfür elegantere Methoden... Das Beispiel sucht beim Statistischen Bundesamt Online nach Hamburg (Bestätigung durch Benutzer).Evtl. lässt sich das markieren / (Teile der) Seite kopieren auch per SendKeys erreichen? Der Dritte Schritt zurück zu Excel und (aus der Zwischenablage) einfügen dürfte keine große Hürde sein. HTH Frederik ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 20. Feb. 2009 11:27 <-- editieren / zitieren --> Unities abgeben:
erstmal danke für deine hilfe. ich habe mich leider zu unklar ausgedrückt, da mir die tragweite des programms noch nicht bewußt war. also webseite öffnen geht ja mit dem code, den du mir geschickt hast. aber welcher part kopiert die webseite? problem zwei ist, dass es nicht nur eine webseite ist sondern ganz viele, die ich möglichst mit einer schleife abarbeiten will. die webseiten heißen dann blababla=id3245 und die id will ich quasi als variable haben, damit ich mit einer schleife alle webseiten öffnen kann! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 23. Feb. 2009 09:07 <-- editieren / zitieren --> Unities abgeben: Nur für thato
Zitat: also webseite öffnen geht ja mit dem code, den du mir geschickt hast.
Schön:) - genau so war dieser Ansatz auch gemeint. Zitat: aber welcher part kopiert die webseite?
Tja... dieser Teil müsste wohl neu erfunden werden - oder er ist irgendwo in den Tiefen des www zu finden. (Ganz unten im letzten link gibts nen link zu MS-Access --> weiterbuddeln, evtl. ist das auf xls übertragbar.) Zitat: problem zwei ist, dass es nicht nur eine webseite ist sondern ganz viele...
Wie Du schon schreibst: Schleife. Zuerst den Code fertig bauen und an einer Seite testen. Wenn das läuft, Schleife um alles herum basteln. Stichworte: For... Next, While... Wend, Do While... Loop und Do... Loop Until (VBA-Hilfe). Frederik ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 25. Feb. 2009 10:40 <-- editieren / zitieren --> Unities abgeben:
Hallo, Dim objBrow As Object Dim URL As String URL = "google" URL = URL + ".de" Set objBrow = CreateObject("InternetExplorer.Application") objBrow.navigate URL objBrow.Visible = True ist mein bisheriger code ^^ problem ist, dass der ie im hintergrund geöffnet ist. wie bekomme ich ihn denn in den vordergrund, also aktiv? denn nur dann funktioniert das mit sendkeys und wie komme ich wieder vom ie zurück zu excel? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 25. Feb. 2009 12:03 <-- editieren / zitieren --> Unities abgeben: Nur für thato
|
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 25. Feb. 2009 12:09 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 25. Feb. 2009 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für thato
|
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 25. Feb. 2009 13:59 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 25. Feb. 2009 14:48 <-- editieren / zitieren --> Unities abgeben: Nur für thato
|
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 01. Mrz. 2009 13:51 <-- editieren / zitieren --> Unities abgeben:
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 01. Mrz. 2009 14:21 <-- editieren / zitieren --> Unities abgeben: Nur für thato
Moin, schön wäre jetzt die Angabe: wie hast Du es jetzt gelöst? Vielleicht können Nachleser dann ebenfalls Deinen Weg beschreiten. Ich nutze übrigens gerne die WebAbfrage (Register Daten -> externe Daten abrufen -> Aus dem web ; Menüablauf für Excel <2007 hab ich grade nicht auswendig) und kopiere mir die Teile dann selber raus, scheidet hier aber bestimmt aus, da Du ja viele webseiten der Reihe nach durchgehen willst. Aber evtl. könntest Du auch das irgendwie in ein Makro würgen (Rekorder mitlaufen lassen und mal schauen)
Code: Sub Makro1() ' ' Makro1 Makro '' With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://ww3.cad.de/cgi-bin/ubb/mylastpostsnr.cgi", Destination:=Range( _ "$A$1")) .Name = "mylastpostsnr" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "2" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub
unbereingter Makro-Rekorder-Mitschnitt.------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info Excel -Suche RuA-Suche FAQ-ACAD Hilfe zu CAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 01. Mrz. 2009 14:39 <-- editieren / zitieren --> Unities abgeben:
|