• 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 met macro

Status
Niet open voor verdere reacties.

bebobebo

Gebruiker
Lid geworden
2 nov 2006
Berichten
94
Hallo Excel toppers.

Ik blijf hangen op het volgende.

Ik heb een macro die een bestand opslaat met de bestandsnaam van de waarde in cel c2 op een vast plek C:\test\
Deze werkt oke.

Code:
Sub opslaanopvasteplek()
'opslaan in vaste map met celwaarde als bestandsnaam
     Dim vFileName As Variant
    Static bSaveMacroActive As Boolean
    If bSaveMacroActive Then
        Exit Sub
    End If
    
    vFileName = "C:\test\" & _
    Worksheets("dag 1").Range("C2").Value & ".xls"
    
    If ThisWorkbook.FullName = vFileName Then
        Exit Sub
    End If
    
    vFileName = Application.GetSaveAsFilename(InitialFileName:=vFileName)
    If vFileName <> False Then
        bSaveMacroActive = True
        ThisWorkbook.SaveAs Filename:=vFileName
        bSaveMacroActive = False
    End If
    Cancel = True
    
End Sub

Ik wl nu dat het bestand opgeslagen wordt op de plek waar het bestand is geopend.
Deze code heb ik op het forum gevonden, maar ik krijg hem niet werkend.

Code:
Sub opslaanophuidig()

  Dim vFileName As Variant
    Static bSaveMacroActive As Boolean
    If bSaveMacroActive Then
        Exit Sub
    End If
    
    vFileName = ThisWorkbook.Path & “\” _
    Worksheets("dag 2").Range("C2").Value & ".xls"

    If ThisWorkbook.FullName = vFileName Then
        Exit Sub
    End If
    
    vFileName = Application.GetSaveAsFilename(InitialFileName:=vFileName)
    If vFileName <> False Then
        bSaveMacroActive = True
        ThisWorkbook.SaveAs Filename:=vFileName
        bSaveMacroActive = False
    End If
    Cancel = True
    
End Sub

Wie kan mij vertellen wat er hier mis gaat.

Bekijk bijlage basis test.xls

Groet Bert
 
Code:
Sub opslaanophuidig()
    Dim vFileName As Variant
    Static bSaveMacroActive As Boolean
    If bSaveMacroActive Then
        Exit Sub
    End If
    vFileName = ThisWorkbook.Path & "\" & _
           Worksheets("dag 1").Range("C2").Value & ".xls"
    If ThisWorkbook.FullName = vFileName Then
        Exit Sub
    End If
    vFileName = Application.GetSaveAsFilename(InitialFileName:=vFileName)
    If vFileName <> False Then
        bSaveMacroActive = True
        ThisWorkbook.SaveAs Filename:=vFileName
        bSaveMacroActive = False
    End If
    Cancel = True
End Sub

Mvg

Rudi
 
Niet geheel als antwoord op je vraag maar bij deze telkens je een nieuw tabblad aanmaakt via Shift + F11 of nieuw tabblad invoegen kopieert hij de voorgaande en wijzigt de tab naam in de waarde B2
 

Bijlagen

Code:
Sub opslaanophuidig()
    Dim vFileName As Variant
    Static bSaveMacroActive As Boolean
    If bSaveMacroActive Then
        Exit Sub
    End If
    vFileName = ThisWorkbook.Path & "\" & _
           Worksheets("dag 1").Range("C2").Value & ".xls"
    If ThisWorkbook.FullName = vFileName Then
        Exit Sub
    End If
    vFileName = Application.GetSaveAsFilename(InitialFileName:=vFileName)
    If vFileName <> False Then
        bSaveMacroActive = True
        ThisWorkbook.SaveAs Filename:=vFileName
        bSaveMacroActive = False
    End If
    Cancel = True
End Sub

Mvg

Rudi

Hallo Rudi,

Top, het werkt.
Dank hiervoor.

Groet Bert
 
Niet geheel als antwoord op je vraag maar bij deze telkens je een nieuw tabblad aanmaakt via Shift + F11 of nieuw tabblad invoegen kopieert hij de voorgaande en wijzigt de tab naam in de waarde B2

Hallo Daniel,

Hier zitten leuke weetjes in die ik zeker kan gebruiken.

Dank hiervoor.

Het zou mooi zijn als hij de waarde van cel b2 als tabbladnaam zou kunnen geven.
Dus elke keer als de waarde in b2 veranderd dan ook tabbladnaam veranderd.
Ik ga wel even kijken of ik hier op het forum wat tegen kom.

Nogmaal dank.

Groet Bert.
 
Het zou mooi zijn als hij de waarde van cel b2 als tabbladnaam zou kunnen geven.
Dus elke keer als de waarde in b2 veranderd dan ook tabbladnaam veranderd.
Ik ga wel even kijken of ik hier op het forum wat tegen kom.

Nogmaal dank.

Groet Bert.

Bij mij pakt hij de waarde van B2 als tabblad naam
 

Bijlagen

Bij mij pakt hij de waarde van B2 als tabblad naam

Hallo Daniel,

Ja klopt, jou voorbeeld werkt helemaal goed.
Wat ik bedoelde (bij mij kwam een ander toepassing naar boven) als de waarde in een ander toepassing de celwaarde (b2) aangepast werd dat dan de tabbladnaam zou veranderen.

Ik ben deze tegen gekomen maar krijg een foutmelding.
Compileerfout: verwacht: instructie einde

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B3").Value <> "" Then
* * ActiveSheet.Name = Range("B3").Value
End If
* * 
End Sub
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = [B2].Address Then
       ActiveSheet.Name = Target.Value
    End If
End Sub

Mvg

Rudi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan