BDN Postinho Beitrag melden Geschrieben 26. Januar 2017 (bearbeitet) edit: hinfällig bearbeitet 26. Januar 2017 von BigDiggerNick 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Leper Messiah TR "gefolgte Inhalte" =/= korrektes Deutsch Beitrag melden Geschrieben 30. Januar 2017 (bearbeitet) ich möchte ein makro in excel, mit dem teile einer zelle, getrennt durch leerzeichen, in separate zellen kopiert werden sollen also "vorname nachname" -> vorname nachname sollte eigentlich nicht schwer sein, aber ich kenne mich mit vba gar nicht aus bearbeitet 30. Januar 2017 von Leper Messiah TR 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
wiked Sehr bekannt im ASB Beitrag melden Geschrieben 30. Januar 2017 Leper Messiah TR schrieb vor 1 Stunde: ich möchte ein makro in excel, mit dem teile einer zelle, getrennt durch leerzeichen, in separate zellen kopiert werden sollen also "vorname nachname" -> vorname nachname sollte eigentlich nicht schwer sein, aber ich kenne mich mit vba gar nicht aus Dafür brauchst du aber kein Makro. Spalten makieren, in denen "Vorname Nachname" enthalten ist. Danach auf "Daten" -> Text in Spalten. "Getrennt" passt -> "weiter >" -> Hakerl bei "Leerzeichen" -> Fertig stellen 1 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Leper Messiah TR "gefolgte Inhalte" =/= korrektes Deutsch Beitrag melden Geschrieben 31. Januar 2017 (bearbeitet) danke, das hilft schon mal weiter. jetzt habe ich aber folgendes fundamentales problem: ich muß einen aus einem pdf erstellten datensatz aus der erhaltenen "wurst" wieder in eine zeile bringen, und daraus eine gesamtliste. jetzt sind aber die einzelnen datensätze unterschiedlich lang (einige haben halt kategorien wie "kinder", die dann zu mehr einträgen führen). mir ist noch nicht klar, wie ich das angehen soll. eigentlich nicht einmal, ob das überhaupt möglich ist also z.b. Hahn, Hubert, 26, Arbeiter, Markus, 11, 3 Maier, Markus, 31, Angestellter, 4 also anders gesagt, nicht jeder datensatz enthält alle kategorien, es gibt aber auch keine leerfelder, also stimmen die positionen der einzelnen einträge nicht von datensatz zu datensatz überein und das alles soll in einem one-click-makro geschehen -) zweite frage: wie verwendet man activecell richtig? ich habe es schon geschafft, zellinhalte von einem dokument in ein anderes zu kopieren. jetzt möchte ich aber an meine cursorposition kopieren (und dann eine zeile nach unten rücken, nächstes dokument aufmachen, und so weiter, bis alle datensätze in einer tabelle stehen ) bearbeitet 31. Januar 2017 von Leper Messiah TR 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
grufi Posting-Maschine Beitrag melden Geschrieben 31. Januar 2017 das geht sofern alles durch ein bestimmtes Zeichen getrennt ist also wie bei einem CSV zb Datensatz1, Datensatz2, Datensatz3, usw... wenns Datensatz2 nicht gibt sollte es trotzdem getrennt sein Datensatz1, , Datensatz3 wenn du solche Quelldaten hast gehts sicher sonst wüsst ich nicht wie 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Leper Messiah TR "gefolgte Inhalte" =/= korrektes Deutsch Beitrag melden Geschrieben 31. Januar 2017 ja trennung hin oder her, das wahre problem ist, wie ich die daten in der ausgabetabelle an die richtige position bringe. einfach von links nach rechts anorden ist eben nicht ausreichend, wenn unterschiedlich viele daten pro datensatz sind. aber ich habe gerade bemerkt, dass einige bezeichnungen (z.b. mitversicherter) fett geschrieben sind - das könnte der rettungsanker sein! theoretisch kann ich mir die sache mittlerweile zu 75% vorstellen, aber ich habe eben keine ahnung von vba! und das alles, weil uns die personalabteilung den zugang zur auswertungssoftware für die daten, die wir ohnehin haben, nicht geben will 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
lx99 Surft nur im ASB Beitrag melden Geschrieben 31. Januar 2017 (bearbeitet) Leper Messiah TR schrieb vor 1 Stunde: -) zweite frage: wie verwendet man activecell richtig? ich habe es schon geschafft, zellinhalte von einem dokument in ein anderes zu kopieren. jetzt möchte ich aber an meine cursorposition kopieren (und dann eine zeile nach unten rücken, nächstes dokument aufmachen, und so weiter, bis alle datensätze in einer tabelle stehen ) Grundsätzlich: Activecell ist bei deinem Vorhaben wohl der falsche Ansatz, weil du davor immer (mit der Maus) die gewünschte Zielzelle auswählen müsstest. Besser gehts mit "cells(x, y).insert". Damit kannst du einen vorher mittels "cells(x, y).copy" kopierten Wert in eine andere Zelle schreiben. Wenn du von einem Tabellenblatt in ein anderes kopieren möchtest, müssen die Befehle dementsprechend abgewandelt werden: "activeworkbook.sheets(z).cells(x, y).copy" bzw. "....insert". Wenn auch das Dokument berücksichtigt werden soll, mittels "workbooks(i).sheets(z).cells(x, y).copy". Für dein eigentliches Vorhaben sehe ich leider schwarz, wenn du so gar keine Möglichkeiten zur Unterscheidung der einzelnen Datenfelder haben solltest. Leper Messiah TR schrieb vor einer Stunde: aber ich habe gerade bemerkt, dass einige bezeichnungen (z.b. mitversicherter) fett geschrieben sind Versteh ich das richtig? Du hast also doch die Feldnamen dabei oder wie? bearbeitet 31. Januar 2017 von lx99 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Leper Messiah TR "gefolgte Inhalte" =/= korrektes Deutsch Beitrag melden Geschrieben 31. Januar 2017 (bearbeitet) lx99 schrieb vor einer Stunde: Grundsätzlich: Activecell ist bei deinem Vorhaben wohl der falsche Ansatz, weil du davor immer (mit der Maus) die gewünschte Zielzelle auswählen müsstest. Besser gehts mit "cells(x, y).insert". Damit kannst du einen vorher mittels "cells(x, y).copy" kopierten Wert in eine andere Zelle schreiben. Wenn du von einem Tabellenblatt in ein anderes kopieren möchtest, müssen die Befehle dementsprechend abgewandelt werden: "activeworkbook.sheets(z).cells(x, y).copy" bzw. "....insert". Wenn auch das Dokument berücksichtigt werden soll, mittels "workbooks(i).sheets(z).cells(x, y).copy". Für dein eigentliches Vorhaben sehe ich leider schwarz, wenn du so gar keine Möglichkeiten zur Unterscheidung der einzelnen Datenfelder haben solltest. Versteh ich das richtig? Du hast also doch die Feldnamen dabei oder wie? wenn bestimmtes zeichen gefunden (eine beliebige zahl wird man hoffentlich auch suchen können) -> springe zu nächstem block (fixer dienstnehmerstamm ist ein block, variabler der nächste etc.) und kopiere dort die daten bis zum nächsten fettgedruckten wort hin, oder so in der art. und wenn ich z.b. 10 kinder oder 10 punkte die anstellung betreffend als maximum annehme, dann kopiert er mir bis zu 10 kinder hin, und der darauffolgende punkt (eben nach dem nächsten fetten wort oder anderem trigger) wird trotzdem an den richtigen ort kopiert. ist doch theoretisch denkbar, oder? die feldnamen stehen halt mitten in der wurst. manche sachen stehen auch in spalte B, C etc. bearbeitet 31. Januar 2017 von Leper Messiah TR 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Indurus Harry Wijnvoord Fußballgott Beitrag melden Geschrieben 1. Februar 2017 Ich habe einen Weblink, wenn ich diesen in einen Browser eingebe kommt ein .xml zurück. Es liegt dort glaub ich nicht direkt ein .xml File, (der Link endet nämlich nicht auf .xml) sondern ich glaube der Link stößt ein Webservice an, das dann dieses .xml zurückgibt. Kann ich dieses .xml per Makro irgendwie automatisch runterladen und irgendwo lokal ablegen? (wenn ichs händisch mache öffnet sich der xml code im Browser und ich kanns per Speichern Unter dann irgendwo abspeichern. Das würd ich aber gerne automatisiert erledigen, da ich 1000e solcher Abrufe durchführen muss) 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
lx99 Surft nur im ASB Beitrag melden Geschrieben 1. Februar 2017 Leper Messiah TR schrieb am 31.1.2017 um 11:49 : wenn bestimmtes zeichen gefunden (eine beliebige zahl wird man hoffentlich auch suchen können) -> springe zu nächstem block (fixer dienstnehmerstamm ist ein block, variabler der nächste etc.) und kopiere dort die daten bis zum nächsten fettgedruckten wort hin, oder so in der art. und wenn ich z.b. 10 kinder oder 10 punkte die anstellung betreffend als maximum annehme, dann kopiert er mir bis zu 10 kinder hin, und der darauffolgende punkt (eben nach dem nächsten fetten wort oder anderem trigger) wird trotzdem an den richtigen ort kopiert. ist doch theoretisch denkbar, oder? die feldnamen stehen halt mitten in der wurst. manche sachen stehen auch in spalte B, C etc. Mal von vorne: in welcher Form liegen die auszuwertenden Daten vor? Plain Text? Textstreams lassen sich in Excel eigentlich gut zeilenweise einlesen und analysieren. Natürlich kann man auch nach bestimmen Ausdrücken suchen und abhängig davon verschiedenste Dinge unternehmen. Aus deiner Beschreibung werd ich halt nicht wirklich schlau - wahrscheinlich auch deswegen, weil du nur einen kleinen Auszug der Daten gepostet hast. Eine Automatisierung kannst du nur dann erreichen, wenn du alle anzunehmenden Zustände logisch abbilden kannst. Das fett markierte macht es halt schwieriger...stehen die Sachen dann in jedem File z.B. in den Spalten B und C? Indurus schrieb vor 5 Stunden: Ich habe einen Weblink, wenn ich diesen in einen Browser eingebe kommt ein .xml zurück. Es liegt dort glaub ich nicht direkt ein .xml File, (der Link endet nämlich nicht auf .xml) sondern ich glaube der Link stößt ein Webservice an, das dann dieses .xml zurückgibt. Kann ich dieses .xml per Makro irgendwie automatisch runterladen und irgendwo lokal ablegen? (wenn ichs händisch mache öffnet sich der xml code im Browser und ich kanns per Speichern Unter dann irgendwo abspeichern. Das würd ich aber gerne automatisiert erledigen, da ich 1000e solcher Abrufe durchführen muss) Hört sich nach einem SOAP Webservice an...lässt sich prinzipiell ganz gut verarbeiten...hätte da schon was fertig, das man vielleicht nur adaptieren müsste. 1 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Indurus Harry Wijnvoord Fußballgott Beitrag melden Geschrieben 2. Februar 2017 lx99 schrieb vor 19 Stunden: Mal von vorne: in welcher Form liegen die auszuwertenden Daten vor? Plain Text? Textstreams lassen sich in Excel eigentlich gut zeilenweise einlesen und analysieren. Natürlich kann man auch nach bestimmen Ausdrücken suchen und abhängig davon verschiedenste Dinge unternehmen. Aus deiner Beschreibung werd ich halt nicht wirklich schlau - wahrscheinlich auch deswegen, weil du nur einen kleinen Auszug der Daten gepostet hast. Eine Automatisierung kannst du nur dann erreichen, wenn du alle anzunehmenden Zustände logisch abbilden kannst. Das fett markierte macht es halt schwieriger...stehen die Sachen dann in jedem File z.B. in den Spalten B und C? Hört sich nach einem SOAP Webservice an...lässt sich prinzipiell ganz gut verarbeiten...hätte da schon was fertig, das man vielleicht nur adaptieren müsste. Das klingt schonmmal fein! Kannst du mir Fragmente bzw. eine Richtung in die das gehen sollte zukommenlassen bzw. empfehlen? Rudimentäre VBA Kenntnisse hätte ich! 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
lx99 Surft nur im ASB Beitrag melden Geschrieben 2. Februar 2017 (bearbeitet) Indurus schrieb vor einer Stunde: Das klingt schonmmal fein! Kannst du mir Fragmente bzw. eine Richtung in die das gehen sollte zukommenlassen bzw. empfehlen? Rudimentäre VBA Kenntnisse hätte ich! Erstens mal sorry, ich glaub ich hab gestern ein wenig zu vorschnell geantwortet. Wenn du einfach nur die URL aufrufst und ein XML zurückbekommst, handelt es sich um REST und nicht um SOAP...das sollte das Ganze ein bissl vereinfachen. Versuch das bitte mal: Sub REST_Get() Dim strUrl As String Dim xmlHTTP As MSXML2.XMLHTTP60 Dim xmlDOC As MSXML2.DOMDocument60 Dim xmlStream As Object Dim strFolder As String Dim strXMLFileName As String Set xmlHTTP = New MSXML2.XMLHTTP60 Set xmlDOC = New MSXML2.DOMDocument60 strFolder = "C:\Users\.....\Desktop\" strXMLFileName = "TEST" strUrl = "http://www.thomas-bayer.com/sqlrest/" With xmlHTTP .Open "GET", strUrl, False .send xmlDOC.LoadXML .responseText Set xmlStream = CreateObject("ADODB.Stream") xmlStream.Type = 2 'Stream Type ... text/string xmlStream.Charset = "utf-8" 'charset xmlStream.Open 'Stream öffnen xmlStream.writetext xmlDOC.XML xmlStream.SaveToFile strFolder & strXMLFileName & ".xml", 2 End With End Sub Edit: @Indurus jetzt mit funktionierendem Code bearbeitet 2. Februar 2017 von lx99 Funktionierenden Code eingefügt 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Indurus Harry Wijnvoord Fußballgott Beitrag melden Geschrieben 3. Februar 2017 @lx99 Danke dir viel mals! Funktioniert sehr gut, aber für mich leider nur eingeschränkt und ich glaube auch ich weiß woran es liegt. Mit folgendem Code (aus dem Web) kann ich das Ding das ich als .xml brauche als html speichern: Zitat Dim sURL As String Dim appIE As Object Dim sTxt As String sURL = "www.meineseite-blabla..." Set appIE = CreateObject("InternetExplorer.Application") appIE.navigate sURL Do: Loop Until appIE.Busy = False Do: Loop Until appIE.Busy = False sTxt = appIE.document.DocumentElement.outerhtml Set appIE = Nothing Close Open ThisWorkbook.Path & "\test.html" For Output As #1 Print #1, sTxt Close MsgBox "Der Text wurde gespeichert unter:" & vbLf & _ ThisWorkbook.Path & "\test.html" Ich glaube der Unterschied zu deiner Version (die perfekt funktioniert aber in meinem speziellen Fall leider eine leere Seite zurück gibt) ist dass das in obigem Code als InternetExplorer Instanz (kenn mich da leider viel zu wenig aus) passiert und deshalb klappt, weil ich mich für den Dienst den ich abrufe vorher authentifizieren muss und ein Cookie abgespeichert wird, mit dem ich dann erst berechtigt bin. Jetzt wieder die Frage an dich als Experten: Kann ich diesen Code, der mir ein html abspeichert in dem genau der .xml Code drinnen steht den ich brauche, so abändern, dass da gleich das xml rauskommt? Ich glaube nämlich ich muss das über diese CreateObject("InternetExplorer.Application")-Schiene spielen, da das sonst mit der Authentifizierung nicht klappt. 0 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
lx99 Surft nur im ASB Beitrag melden Geschrieben 3. Februar 2017 Wenn dieser Code funktioniert, sollte es eigentlich reichen, wenn du Indurus schrieb vor 8 Minuten: Open ThisWorkbook.Path & "\test.html" For Output As #1 auf Open ThisWorkbook.Path & "\test.xml" For Output As #1 abänderst. Der Code macht nichts anderes, als den Seiteninhalt in ein Textfile zu schreiben (in deinem Beispiel halt mit der Dateiendung .html). Noch eine Ergänzung: du kannst auch noch versuchen, die Anmeldeinformationen in meinem Code mitzugeben: .Open "GET", strUrl, False, strUsr, strPw 1 Zitieren Diesen Beitrag teilen Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Indurus Harry Wijnvoord Fußballgott Beitrag melden Geschrieben 3. Februar 2017 (bearbeitet) lx99 schrieb vor einer Stunde: Wenn dieser Code funktioniert, sollte es eigentlich reichen, wenn du auf Open ThisWorkbook.Path & "\test.xml" For Output As #1 abänderst. Der Code macht nichts anderes, als den Seiteninhalt in ein Textfile zu schreiben (in deinem Beispiel halt mit der Dateiendung .html). Ich habs jetzt mal mit .txt, .html und .xml probiert. Wenn ich eine .txt datei erzeuge, dann steht da nicht nur der .xml code drinnen (also das was im Browser dargestellt wird), sondern der gesamte HTML-Code dieser Seite, also sämtliche Information über farbliche Darstellung usw., deshalb klappts glaube ich auch nicht, wenn ich die datei als .xml speichere, weil dann zwar die xml endung passt, aber im xml file halt kein gültiger xml code drinnen steht. Der einzige weg wie ich das bekomme, was ich brauche ist, wenn ich den Link händisch im Internet-Exporer eingebe, dann wird das .xml im Browser korrekt angezeigt wie gewünscht. Wenn ich dann auf Datei->Speichern Unter klicke schlägt er gleich .xml vor, ich kanns abspeichern und hab dann eine funktionierende .xml. Und diesen Vorgang "Link in Browser eingeben, Speichern Unter klicken und speichern" würde ich gerne das Makro machen lassen, weil ich das täglich 1000e male tun müsste. Deinem Code den User und das Passwort mitzuschicken bringt glaub ich nichts, weil die authentifizierung zusätzlich zum user und pw über ein cookie im IE gesteuert wird. Deshalb klappt auch die Variante mit dem CreateObject("InternetExplorer.Application") bis auf das, dass ich da den html code der seite als text erhalte und nicht den text, der für den menschen auf der Seite wenn er sie abruft sichtbar ist! Ich glaube es liegt an der Zeile sTxt = appIE.document.DocumentElement.outerhtml an diesem "outerhtml"! bearbeitet 3. Februar 2017 von Indurus 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.