• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA Code Opslaan

Status
Niet open voor verdere reacties.

Dennisjuhh

Gebruiker
Lid geworden
30 jan 2014
Berichten
94
Hoi Excel konings en koninginnen,

Laatst geleden heeft een member van helpmij (harstikke bedank) geholpen met de volgende VBA:

Code:
Sub OpslaanAlsTXT()
    Dim xmlFile As String

    xmlFile = ThisWorkbook.Path & "\HM_Dennis.xml"
    ActiveWorkbook.SaveAs Filename:=xmlFile, FileFormat:=xlText, CreateBackup:=False, Local:=True
End Sub

Nou komt de extensie nog niet tot zijn recht. Hij moet eigenlijk worden opgeslagen als een kladblok bestand, en bestandstype moet zijn "alle bestanden". Heb al wat geprobeerd te googlen maar no luck. Kan er als het bestand is aangemaakt, ook een melding worden weergeven op het scherm van "xml aangemaakt"?

Daarnaast heb ik nog een heel klein vraagje:o

In mijn excel bestand staan er komma's ipv punten. Nou vereist de xml code punten. Ik wil niet alle settings van excel omgooien door de manier van weergeven aan te passen. Is er de mogelijkheid om met een vba code een soort van "Zoeken en vervangen" functie te maken die ik achter een knop kan plakken? Zodat als je de knop aan klikt dat alle komma's in dat werkblad worden vervangen door een punt.

Alvast bedankt!!!!
 
Laatst bewerkt:
Klik met rechts op het xml bestand en kies voor Openen met en dan Kladblok. Waarschijnlijk kun je ook kiezen voor Bewerken.

Laat die Local:=True eens weg.
 
Laatst bewerkt:
Dan geeft hij een fout aan. Ik heb echt 0 verstand van vba btw. Maar de fout zit volgens mij in dat hij het hele werkboek opslaat. Hij moet eigenlijk alleen het actieve werkblad opslaan.
 
Plaats je document hier eens.
 
Code voor zoeken en vervangen.
Code:
Sub Vervang()
ActiveSheet.UsedRange.Replace ",", "."
End Sub

Melding:
Code:
MsgBox "XML is aangemaakt", vbInformation, "XML aangemaakt"

Met vriendelijke groet,


Roncancio
 
dankje, zoeken en vervangen werkt! Moet ik de magbox code in de andere sub plaatsen Ronciano?

Beste Edmoor,

Het bestandje zelf kan ik niet plaatsen, gevoelige info.
 
Ok, maar als het met die zoek en vervang lukt is dat ook niet meer nodig.
 
Sorry ik zal eens wat duidelijker zijn. Wat ik dus zoek is een vba code achter een knop, die mijn activa werkblad opslaat als kladblokbestand met als naam "xxx".xml. Het pad waar deze op moet worden geslagen is dan het bureaublad.
 
Een .xml is een Kladblok bestand omdat het puur tekst is. Als de xml extensie niet aan Kladblok is gekoppeld moet je hem openen zoals ik zei of de xml extensie aan Kladblok koppelen.
Ik zal een andere Opslaan code voor je maken die het bestand op het bureaublad zet en alleen het huidige werkblad opslaat.
Ik neem aan dat je de knop op het blad Activa heb gezet.

Probeer deze eens:

Code:
Sub OpslaanAlsTXT()
    Dim xmlFile As String
   
    xmlFile = Environ("userprofile") & "\Desktop\Activa.xml"
 
    ActiveSheet.UsedRange.Replace ",", "."

    Range("A1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Workbooks.Add
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    ActiveWorkbook.SaveAs Filename:=xmlFile, FileFormat:=xlText, CreateBackup:=False, Local:=True
    ActiveWorkbook.Close (False)
    Range("a1").Select
End Sub

Je mag Activa.xml ook wijzigen in Activa.txt als je dat wilt.
De zoek en vervang van Roncancio is er ook in opgenomen.
 
Laatst bewerkt:
of

Code:
Sub m_snb()
  sheets("sheet1").copy
  activeworkbook.saveas "G:\OF\voorbeeld.xml",21
  activeworkbook.close false
End Sub
 
Edmoor,

Op de een of andere manier herkent jou macro de xml codes niet die ik maak. Als ik de codes handmatig plak in kladblok en hem op sla met de bestandsnaam "xxx".xml herkent hij wel alle regels. In het bestand dat jou macro produceert staan geen gegevens. Ligt het niet eraan dat de hele map opslaat? Moet er niet iets in van Active Sheet ofzo in?
 
@snb:
Dan moet je wel Local:=True achter de SaveAs zetten om de locale datum notatie te krijgen, anders is het standaard Amerikaans.

@Dennis:
Wat bedoel je met xml codes? Dat is gewoon tekst.
Maak eens een voorbeeldblad of probeer het voorbeeld van snb eens.
 
Laatst bewerkt:
Beste Edmoor,

Deze "soort"zinnen komen in het text bestand.

<transactions>
<transaction destiny="temporary" raisewarning="false">
<header>
<office>1235</office>
<code>MEMO</code>
<currency>EUR</currency>
<date>20140330</date>
<period>2014/3</period>
</header>
<lines>

Als ik dit dus in een kladblok bestand plak, en vervolgens gewoon een bestandsnaam ingeef met .xml erin en ik open hem, worden gelijk alle zinnen herkend en opent hij hem met xml editor van MS Office. Hij moet dus gewoon worden opgeslagen als een kladblok bestand op het bureaublad, bestandstype alle bestanden en dan de bestandsnaam moet iets van .xml zijn
 
Dat is gewoon platte tekst.
Je zei dat het vanuit Excel nu niet op die manier in een tekstbestand terecht komt. Daarom wil ik graag een voorbeeld Excel document.
En heb je het voorbeeld van snb al geprobeerd?
 
Bekijk bijlage Voorbeeldbestand.xlsx

Beste Edmoor,

In de bijlage een voorbeeldbestand, het is inderdaad gewoon platte tekst. Maar zodra ik het in een kladblok bestand plak en op sla met een willekeurige naam met .xml erachter wordt het een xml bestand. Dit wil ik bereiken.Code van SNB werkt bij niet, ik krijg de melding dat het object niet goed is. Het probleem is steeds dat hij het hele werkboek op wil slaan. Het moet alleen het actieve werkblad zijn.
 
Laatst bewerkt:
De code van snb werkt perfect. Heb je Sheet1 gewijzigd in de juiste bladnaam ? In je voorbeeldbestand is dit Blad1
 
Ik heb ook verschillende aangedragen oplossingen geprobeerd en het werkt prima. Misschien dat je niet duidelijk bent in je uitleg.
Ook maak je telkens verschil tussen een xml bestand en een kladblok bestand terwijl het allebei gewoon een tekst bestand is dat gewoon met Kladblok kan worden geopend.
Het programma waarmee een bestand wordt geopend als je erop dubbelklikt is afhankelijk van de extensie van het bestand, niet van de inhoud.
 
Laatst bewerkt:
@ edmoor

Het was zeker niet mijn bedoeling om jouw inbreng te minimaliseren, ik reageerde enkel op de uitlating van TS dat de code van snb bij hem niet werkte:love::D
 
Beste Edmoor en Warme Bakkertje,

Laat me even voorop stellen dat ik het erg waardeer dat jullie de moeite nemen om mij te helpen. Daarnaast heb ik 0 kennis van VBA en geloof me ik heb al genoeg gegoogled en geprobeerd en gedaan. Waarschijnlijk zal ik iets verkeerd doen. Ik merk dat de reacties van jullie steeds meer met irritatie worden geplaatst en dat snap ik ook wel.

Vandaar dat ik zelf even verder ga puzzelen met die macro's en zet de vraag op opgelost.

Bedankt!
 
@ edmoor

Het was zeker niet mijn bedoeling om jouw inbreng te minimaliseren, ik reageerde enkel op de uitlating van TS dat de code van snb bij hem niet werkte:love::D

Dat begrijp ik wel hoor :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan