lx99 Surft nur im ASB Geschrieben 3. Februar 2017 Indurus schrieb vor einer Stunde: Ich glaube es liegt an der Zeile sTxt = appIE.document.DocumentElement.outerhtml an diesem "outerhtml"! Ja, ich glaube .outertext wäre in dem Fall besser. Für mich ist das halt leider ein ziemlicher Blindflug, da ich nicht genau weiß, wie die Antwort von deinem Webservice genau aussieht. Bei dem Test-Webservice, das ich verwende, bekomme ich mit ".outertext" schon mal weniger Formatierungszeug mit, welches eindeutig identifizierbar ist (beginnt mit "@" und hört mit der letzten geschwungenen Klammer auf). Keine Ahnung, wie es bei dir aussieht, aber wenn man das ausschließt und den restlichen Inhalt als Textfile speichert, schauts bei mir schon ziemlich nach einer validen XML-Datei aus... Sub DownloadFile() Dim objIE As Object Dim strURL As String Dim strData As String Dim strTemp As String Dim intPos As Integer Dim strResponse As String Set objIE = CreateObject("InternetExplorer.Application") strURL = "http://www.thomas-bayer.com/sqlrest/" objIE.navigate strURL While objIE.readyState <> 4 DoEvents Wend strData = objIE.document.DocumentElement.outertext strResponse = "" strResponse = Left(strData, InStr(strData, "@") - 1) intPos = 0 While InStr(intPos + 1, strData, "}") <> 0 intPos = InStr(intPos + 1, strData, "}") Wend strTemp = Right(strData, Len(strData) - intPos) While Left(strTemp, 1) = " " strTemp = Right(strTemp, Len(strTemp) - 1) Wend strResponse = strResponse & strTemp Close #1 Open "C:\Users\.....\Desktop\TEST.xml" For Output As #1 Print #1, strResponse Close #1 Set objIE = Nothing End Sub 1 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Indurus Harry Wijnvoord Fußballgott Geschrieben 3. Februar 2017 lx99 schrieb vor 57 Minuten: Ja, ich glaube .outertext wäre in dem Fall besser. Für mich ist das halt leider ein ziemlicher Blindflug, da ich nicht genau weiß, wie die Antwort von deinem Webservice genau aussieht. Bei dem Test-Webservice, das ich verwende, bekomme ich mit ".outertext" schon mal weniger Formatierungszeug mit, welches eindeutig identifizierbar ist (beginnt mit "@" und hört mit der letzten geschwungenen Klammer auf). Keine Ahnung, wie es bei dir aussieht, aber wenn man das ausschließt und den restlichen Inhalt als Textfile speichert, schauts bei mir schon ziemlich nach einer validen XML-Datei aus... Sub DownloadFile() Dim objIE As Object Dim strURL As String Dim strData As String Dim strTemp As String Dim intPos As Integer Dim strResponse As String Set objIE = CreateObject("InternetExplorer.Application") strURL = "http://www.thomas-bayer.com/sqlrest/" objIE.navigate strURL While objIE.readyState <> 4 DoEvents Wend strData = objIE.document.DocumentElement.outertext strResponse = "" strResponse = Left(strData, InStr(strData, "@") - 1) intPos = 0 While InStr(intPos + 1, strData, "}") <> 0 intPos = InStr(intPos + 1, strData, "}") Wend strTemp = Right(strData, Len(strData) - intPos) While Left(strTemp, 1) = " " strTemp = Right(strTemp, Len(strTemp) - 1) Wend strResponse = strResponse & strTemp Close #1 Open "C:\Users\.....\Desktop\TEST.xml" For Output As #1 Print #1, strResponse Close #1 Set objIE = Nothing End Sub Sensationell! Das schaut jetzt schon richtig gut aus...Ich glaub ich bin fast dort wo ich hin will! Aber ein bissl dubios ist das ganze... Ich kann ja die Seite im Browser öffnen und mit Speichern Unter ablegen wie ich möchte. Hab das mal mit .txt probiert. Wenn ich sie also als textfile ablege schaut sie fast exakt gleich aus wie das was aus deinem Excel Makro rauskommt (habe in deinem code das TEST.xml durch TEST.txt ersetzt). Das stimmt mich sehr positiv! Wenn ich dann aber die im Editor geöffnete, händisch runtergeladene .txt Datei als .xml (im editor) abspeichere kann ich sie danach mit jedem beliebigen Brwoser korrekt darstellen. Mach ich das aber mit der .txt die dein Makro geladen hat (die bis auf ein paar zeilenumbrüche eigentlich exakt den selben inhalt hat wie das händisch geladene .txt) kann sie kein browser mehr lesen : Die XML-Seite kann nicht angezeigt werden Die XML-Eingabe kann nicht angezeigt werden, wenn Stylesheet XSL verwendet wird. Beheben Sie den Fehler und klicken Sie dann auf Aktualisieren oder wiederholen Sie den Vorgang später. Selbe Fehlermeldung kommt, wenn ich bei deinem Makro gleich auf TEST.xml stelle! Und zu Guter letzt kommt der fehler auch wenn ich die händisch geladene .txt Datei in eine neue Editor Datei reinkopiere und von dort dann als .xml abspeichere. Auch dann kann ers plötzlich nicht mehr lesen. 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
lx99 Surft nur im ASB Geschrieben 3. Februar 2017 Indurus schrieb vor 3 Minuten: Selbe Fehlermeldung kommt, wenn ich bei deinem Makro gleich auf TEST.xml stelle! Und zu Guter letzt kommt der fehler auch wenn ich die händisch geladene .txt Datei in eine neue Editor Datei reinkopiere und von dort dann als .xml abspeichere. Auch dann kann ers plötzlich nicht mehr lesen. Das ist seltsam...habs bei mir mit Chrome, Firefox und Edge erfolgreich öffnen können. Wenn du magst/darfst, kannst mir ja mal die beiden Files per PN schicken und ich seh mir dann an, wo genau das Problem liegt. 1 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Indurus Harry Wijnvoord Fußballgott Geschrieben 3. Februar 2017 lx99 schrieb vor 21 Minuten: Das ist seltsam...habs bei mir mit Chrome, Firefox und Edge erfolgreich öffnen können. Wenn du magst/darfst, kannst mir ja mal die beiden Files per PN schicken und ich seh mir dann an, wo genau das Problem liegt. Ich habe jetzt die beiden Textdateien verglichen: Sie schauen eigentlich gleich aus, allerdings wenn ich beide zB ins Word kopiere fällt sofort auf, dass in der Makro-Erzeugten Datei lauter Zeilenumbrüche zwischen den Statements sind, in der händisch runtergeladenen txt datei nicht (das sieht man im Editor gar nicht, aber wenn man den String in Word oder Excel kopiert, schaut das anders aus) Das scheint der Grund zu sein. Wenn ich die händisch rausnehme funktionierts! Was auch kleine probleme macht: Es kommt ein "&" Symbol vor. Im händisch runtergeladenen Textfile steht dort wo vorher das "&" stand nun ein "&". bei der Makrogeladenene Textdatei steht das "&" das ihm offensichtlich auch probleme bereitet! Ich will dich jetzt nicht länger quälen, wenn du dich da auch erst reintigern müsstest, scahde um die Zeit. Aber falls du eine spontane Idee hättest, was die Zeilenumbrüche und Sonderzeichen angeht, wär das natürlich super! 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
lx99 Surft nur im ASB Geschrieben 3. Februar 2017 (bearbeitet) @Indurus OK...wahrscheinlich hast du irgendein Problem mit dem Windows-Zeilenumbruch. Ich habs jetzt um eine HTML-Konvertierung erweitert und lösche die CR+LF (Chr(13)) raus. Auf ein Neues tät ich sagen Sub DownloadFile() Dim objIE As Object Dim strURL As String Dim strData As String Dim strTemp As String Dim intPos As Integer Dim strResponse As String Set objIE = CreateObject("InternetExplorer.Application") strURL = "http://www.thomas-bayer.com/sqlrest/" objIE.navigate strURL While objIE.readyState <> 4 DoEvents Wend strData = objIE.document.DocumentElement.outertext strResponse = "" strResponse = Left(strData, InStr(strData, "@") - 1) intPos = 0 While InStr(intPos + 1, strData, "}") <> 0 intPos = InStr(intPos + 1, strData, "}") Wend strTemp = Right(strData, Len(strData) - intPos) While Left(strTemp, 1) = " " strTemp = Right(strTemp, Len(strTemp) - 1) Wend strResponse = Replace(ConvHTML(strResponse & strTemp), Chr(13), "") Close #1 Open "C:\Users\.....\Desktop\TEST.xml" For Output As #1 Print #1, strResponse Close #1 Set objIE = Nothing End Sub Public Function ConvHTML(strInput) Dim i As Integer Dim strTemp As String Dim strChar As String ConvHTML = Null If Not IsNull(strInput) Then strTemp = "" For i = 1 To Len(strInput) strChar = Mid(strInput, i, 1) Select Case strChar Case "ä" strTemp = strTemp & "ä" Case "Ä" strTemp = strTemp & "Ä" Case "ö" strTemp = strTemp & "ö" Case "Ö" strTemp = strTemp & "Ö" Case "ü" strTemp = strTemp & "ü" Case "Ü" strTemp = strTemp & "Ü" Case "ß" strTemp = strTemp & "ß" Case "&" strTemp = strTemp & "&" Case Else strTemp = strTemp & strChar End Select Next i ConvHTML = strTemp End If End Function bearbeitet 3. Februar 2017 von lx99 1 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Indurus Harry Wijnvoord Fußballgott Geschrieben 3. Februar 2017 Du bist wirklich ein Hammer, @lx99! Jetzt liefert dein Code eine .xml Datei mit Text drinnen, der genau dem aus dem händisch runtergeladenen .xml gleicht. Allerdings ist dieses .xml aus dem Makro immer noch nicht ausführbar. Es wird erst ausführbar wenn ich es im editor öffne, den Text 1:1 (wirklich ohne Änderungen) kopiere und ins händisch runtergeladene .xml (im editor geöffnet und 1:1 durch den Text den das Makro ausgibt ersetzt) kopiere...Keine Ahnung wieso. 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
lx99 Surft nur im ASB Geschrieben 3. Februar 2017 Indurus schrieb vor 1 Stunde: Du bist wirklich ein Hammer, @lx99Allerdings ist dieses .xml aus dem Makro immer noch nicht ausführbar. Es wird erst ausführbar wenn ich es im editor öffne, den Text 1:1 (wirklich ohne Änderungen) kopiere und ins händisch runtergeladene .xml (im editor geöffnet und 1:1 durch den Text den das Makro ausgibt ersetzt) kopiere...Keine Ahnung wieso. Danke für die Blumen, aber zufrieden sind wir erst, wenn alles funktioniert, oder? Ich gehe stark davon aus, dass es an der Codierung liegt. Möglicherweise benötigst du bei der Weiterverarbeitung ein File im Format UTF-8 und das Makro erstellt nur ein ANSI File. Wenn du mir die beiden Files (anonymisiert bzw. kannst du auch irgendwas rein schreiben) schickst, kann ich mir das ansehen. Wenn du es selbst versuchen möchtest, kann ich dafür Notepad++ empfehlen, da siehst du die Codierung und auch den Zeilenumbruch des Textfiles. 1 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Indurus Harry Wijnvoord Fußballgott Geschrieben 5. Februar 2017 Danke für die Blumen, aber zufrieden sind wir erst, wenn alles funktioniert, oder? [emoji4] Ich gehe stark davon aus, dass es an der Codierung liegt. Möglicherweise benötigst du bei der Weiterverarbeitung ein File im Format UTF-8 und das Makro erstellt nur ein ANSI File. Wenn du mir die beiden Files (anonymisiert bzw. kannst du auch irgendwas rein schreiben) schickst, kann ich mir das ansehen. Wenn du es selbst versuchen möchtest, kann ich dafür Notepad++ empfehlen, da siehst du die Codierung und auch den Zeilenumbruch des Textfiles.Das mit UTF-8 klingt gut, das kommt gleich in der Titelzeile des runtergeladenen .xml Files vor (sowohl in der händisch als auch mit deinem Makro geladenen Datei). Könnte man dagegen was tun? Sobald ich wieder am PC bin schicke ich dir die beiden Files mal per PN! 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Indurus Harry Wijnvoord Fußballgott Geschrieben 7. Februar 2017 @lx99 UTF-8 war das Problem! Hab mir ein paar Zeilen ergoogelt, die mir die Codierung hinbiegen, jetzt klappts! Danke dir vielmals für die umfangreiche Unterstützung, das Ganze in Ferndiagnose zu lösen ohne jemals auch nur einen einzigen Schnipsel davon in Händen gehalten zu haben ist echt sensationell! 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
lx99 Surft nur im ASB Geschrieben 7. Februar 2017 Indurus schrieb vor einer Stunde: jetzt klappts! Super, das freut mich! 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
ufo05 Mir is ois... Geschrieben 15. März 2017 (bearbeitet) Hat jemand eine Idee, wie ich folgendes lösen könnte: Ich möchte die Daten so zusammenfassen, dass immer wenn in der 4. Spalte der Wert von a auf b wechselt das erste Datum und das letzte Datum angezeigt wird. Die Daten sollen also so zusammen gefasst werden: bearbeitet 15. März 2017 von ufo05 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
ufo05 Mir is ois... Geschrieben 16. März 2017 ufo05 schrieb vor 23 Stunden: Hat jemand eine Idee, wie ich folgendes lösen könnte: Ich möchte die Daten so zusammenfassen, dass immer wenn in der 4. Spalte der Wert von a auf b wechselt das erste Datum und das letzte Datum angezeigt wird. Unsichtbaren Inhalt anzeigen Die Daten sollen also so zusammen gefasst werden: Unsichtbaren Inhalt anzeigen Keiner eine Idee? 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
lx99 Surft nur im ASB Geschrieben 16. März 2017 Versuchs mal damit: Sub Main() Dim x As Integer Dim intLn As Integer Dim varStart As Variant intLn = ActiveSheet.UsedRange.Rows.Count + 2 x = 1 varStart = Range("E" & x).Value While Range("D" & x).Value <> "" If varStart = "" Then varStart = Range("E" & x).Value End If If Range("D" & x + 1).Value <> Range("D" & x).Value Then 'Wenn sich Wert ändert Range("A" & intLn).Value = Range("A" & x).Value Range("B" & intLn).Value = Range("B" & x).Value Range("C" & intLn).Value = Range("C" & x).Value Range("D" & intLn).Value = Range("D" & x).Value Range("E" & intLn).Value = varStart Range("F" & intLn).Value = Range("F" & x).Value intLn = intLn + 1 varStart = "" End If x = x + 1 Wend End Sub Dieses Makro schreibt die Zusammenfassung zwei Zeilen unterhalb der bestehenden Tabelle. Voraussetzung ist, dass in den Daten keine Leerzeilen bzw. eigentlich keine leeren Zellen in Spalte D vorkommen. 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
ufo05 Mir is ois... Geschrieben 17. März 2017 (bearbeitet) lx99 schrieb vor 22 Stunden: Versuchs mal damit: Sub Main() Dim x As Integer Dim intLn As Integer Dim varStart As Variant intLn = ActiveSheet.UsedRange.Rows.Count + 2 x = 1 varStart = Range("E" & x).Value While Range("D" & x).Value <> "" If varStart = "" Then varStart = Range("E" & x).Value End If If Range("D" & x + 1).Value <> Range("D" & x).Value Then 'Wenn sich Wert ändert Range("A" & intLn).Value = Range("A" & x).Value Range("B" & intLn).Value = Range("B" & x).Value Range("C" & intLn).Value = Range("C" & x).Value Range("D" & intLn).Value = Range("D" & x).Value Range("E" & intLn).Value = varStart Range("F" & intLn).Value = Range("F" & x).Value intLn = intLn + 1 varStart = "" End If x = x + 1 Wend End Sub Dieses Makro schreibt die Zusammenfassung zwei Zeilen unterhalb der bestehenden Tabelle. Voraussetzung ist, dass in den Daten keine Leerzeilen bzw. eigentlich keine leeren Zellen in Spalte D vorkommen. Danke für deine Lösung! Ich hab mich gestern dann auch noch daran gemacht es anders (vmtl. umständlicher ) gelöst @lx99 andere Frage hätte ich noch: Gibts eine Möglichkeit das Makro zu exportieren (wie man an und für sich exportiert weiß ich )und wenn ich wiedermal ein Excel mit dem selben Aufbau habe, dieses Excel zu öffnen und dann das Makro einfach zu starten, ohne, dass ich in die Entwicklertools rein muss? Quasi, dass jemand anders, der wirklich 0 Ahnung hat es einfach "starten" kann? Edit: Denke ich habs, indem man das Makro aufzeichnet und danach in der persönlichen Arbeitsmappe abspeichert bearbeitet 17. März 2017 von ufo05 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Splinta hold your colour Geschrieben 27. April 2017 (bearbeitet) Ich möchte gerne folgendes Problem mit einer Formel lösen, ich denk ihr könnt mir damit helfen. Tabelle sieht so aus A 1 A 2 A 3 B 4 B 2 B 4 C 2 C 3 C 5 C 1 C 2 Also ich hab in Spalte A mehrere gleich Werte und auch in Spalte B. In einer anderen Tabelle habe ich nun A B C stehen und möchte mir in der zweiten Spalten den NIEDRIGSTEN Wert aus der anderen Tabelle holen. (mit SVERWEIS geht das leider net, auch mim Index bring ichs net zam). Bei A wär das dann 1, bei B 2 und bei C wieder 1. Mit SVERWEIS nimmt er natürlich immer nur den ersten Wert den er findet, der aber nicht immer der niedrigste is. Mit Index und Vergleich komm ich auch net zum gewünschten Ergebnis..nehm an ich brauch eine Matrixformel. E: Beide Tabellen werden immer wieder umsortiert und gefiltert Bitte um Hilfe. bearbeitet 27. April 2017 von Splinta 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.