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

Blokkeren van gebruik punten

Status
Niet open voor verdere reacties.

arvie76

Gebruiker
Lid geworden
14 sep 2016
Berichten
84
Hallo,

Ik heb een vraag. Ik maak gebruik van de volgende macro voor het bestand op te slaan o.b.v. bepaalde gevulde cellen. Deze werkt helemaal goed zolang ze bij bedrijfsnaam maar geen punten gebruiken. bv Janssen B.V. dan wordt er geen bestandsnaam gevormd. Komt door de punten in de naam. Begrijpelijk want punt zijn in VBA een scheidingstekening.

Heb de mensen nu geïnstrueerd dat ze dus geen punten mogen gebruiken in het veld Bedrijfsnaam.
Echt wil dit dummy proof maken dus dat ze in deze cel geen punten mogen gebruiken dat er dan een melding komt. Of misschien is het mogelijk de macro aan te passen dat deze wel werkt als er punten in de naam worden gebruikt.

Code:
Sub Opslaan()
'Slaat het bestand op obv invulde velden

Dim stNameAdd As String, VarOpslaan As Variant
            
If (Worksheets("Data II").Range("AC6").Value) <> 0 Then
        TekstNotsave1 = "De volgende velden moeten gevuld zijn:" & vbNewLine _
        & vbNewLine _
        & "- Volgnummer" & vbNewLine _
        & "- Naam coördinator" & vbNewLine _
        & "- Locatie" & vbNewLine _
        & "- Stardatum penpost" & vbNewLine _
        & "- Direct invorderbaar" & vbNewLine _
        & "- Bedrijfsnaam en RSIN/Finummer" & vbNewLine _
        & "- Boekjaar" & vbNewLine _
        & "- Soort penpost" & vbNewLine _
        & vbNewLine _
        & "Deze velden vormen samen automatisch de bestandsnaam waaronder de penpost wordt opgeslagen." & vbNewLine _

        MsgBox (TekstNotsave1)
Else
 
stNameAdd = Sheets("VL").[LetterLoactie].Value & "" & Sheets("VL").[Volgnummer].Value & " " & Sheets("VL").[RSIN].Value & " " & Sheets("VL").[Bedrijfsnaam].Value & " " & Sheets("VL").[SoortPenpostAfk.].Value & " " & Sheets("VL").[Boekjaar].Value
ChDir Sheets("data II").Range("H50").Value
VarOpslaan = Application.GetSaveAsFilename(Filefilter:="Excel Files (*.xlsm), *.xlsm", InitialFileName:="" & stNameAdd)
If VarOpslaan <> False Then
End If
ActiveWorkbook.SaveAs Filename:=VarOpslaan

End If

End Sub
 
Punten zijn gewoon toegestaan in een bestandsnaam en in cellen en string variabelen, dus ik begrijp het probleem niet.
Maar probeer het eens zo:
Code:
Replace(Sheets("VL").[Bedrijfsnaam].Value, ".", "")
 
Thanks

Heb de marco aangepast n.a.v input van Edmoor. Thanks :thumb: voor snelle reactie

Aangezien mijn vorige versie dus niet werkte als ze punten gebruikte en wel als ze geen punten gebruikte dacht ik dat het gebruik van punten niet mocht. Dus bij deze een verkeerde gedachte. Weer wat geleerd.

Als ik nu bedrijfsnaam gewoon opvoer met punten krijg ik wel de gewenst opbouw van de bestandsnaam te zien.

Code:
Sub Opslaan()
'Slaat het bestand op obv invulde velden

Dim stNameAdd As String, VarOpslaan As Variant
            
If (Worksheets("Data II").Range("AC6").Value) <> 0 Then
        TekstNotsave1 = "De volgende velden moeten gevuld zijn:" & vbNewLine _
        & vbNewLine _
        & "- Volgnummer" & vbNewLine _
        & "- Naam coördinator" & vbNewLine _
        & "- Locatie" & vbNewLine _
        & "- Stardatum penpost" & vbNewLine _
        & "- Direct invorderbaar" & vbNewLine _
        & "- Bedrijfsnaam en RSIN/Finummer" & vbNewLine _
        & "- Boekjaar" & vbNewLine _
        & "- Soort penpost" & vbNewLine _
        & vbNewLine _
        & "Deze velden vormen samen automatisch de bestandsnaam waaronder de penpost wordt opgeslagen." & vbNewLine _

        MsgBox (TekstNotsave1)
Else
 
stNameAdd = Sheets("VL").[LetterLoactie].Value & "" & Sheets("VL").[Volgnummer].Value & " " & Sheets("VL").[RSIN].Value & " " & Replace(Sheets("VL").[Bedrijfsnaam].Value, ".", "") & " " & Sheets("VL").[SoortPenpostAfk.].Value & " " & Sheets("VL").[Boekjaar].Value
ChDir Sheets("data II").Range("H50").Value
VarOpslaan = Application.GetSaveAsFilename(Filefilter:="Excel Files (*.xlsm), *.xlsm", InitialFileName:="" & stNameAdd)
If VarOpslaan <> False Then
End If
ActiveWorkbook.SaveAs Filename:=VarOpslaan

End If

End Sub
 
Laatst bewerkt:
Vond die uitleg in post 1 erg leuk.
Heb de mensen nu geïnstrueerd dat ze dus geen punten mogen gebruiken in het veld Bedrijfsnaam. Echter wil dit dummy proof maken dus dat ze in deze cel geen punten mogen gebruiken dat er dan een melding komt.
Die kunnen er zeker ook wel om lachen.;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan