Tegelijkertijd opslaan in een gedeeld Excel document

Status
Niet open voor verdere reacties.

rfish

Nieuwe gebruiker
Lid geworden
1 nov 2017
Berichten
4
Hoi,

Ik wil graag een gedeeld bestand maken, dat via een gedeelde map op mijn laptop ook op andere laptops te raadplegen is.

Ik wil eerst zorgen dat er tegelijkertijd opgeslagen kan worden (uiteraard dat ik later laat wachten als het bestand in gebruik is door een andere gebruiker en dan opnieuw laat proberen op te slaan). De reserveringen van de te bewerken rijen zijn voor latere zorg...

Nu heb ik dit bestand:Bekijk bijlage Map2.xlsm

Ik heb 2 knoppen:
1 knop 'opslaan' die in een loop 50x opslaat.
1 knop 'check' die ook opslaat.

als ik nu op de ene laptop op 'opslaan' klik en op de andere laptop op 'check' wil ik dus uitzoeken of hier geen fouten in gaan ontstaan. Echter krijg ik de hele tijd de foutmelding 1004 (bestand in gebruik door andere gebruiker en fout bij opslaan)

Ik doe iets finaal verkeerd, want ik heb het internet al behoorlijk afgezocht en kan geen oplossing vinden, waar veel forumgebruikers op andere forums zeggen dit wel te hebben gedaan.

Ik gebruik in een module:
Code:
Function IsWorkBookOpen(FileName As String) As Boolean
    Dim ff As Long, ErrNo As Long

    On Error Resume Next
    ff = FreeFile()
    Open FileName For Input Lock Read As #ff
    Close ff
    ErrNo = Err
    On Error GoTo 0

    Select Case ErrNo
    Case 0:    IsWorkBookOpen = False
    Case 70:   IsWorkBookOpen = True
    Case Else: Error ErrNo
    End Select
End Function

en onder de knoppen:
Code:
Private Sub ToggleButton1_Click()

Dim i As Integer

For i = 1 To 50

If IsWorkBookOpen(ThisWorkbook.FullName) = False Then
         ThisWorkbook.Save
Else
   MsgBox "het gaat mis"

End If
    
Next i

End Sub

Private Sub ToggleButton2_Click()

If IsWorkBookOpen(ThisWorkbook.FullName) = False Then
         ThisWorkbook.Save
Else
   MsgBox "het gaat mis"

End If

End Sub

Heeft iemand enig idee hoe dit op te lossen?

Bedankt voor jullie tijd!
 
Allereerst: welkom op dit forum.

Van de code van de module begrijp ik niet waar je hem voor gebruikt. Het is op deze manier geen macro, want er is geen Sub gedefinieerd. De foutmelding die je krijgt snap ik wel, want als je hetzelfde bestand gedeeld op 2 verschillende PC hebt geopend, en je wilt op de ene PC opslaan, krijg je uiteraard de mededeling dat het bestand in gebruik is, want dat is ook zo
 
Wat je wel op Internet vindt: zie af van 'gedeelde bestanden' dat gaat ooit (goed) mis.
 
Van de code van de module begrijp ik niet waar je hem voor gebruikt. Het is op deze manier geen macro, want er is geen Sub gedefinieerd.

Het is een function die wordt aangeroepen door de togglebutton_click event Jan.
Je kan het inderdaad niet uitvoeren via een knop of wat dan ook.
 
@hell

Kan een resultaat teruggegeven, hoeft niet.
Het is inderdaad minder verwarrend om een Function uitsluitend te gebruiken voor wat een Macro niet kan: een resultaat doorgeven.

Code:
Sub M_snb()
   MsgBox F_snb("abcde")
End Sub

Function F_snb(c00)
   F_snb = Format(c00, "@ @ @ @ @")
End Function

Sub M_snb_001()
   F_snb_001
End Sub

Function F_snb_001()
   MsgBox Format("xyz12", "@ @ @ @ @")
End Function
 
Dank u snb , weer wat geleerd.
Maar geldt dit alleen voor VBA?
Want in java begint die meteen te mekkeren dat er een return verwacht wordt, als ik een functie niet compleet afsluit.
 
Laatst bewerkt:
Dank voor jullie reacties.

Eigenlijk begrijp ik goed dat gedeelde bestanden toch niet zo stabiel gaat worden als dat ik hoopte.

Als ik dan denk aan een externe database welke gevuld wordt door userforms vanuit een alleen-lezen excelbestand, wat voor soort database raden jullie dan aan?

Ik wil simpelweg gewoon de optie op met meerdere gebruikers vanuit een userform te gaan werken.

Hoor jullie graag!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan