• 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.

Opslaan als xslm met celnaam met punten werkt niet

Status
Niet open voor verdere reacties.

wekkanz

Gebruiker
Lid geworden
11 feb 2013
Berichten
46
Hallo,

ik heb een Marco opslaan als xlsm bestand en waarmee ik een bestandsnaam vorm door 3 cel namen te gebruiken
In cel H5 staat een code die is opgemaakt met punten 1.1.1 als voorbeeld, B5 en B6 zijn 2 tekstuele namen.

Wanneer er punten tussen de cijfers staan, word het bestandsnaam niet getoond in het dialoog venster, maar als er komma's (1,1,1) staan wel.
Ik begrijp niet helemaal wat er niet lekker loopt.

Mijn concrete vraag is, hoe krijg ik een bestandsnaam toonbaar in het dialoogscherm met de punten tussen de cijfers?

kan iemand mij hiermee ven helpen? helaas kan ik geen bestand uploaden, ivm een beveiligde omgeving.

HTML:
Sub SaveAsDisplay()

    Const sFILE_FILTER      As String = "Macro Enabled Workbook (*.xlsm), *.xlsm)"
    Const sFOLDER_PATH      As String = "C:\Users\Documents\Outlook-bestanden"

    Dim sInitialFileName    As String
    Dim sCurrentDrive       As String
    Dim sCurrentDir         As String
    Dim sFullName           As String
    Dim sMnr                As String
    Dim sPrn                As String
    Dim sKln                As String
    Dim wks                 As Worksheet

    Set wks = Worksheets("blad1")

    sMnr = wks.Range("H5").Value
    sPrn = wks.Range("B5").Value
    sKln = wks.Range("B6").Value

    sInitialFileName = sMnr & " " & sPrn & " " & sKln

    sCurrentDir = CurDir
    sCurrentDrive = Left$(CurDir, 1)

    ChDrive Drive:=Left$(sFOLDER_PATH, 1)
    ChDir Path:=sFOLDER_PATH

        sFullName = Application.GetSaveAsFilename(InitialFileName:=sInitialFileName, _
                                                  FileFilter:=sFILE_FILTER)

    ChDrive Drive:=sCurrentDrive
    ChDir Path:=sCurrentDir

    If sFullName <> CStr(False) Then

        ActiveWorkbook.SaveAs Filename:=sFullName, _
                              FileFormat:=xlOpenXMLWorkbookMacroEnabled

    End If

End Sub
 
Dat zal door de punten komen.
Waarschijnlijk omdat alles achter de laatste punt als extensie wordt gezien.
Zo zal het wel goed gaan:
Code:
sInitialFileName = sMnr & " " & sPrn & " " & sKln & ".xlsm"
 
Hallo Edmor,

Dankje wel, dat inderdaad de oplossing, had even niet goed geschakeld mbt het zien van een extensie.

Het is opgelost! Hartelijk dank voor het mee denken!
 
Deze 26 regels code met 10 overbodige variabelen kun je vervangen door:

Code:
Sub M_snb()
  ActiveWorkbook.SaveAs "C:\Users\Documents\Outlook-bestanden\" & [Blad1!H5&B5&B6], 52
End Sub

Als je bestand slechts 1 werkblad bevat (wat in de meeste gevallen ook voldoende is), kan de code korter:

Code:
Sub M_snb()
  ActiveWorkbook.SaveAs "C:\Users\Documents\Outlook-bestanden\" & [H5&B5&B6], 52
End Sub
 
Wow dankje wel snb!
Dat is idd een heel stuk korter,
Ik heb alleen altijd de optie nodig om mbv dialoogvenster om een keuze voor een filemap te maken want dat kan bij elk bestand variëren.
Hoe je code werkt kan ik volgen, maar hoe kan ik deze kan aanpassen zodat een dialoogvenster geopend word?
 
Code:
Sub M_snb()
  with application.filedialog(3)
    if .show then ActiveWorkbook.SaveAs .selecteditems(1) & "\" & [H5&B5&B6], 52
  end with
End Sub
 
Dankje wel Snb, ik ga eens rustig kijken hoe en wat, maar heb weer inspiratie om te leren :thumb:

groeten!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan