Hulp gevraagd om te "replacen"

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

EddyK

Gebruiker
Lid geworden
9 dec 2020
Berichten
23
Hopelijk kan iemand mij op weg helpen.

Onderstaande XML tekst staat in Excel. Zie bijlage.
Nu wil ik met een bv CheckBox, de onderdelen vervangen vanuit WorkSheet "ONDERDEEL".

Bijkomend probleem, is dat 1 onderdeel op twee rows staan.

<toolItem qty="1" twelve-nc="1234.123"><description>DIT IS
EEN ONDERDEEL
</description></toolItem>
<toolItem destinationList="Service" expertLevel="" qty="1"
twelve-nc="1234.321"><description>TWEEDE DEEL</description>
</toolItem>

Alvast bedankt,
Eddy
 

Bijlagen

Is dit je complet XmL?
 
Laatst bewerkt:
Nee, een gedeelte.
Maar dit is wel het belangrijkste deel.

Gr.
Eddy
 
Laat eens je gehele xml zien en heb je office 365?
 
Laatst bewerkt:
Hier alvast een optie met Regular expression. Zie bestand voor verduidelijking en gebruik.

Code:
Function jec(rng As Range, i As Long, j As Long) As String
 Dim RXpath As Variant, ar As String
 ar = Join(Application.Transpose(Sheets(1).Range(rng.Address)))
 RXpath = Array("\d+(\.\d+)", "<description>.*?</description>")
 
 With CreateObject("vbscript.regexp")
   .Global = True
   .Pattern = RXpath(i - 1)
   jec = Replace(Replace(.Execute(ar)(j - 1), "/", ""), "<description>", "")
 End With
End Function
 

Bijlagen

Laatst bewerkt:
Eerst wil ik maar eens proberen om een oud deel (alleen het onderdeelnummer) te vervangen voor een nieuw deel
NC = oud deel
NEWNC = nieuw deel.

<toolItem qty="1" twelve-nc="1234.123"><description>DIT IS
EEN ONDERDEEL</description></toolItem>
<toolItem destinationList="Service" expertLevel="" qty="1"
twelve-nc="1234.321"><description>TWEEDE DEEL</description>
</toolItem>

Wat zou de Replace code moeten zijn?

Code:
Function searchreplaceNC(NC, NEWNC)

i = 0
Do While i < ArrayLen(procinput)

    If InStr(procoutput(i), NC) <> 0 Then
            
        ' MsgBox "replace: " & NC & " with " & NEWNC--> De code vindt de 3 NC's en NEWNC's
        
        [COLOR="#FF0000"]'Wat zou de code moeten zijn om NC te vervangen voor NEWNC?[/COLOR]
        
         Exit Do
    End If

         i = i + 1
    Loop
End Function

Gr.
Eddy
 
Uit je vraag valt af te leiden dat je geen flauw benul van VBA hebt (NC <> "NC"); het niet plaatsen van het volledige XML-bestand illustreert dat ook.
Dit lijkt me voor jou dan ook geen begaanbaar pad.
Schakel een deskundige in.

Voor JVeer:
Code:
Sub M_snb()
   c00="G:\OF\voorbeeld.xml"

   with createobject("scripting.filesystemobject")
      .createtextfile(c00).write replace(.opentextfile(c00).readall,"NC","NEWNC")
   end with
End sub
 
Die vervanging is simpel te doen inderdaad. Ik doel eigenlijk op een compleet XML pad, waarmee je mogelijk met de XML.FILTEREN functie uit de voeten kunt
 
Uit je vraag valt af te leiden dat je geen flauw benul van VBA hebt (NC <> "NC");

Klopt. Ik probeer iets te wijzigen in een code, die door iemand anders is gemaakt, maar die persoon kan ik niet meer bereiken.
Zal eens rondkijken naar een deskundige.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan