ich habe zwar schon etwas mit Excel VBA programmiert, bin aber noch lang kein Profi, also bräuchte ich einmal eure Hilfe. Ich arbeite mit der Kollaborationssoftware Confluence, welche über einen Internet Browser (IE) bedienbar ist. Unter anderem können dort Seiten erstellt werden und die sind dann über eine URL aufrufbar.
Mein Anliegen:
Diese Seiten möchte ich automatisiert mit Excel erstellen und teilweise klappt das auch und zwar mit dem unten angegebenen Code. D.h. ich rufe eine Seite (im Bearbeitungsmodus) mittels navigate auf, trage den Titel über die getelementbyid - methode in die Titelzeile ein und speicher die Seite ebenfalls mit derselben Methode ab.
Frage:
Hiermit ist es leider noch nicht geschafft. Ich möchte der Tabelle und dem Panel (Bild1) ebenfalls Text zuweisen, weiß aber nicht wie ich diese Elemente ansprechen soll. Ich könnte mir so etwas vorstellen wie:
IEDocument.getElementsByClass("ConfluenceTd")(0).Value = "Hallo"
' der html-Code ist in Bild2 dargestellt
oder etwas ähnliches mit getElementsByTagName.
Aber bisher schlugen alle Versuche fehl.
Also wie kann ich das Problem am besten lösen?
Bild 1: Seitenansicht im Confluence mit Tabelle und Panel
Bild 2: html-code
Hier der Code:
Option Explicit
Public IEApp, IEDocument As Object, Nummer As String, Titel As String
Public Sub create_new_site()
Nummer = Range("B2").Value
Titel = Range("B3").Value
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = True
IEApp.navigate "https://pgentwicklung.atlassian.net/wiki/pages/copypage.action? _
idOfPageToCopy=360463&spaceKey=EN"
Call SeitenaufbauAbwarten
IEDocument.getElementById("content-title").Value = Nummer & Titel
IEDocument.getElementById("rte-button-publish").Click
Call SeitenaufbauAbwarten
End Sub
Public Sub SeitenaufbauAbwarten()
Do: Loop Until IEApp.busy = False
Do: Loop Until IEApp.busy = False
Set IEDocument = IEApp.document
Do: Loop Until IEDocument.ReadyState 4
End Sub
Vielen Dank und liebe Grüße
Paddy