Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Opslaan in Excel VBA

None
7 antwoorden
  • Hallo,

    Ik gebruik onderstaand stukje code om een test, bestaande
    uit 80 vragen, op te slaan ALS de op bladzijde 'intro' cel
    E18 ingevulde naam. Dus er komt een nieuw Excel bestand
    dat de naam van de maker draagt en dat het resultaat
    herbergt van de test gemaakt door deze persoon.
    Het is dit bestand:
    Sub vraag80()
    Dim iResponse As Integer
    If Range("A1") = "" Then
    iResponse = MsgBox("U heeft geen antwoord gegeven!")
    Else
    Sheets("afsluiting").Select
    ActiveWorkbook.SaveAs FileName:="C:\windows\desktop"
    & Range("'intro'!E18").Formula, _
    FileFormat:=xlNormal, _
    ReadOnlyRecommended:=False, CreateBackup:=False
    End If
    Sheets("detail-rapport").PrintOut Copies:=1
    End Sub

    Nu gebeurt dit opslaan prima ZOLANG het bestand NIET
    alleen-lezen is. Het moet echter WEL alleen-lezen zijn en
    dan krijg ik steevast een foutmelding over dat opslaan,
    niet alleen op de pc waarop ik deze test maak, maar ook
    elders. Ook andere test kennen dit vreemde verschijnsel.

    Vraag 1 Wie weet een oplossing voor bovenstaand probleem?
    Vraag 2 Als ik slechts 1 blad van deze test onder naam van
    de maker wil opslaan, bv het resultaat, gaat dit WEL,
    alleen-lezen wel te verstaan!

    Nu wil ik dit ook wel doen alleen dan wil ik 3 of 4 bladen
    opslaan onder die naam.
    Met één blad (werkt prima) is dit:

    Sub vraag80()
    Sheets("eindresultaat").SaveAs FileName:="A:\Rapport_" &
    Range ("B2"), FileFormat:=xlNormal, _
    Password:="", WriteResPassword:="",
    ReadOnlyRecommended:=False, _
    CreateBackup:=False
    End sub


    Hoe moet dit als je MEERDERE bladen als zodanig wilt
    opslaan?

    Sub vraag80()
    Sheets("eindresultaat";"grafiek").SaveAs
    FileName:="A:\Rapport_" & Range ("B2"),
    FileFormat:=xlNormal, _
    Password:="", WriteResPassword:="",
    ReadOnlyRecommended:=False, _
    CreateBackup:=False
    End sub


    Werkt NIET.

    Welke specialist?

    Bij voorbaat dank voor de 2 antwoorden.

    Dago

    .
  • [u:c55a3f7c59]Re: Vraag 1[/u:c55a3f7c59]
    Bedoel je dat het basisbestand, aan de hand waarvan je gebruiker zijn eigen nieuwe bestand maakt (dat onder zijn naam wordt opgeslagen wordt), ReadOnly moet zijn of moet het nieuwe, door de gebruiker te maken bestand ReadOnly zijn?
  • Het bestand zelf wordt opgeslagen op een server en moet read-only zijn. Meerdere gebruikers kunnen tegelijk het bestand openen en dan wordt het resultaat dus opgeslagen onder hun eigen naam. Dát bestand mag, maar hoeft niet read-only te zijn…
    Dago
  • Hoi Dago,

    [u:21e5fce1f9]Re: Gebruikersbestand[/u:21e5fce1f9]
    Dat bestand lukt me niet ReadOnly te krijgen. Zou je ook niet verwachten omdat je het, voor je het opslaat, ReadOnly moet maken. En dan kan je het niet meer opslaan. Tenzij je het eerst opslaat en achteraf ReadOnly maakt via bijv. VBS. Maar ik ken lang niet alle ingebouwde Office-functies en weet niet of daar een funktie voor is.

    [u:21e5fce1f9]Re: Basisbestand[/u:21e5fce1f9]
    Ik heb het op twee manieren geprobeerd en beide manieren werken, ongeacht of "ReadOnlyRecommended:=" in de code van "Sub vraag80()" op True of False staat:

    1) Ik heb een .XLS gemaakt: "SjabloonSave.xls" en die heb ik via de bestandseigenschappen (gewoon in de Verkenner) op ReadOnly gezet.

    De gebruiker opent dit bestand, vult zijn zaakjes in + gebruikersnaam in E18, en tenslotte slaat hij het op via de Sub: "vraag80()" onder zijn eigen naam. Het basisbestand blijft onaangetast.

    2) Ik heb een sjabloon gemaakt (.XLT): "SjabloonSave.xlt". Verder alles als (1)

    Eigenlijk snap ik niet waarom dit bij jou niet werkte omdat dit aardig overeenkomstig jouw oorspronkelijke beschrijving is. Klopt het pad naar "C:\Windows\Desktop" wel?

    En is "ActiveWorkbook.SaveAs FileName:="C:\windows\desktop"
    & Range("'intro'!E18").Formula, _ " één zin zonder een [ENTER] voor "& Range"?
  • Hoi Trudge,

    Pad klopt, en de afbreking is geen ENTER. Code klopt dus. Het rare is dat bij kleinere bestandsgroottes de code wél werkt, (dus als ik in de verkenner het bestand read-only gemaakt heb) maar bij grotere, bv 800 kb, niet. rarara… Het lijkt me gewoon een soort Excel-beperking of -bug maar wie het weet mag het zeggen.

    Dago
  • De wondere wereld van Microsoft 8)

    Misschien weet men hier raad:

    http://members.home.nl/orweb/

    of

    http://www.allexperts.com/Board.asp?Category=1059
    http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/
    http://216.26.168.92/vbworld/default.aspx
    http://www.developerfusion.com/
    http://searchvb.techtarget.com/

    Sukses.
  • Bedankt, ik zal ze bekijken…

    Overigens vind ik deze forums ook goed:

    http://communities.microsoft.com/newsgroups/default.asp?icp=netherlands&slcid=nl

    http://communities.microsoft.com/newsgroups/default.asp En dan Excel Programming

    http://mrexcel.com/board/

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.