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

read only vraag

Status
Niet open voor verdere reacties.

xmir

Gebruiker
Lid geworden
12 mrt 2011
Berichten
212
Allen,

Ik heb een excel bestand opgeslagen op een gedeelde server locatie. Dit bestand wordt door meerdere mensen geraadpleegd en bewerkt. Nu kan dat op dit moment alleen om de beurt omdat wanneer ik het bestand deel, er functies verloren gaan. Dat is op dit moment geen probleem maar er zijn mensen die het bestand graag open hebben staan zonder het te willen bewerken (zodat anderen niet geblokkeerd worden). Is het mogelijk een bestand bewust juist als read only te openen om zo anderen niet in de weg te zitten?
Het is een excel 2010 (xlsm) bestand.
Een mogelijkheid tot gelijktijdig bewerken zonder verlies van functies is er denk ik niet toch? Ik heb althans geen mogelijkheden gevonden.

Dank,

Mirjam
 
Zoiets?
Code:
Private Sub Workbook_Open()
    If Not ThisWorkbook.ReadOnly Then
        If MsgBox("Bestand alleen lezen?", vbYesNo) = vbYes Then
            ThisWorkbook.ChangeFileAccess xlReadOnly
        End If
    End If
End Sub

Gelijktijdig bewerken gaat, voor zover ik weet, niet...
 
Laatst bewerkt:
In plaats van een bestand te openen kunnen ze er een kopie van maken:

Code:
Sub M_snb()
  workbooks.add "G:\OF\voorbeeld.xlxm"
end sub
 
Deze werkt niet...ik krijg geen melding als ik het bestand open na toevoeging van deze macro:(

Zoiets?
Code:
Private Sub Workbook_Open()
    If Not ThisWorkbook.ReadOnly Then
        If MsgBox("Bestand alleen lezen?", vbYesNo) = vbYes Then
            ThisWorkbook.ChangeFileAccess xlReadOnly
        End If
    End If
End Sub

Gelijktijdig bewerken gaat, voor zover ik weet, niet...
 
Is het geopende bestand niet al alleen lezen? Dan zie je ook niks :)
Heb je de macro ook in ThisWorkbook staan?

Probeer dit anders
Code:
Private Sub Workbook_Open()
    If Not ThisWorkbook.ReadOnly Then
        If MsgBox("Bestand alleen lezen?", vbYesNo) = vbYes Then
            ThisWorkbook.ChangeFileAccess xlReadOnly
        End If
    Else
        MsgBox "Dit is al een alleen lezen bestand"
    End If
End Sub
 
Laatst bewerkt:
Het bestand is niet read only maar ik had hem niet in ThisWorkbook staan. Nu heb ik al een macro in Thisworkbook staan:
Code:
Private Sub Workbook_Open()

  ISOweeknum = DatePart("ww", Date - Weekday(Date, 2) + 4, 2, 2)
  On Error GoTo met_maand
  Sheets("wk" & ISOweeknum).Activate
  
met_maand:
  Sheets(WorksheetFunction.Choose(Month(Date), "jan", "feb", "mrt", "apr", "mei", "juni", "juli", "aug", "sept", "okt", "nov", "dec") & " wk" & ISOweeknum).Activate
  
End Sub

Moet ik die van jou er op de een of andere manier tussen zetten?
 
Je kan ze samenvoegen
Code:
Private Sub Workbook_Open()
    If Not ThisWorkbook.ReadOnly Then
        If MsgBox("Bestand alleen lezen?", vbYesNo) = vbYes Then
            ThisWorkbook.ChangeFileAccess xlReadOnly
        End If
    Else
        MsgBox "Dit is al een alleen lezen bestand"
    End If

ISOweeknum = DatePart("ww", Date - Weekday(Date, 2) + 4, 2, 2)
    On Error GoTo met_maand
        Sheets("wk" & ISOweeknum).Activate
  
met_maand:
  Sheets(WorksheetFunction.Choose(Month(Date), "jan", "feb", "mrt", "apr", "mei", "juni", "juli", "aug", "sept", "okt", "nov", "dec") & " wk" & ISOweeknum).Activate
End Sub

Of een module maken en in je Workbook_Open event de macro aanroepen
ThisWorkbook:
Code:
Private Sub Workbook_Open()
    Call alleen_lezen
ISOweeknum = DatePart("ww", Date - Weekday(Date, 2) + 4, 2, 2)
    On Error GoTo met_maand
        Sheets("wk" & ISOweeknum).Activate
  
met_maand:
  Sheets(WorksheetFunction.Choose(Month(Date), "jan", "feb", "mrt", "apr", "mei", "juni", "juli", "aug", "sept", "okt", "nov", "dec") & " wk" & ISOweeknum).Activate
End Sub

Module:
Code:
Sub alleen_lezen()
    If Not ThisWorkbook.ReadOnly Then
        If MsgBox("Bestand alleen lezen?", vbYesNo) = vbYes Then
            ThisWorkbook.ChangeFileAccess xlReadOnly
        End If
    Else
        MsgBox "Dit is al een alleen lezen bestand"
    End If
End Sub
 
Laatst bewerkt:
Code:
Private Sub Workbook_Open()
    On Error resume next
    alleen_lezen

    ISOweeknum = DatePart("ww", Date - Weekday(Date, 2) + 4, 2, 2)
    application.goto Sheets("wk" & ISOweeknum).cells(1)
    application.goto Sheets(format(date,"mmm") & " wk" & ISOweeknum).cells(1)
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan