Veranderen van de titel in een stukje XML

  • Onderwerp starter Onderwerp starter EddyK
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

EddyK

Gebruiker
Lid geworden
9 dec 2020
Berichten
23
Dag,

Mijn naam is Eddy en ben nieuw hier.
Ik wil mij gaan verdiepen in VBA via dit mooie forum en "learning while doing" :D

Ik wil in een stukje xml tekst <title></title> wijzigen in <title>een titel</title>

Ik heb daarvoor een invoerveld gemaakt:
paste.png
Hierin wordt de xml tekst gekopieerd.

Daarna wordt er een nieuw invoerveld geopend, waar ik de titel kan ingeven.
Als ik dan op de knop druk zou het nieuwe stukje xml, in het tekstveld moeten verschijnen.
Change title.png

Hoe pak ik dit aan?

Alvast bedankt.
Groeten, Eddy
 

Bijlagen

Dit in Userform2:
Code:
Private Sub CommandButton1_Click()
    TextBox2.Text = Replace(TextBox2.Text, "<title>", "<title>" & TextBox1.Text)
    Open ThisWorkbook.Path & "\" & TextBox1.Text & ".xml" For Output As #1
    Print #1, TextBox2.Text
    Close #1
    Unload Me
End Sub

Private Sub UserForm_Activate()
    TextBox2.Text = UserForm1.TextBox1.Text
End Sub

Er wordt een bestand gemaakt met de naam <title>.xml in dezelfde map als waar je Excel document staat.
Kan allemaal mooier maar dat is voor je eigen opzet.
Userform1 heb je dus eigenlijk niet nodig omdat je ook in Userform2 de tekst kan plakken.
 
Laatst bewerkt:
Beperk je tot 1 Userform met 1 tekstvak en een 'bewaar'-knop.
Je zou een listbox kunnen toevoegen met alle XML-veldnamen.

Code:
Private Sub CommandButton1_Click()
  Open "G:\OF\voorbeeld.xml" For Append As 1
    Print 1, "<title>" & TextBox1 & "</title>"
  Close
End Sub
 
Beide bedankt.

Eigenlijk hoef ik het niet op te slaan.
Ik wil de uitkomst alleen maar kopiëren en weer in de oorspronkelijke xml file plakken.

Code:
Private Sub CommandButton1_Click()
    TextBox2.Text = Replace(TextBox2.Text, "<title>", "<title>" & TextBox1.Text)
    ' Open ThisWorkbook.Path & "\" & TextBox1.Text & ".xml" For Output As #1
    ' Print #1, TextBox2.Text
    ' Close #1
    ' Unload Me
End Sub

Private Sub UserForm_Activate()
    TextBox2.Text = UserForm1.TextBox1.Text
End Sub

Dat lukt zo.

Groeten, Eddy
 
Nee, klopt.
Ik wil de uitkomst alleen maar kopiëren vanuit het tekstblok en weer copy/paste in de oorspronkelijke xml file plakken.
 
Nu wil ik een stapje verder gaan.
Graag weer jullie hulp.

Ik kopieer een stukje xml tekst in TextBox2.

Ik typ de titel in TextBox1.

Ik heb een CheckBox toegevoegd aan Userform2.
3.png

Als deze geselecteerd wordt, dan moet de tekst uit Sheets("Items"), cel C2, worden gekopieerd en geplakt worden in TextBox2, voor </procedure>

Druk op de knop CommandButton1 en de gewijzigde tekst komt weer in TextBox2 te staan.

Alvast bedankt,
Eddy
 
Geen idee wat het allemaal moet worden.

Code:
Private Sub CheckBox1_Click()
TextBox2.Text = Replace(TextBox2, "</procedure>", IIf(CheckBox1, Sheets("Sections").Cells(2, 3), "") & "</procedure>")
End Sub
 
Heb van alles geprobeerd, maar het lukt me niet :(

Ik kopieer het tekstbestand ik het venster.

De titel kan veranderd worden via de "Update XML" CommandButton1.

Nu wil ik graag deze string "<estTime></estTime>", uit het tekstbestand veranderd hebben in:
<estTime><time><timeFormat><minutes>10</minutes></timeFormat></time></estTime> via CommandButton3.
Waarbij 10 de waarde is uit TextBox3.

Alvast bedankt.
Gr. Eddy
 

Bijlagen

Code:
Private Sub CommandButton3_Click()

TextBox2.Text = Replace(TextBox2.Text, "<estTime>", "<estTime><time><timeFormat><minutes>" & TextBox3.Text & "</minutes></timeFormat></time>")
   
End Sub
 
Code:
Private Sub CheckBox1_Click()
TextBox2.Text = Replace(TextBox2, "</procedure>", IIf(CheckBox1, Sheets("Sections").Cells(2, 3), "") & "</procedure>")
End Sub

Hoe kan ik de code aanpassen, dat als je het vinkje weghaalt van de checkbox, de wijziging ongedaan wordt?

Groeten,
Eddy.
 
Als je nu eens uitlegt wat de bedoeling van het geheel is dan krijg je vast een betere oplossing dan dat je steeds deel stukje aan elkaar gaat knopen.
 
Ik wil graag een standaard stukje XML code (om procedures te schrijven) via de Userform aanpassen.

XML code:
Code:
<title></title>
<safetyHeader>
<humanSafetyRisk/>
<estTime></estTime>
<necPersons></necPersons>
<requiredSkills></requiredSkills>
<loto></loto>
<ppeList></ppeList>
<toolList></toolList>
<partList></partList>
<toolsOut></toolsOut>
<partsOut></partsOut>
<supDoc></supDoc>
<function>
<para></para>
</function>
</safetyHeader>
</procedure>

Sommige via een TextBox, om bv een tijd aan te geven van bv 10 minuten: (<estTime></estTime>)
Andere via een checkBox om complete secties in te voegen of om bv Tools toe te voegen.

Wat ik nu tegen kom is , dat als ik een checkbox selecteer, er iets toegevoegd wordt aan de xml code, maar als ik de checkbox nog een keer selecteer, dan wordt er nog een keer hetzelfde toegevoegd aan de xml code ipv het te verwijderen.
 
Checkbox?
Ik zie geen checkbox in Test3.xlsm.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan