VBA mentés pdf-ben karakter cseréléssel.

VBA mentés pdf-ben karakter cseréléssel.
2016-01-25T18:17:00+01:00
2016-01-25T19:09:31+01:00
2022-12-03T05:42:07+01:00
Balu81
Sziasztok!

Segítségeteket szeretném kérni. Van egy "jól" működő kódom, amely egy activX gomb megnyomásakor fut le. Amit elvégez:

1.  Az excel munkafüzet egy munkalapján egy cella értékét kijavítja, hogy a ne legyen benne olyan karakter amely nem szerepelhet fájlnévben.

2. ebből az (1) értékből és egy másik cella értékéből alkot egyet, majd ezzel a fájlnévvel elmenti a fájlt egy adott helyre.

Tökéletesen működik, egy gondom van vele, hogy kicsit lassú. Korábban FFeri (köszönöm neki ismét) fórumozótól kaptam már segítséget -más témában- hogyan tudnám gyorsítani a kódokat, de nem tudom, hogy ezt lehetne e turbózni! Van ötletetek?

Jelenleg ezt használom:

Dim wsht As Worksheet Set wsht = ActiveWorkbook.Worksheets("Felszerel") Dim wsht2 As Worksheet Set wsht2 = ActiveWorkbook.Worksheets("fx") Dim eredeti1 As String Dim csere1 As String eredeti1 = wsht2.Range("W11").Value csere1 = Replace(eredeti1, "/", "_") wsht2.Range("W11").Offset(1, 0).Value = csere1 Dim eredeti2 As String Dim csere2 As String eredeti2 = wsht2.Range("W12").Value csere2 = Replace(eredeti2, "", "_") wsht2.Range("W12").Offset(1, 0).Value = csere2 Dim eredeti3 As String Dim csere3 As String eredeti3 = wsht2.Range("W13").Value csere3 = Replace(eredeti3, "?", ".") wsht2.Range("W13").Offset(1, 0).Value = csere3 Dim eredeti4 As String Dim csere4 As String eredeti4 = wsht2.Range("W14").Value csere4 = Replace(eredeti4, ":", "-") wsht2.Range("W14").Offset(1, 0).Value = csere4 Dim eredeti5 As String Dim csere5 As String eredeti5 = wsht2.Range("W15").Value csere5 = Replace(eredeti5, "<", "_") wsht2.Range("W15").Offset(1, 0).Value = csere5 Dim eredeti6 As String Dim csere6 As String eredeti6 = wsht2.Range("W16").Value csere6 = Replace(eredeti6, ">", "_") wsht2.Range("W16").Offset(1, 0).Value = csere6 Dim eredeti7 As String Dim csere7 As String eredeti7 = wsht2.Range("W17").Value csere7 = Replace(eredeti7, "|", ".") wsht2.Range("W17").Offset(1, 0).Value = csere7 Dim eredeti8 As String Dim csere8 As String eredeti8 = wsht2.Range("W18").Value csere8 = Replace(eredeti8, Chr(34), "-") wsht2.Range("W18").Offset(1, 0).Value = csere8 Dim eredeti9 As String Dim csere9 As String eredeti9 = wsht2.Range("W19").Value csere9 = Replace(eredeti9, "*", "_") wsht2.Range("W19").Offset(1, 0).Value = csere9 Dim sorszam As String Range("J1").Select sorszam = Range("K1") wsht.ExportAsFixedFormat Type:=xlTypePDF, Filename:="E:\ARX megrendelések" & sorszam & Space(1) & "" & Worksheets("fx").Range("W22") & ".pdf", _ Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, OpenAfterPublish:=False
Válaszotokat előre is nagyon köszönöm!
Mutasd a teljes hozzászólást!
Szia!

Miért nem cseréled egyből a cella értékét:

wsht2.Range("W11").Offset(1, 0).Value = Replace(wsht2.Range("W11").Value, "/", "_")
De, ha már változót használsz, miért kell belőle ilyen sok, elég lenne egyet használni.

Üdv.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd