28. juli 2006 - 19:32Der er
13 kommentarer og 1 løsning
Kopiere ark fra flere brugere til fælles projektmappe
Prøver lige igen. Givet: 1)flere brugere med hver sit regneark. 2)fælles projektmappe (denne ønskes beskyttet, således at hver enkelt bruger ikke har læseadgang)
Ønsker: Hver enkelt bruger skal via trykknap (makro) have mulighed for at gemme eget ark i fælles projektmappe.
Ovenstående vil kunne tilfredsstille ønsket om at elever vil kunne aflevere opgaver uden at have læseadgang.
Kan dette lade sig gøre og hvordan? (Er ikke interesseret i en løsning med FUNKTIONER => DEL PROJEKTMAPPE)
Forudsætning: Alle elever benytter hvert deres login.
Private Sub Workbook_Open() 'Denne makro forudsætter at der oprettes 1 ark (fx. opgavebeskrivelse) - Skal være det første ark 'Herefter skal der være et ark som er identisk med loginnavnet på dem som skal have mulighed for at 'udfylde et ark.
On Error Resume Next
Dim bruger As String, antalark As Integer, tæller As Integer bruger = Environ("username") antalark = Sheets.Count
For tæller = 2 To antalark ' OBS første ark skal være der. Evt. opgavebeskrivelse Sheets(tæller).Visible = xlSheetVeryHidden 'Skjuler alle ark efter det første Next tæller Sheets(bruger).Visible = True 'Viser ark for den enkelte bruger
If bruger = "LÆRERLOOGIN" Then 'Lærerlogin ændres til loginnavn for den som skal se alle ark For tæller = 2 To antalark Sheets(tæller).Visible = True Next tæller Else: End If End Sub
Er Excels password beskyttelse ikke rimelig nem at komme uden om?
Har ikke den store erfaring, men ser da ofte henvisninger når nogen har problemer med at få adgang ved glemte passwords af forskellig art.
Fx. gemme en kopi af den delte projektmappe og pille ved den! Mere fordi der tales om lærer/elev situation og opgaver :) - kommer lige til at tænke på Gotha Andersens 'flid, fedt og snyd' ;))
Det var kun for at gøre opmærksom på, at der måske kunne være risici fordi Excels beskyttelse ikke har ry for at være fremragende. Det er slet ikke sikkert at det er et problem i dit scenario, men det er nok værd at ha med i tankerne.
Jeg tror ikke at det er et problem i mit scenario, men en form for beskyttelse vil jeg dog gerne have. Det jeg ikke er helt med på er beskyttelsen af fællesmappen i forhold til hver enkelt bruger/lærerlogin. Hvordan vil konstruktionen nærmere se ud?
Der hvor jeg tror der kan være et problem - hvis der altså er et - er at andre har adgang til den fælles workbook og kan gemme en kopi. Jeg vil tro det er enkelt for en der vil det, at knække de paswords der er til makroer mv og derigennem få vist alt indhold på workbook'en.
Måske gemme elevernes ark i en anden workbook der så kan sende det videre til den fælles ditto. Men det forudsætter nok at man kan begrænse adgang til den fælles workbook fra den pågældende midlertidige med adresse osv. Det er bare nogle tanker, for det er ikke et område jeg har beskæftiget mig særligt med.
Men så'n umiddelbart ville jeg selv forsøge ikke at give adgang til en workbook der indeholder oplysninger der ikke skal deles.
Håber du kan finde en løsning eller får eksperthjælp fra andre. :)
Alternative strøtanker - lad eleverne sende arket pr. mail til lærer. Via VBA-kode - kan disse mails identificeres og opdateres i den fælles projektmappe og kvittering kan sendes retur - dette kræver naturligvis noget programmering. Men det kan lade sig gøre - har prøvet...
Supertekst: Det lyder som en rigtig god og fornuftig løsning, men som du nævner, vil dette kræve noget programmering. Jeg har ikke det store kendskab til VBA-kodning, men er der nogle henvisninger til hjælp herom kunne jeg godt tænke mig at arbejde videre.....
Er IKKE en komplet løsning - men kun: Henter vedhæftede regneark i indbakken og indsætter dem på nye faneblade i LærerRegnark.
Indlægges i "LærerRegneark" - ThisWorkbook:
Rem OBS : Reference til Outlook SKAL sættes (Tools / References / Microsoft OutLook 11.0 Object Library - eller 10.0) - 11.0 = office2003 / 10.0 = officeXP
Private Sub testOmXLSMail() Dim mailApp, Namespace, indbakke, m, vf, emne StatusBar = "Undersøger indbakke for regark fra elever..."
Rem opkald til outlook - indbakke Set mailApp = CreateObject("Outlook.Application") Set Namespace = mailApp.GetNamespace("MAPI") Set indbakke = Namespace.GetDefaultFolder(olFolderInbox)
Rem gennemløber mails If indbakke.Items.Count > 0 Then For m = 1 To indbakke.Items.Count
Rem er der en vedhft. fil If indbakke.Items(m).Attachments.Count > 0 Then vf = LCase(indbakke.Items(m).Attachments(1).Filename) Rem Test om .xls vedhæftet fil og ulæst If InStr(vf, ".xls") > 0 And indbakke.Items(m).UnRead = True Then emne = indbakke.Items(m).Subject opdaterXLSmail emne, vf 'opdater i FællesMappe Rem kan evt. slettes indbakke.Items(m).Delete
Rem marker som læst indbakke.Items(m).UnRead = False End If End If Next m End If End Sub Private Sub opdaterXLSmail(emne, fil) Dim xls As Object Set xls = CreateObject("Excel.Application") With xls .Workbooks.Open (fil) .Cells.Select .Selection.Copy End With
ActiveWorkbook.Sheets.Add Sheets(1).Select ActiveSheet.Paste ActiveWorkbook.Sheets(1).Cells(1, 1).Select ActiveWorkbook.Sheets(1).Name = emne 'kan erstattes af elevnavn - evt. fra celle i opgavebesvarelsen
xls.Application.CutCopyMode = False Set xls = Nothing End Sub
Hvis det er nemmere - så send en mail til: pb@supertekst-it.dk - så sender jeg hele filen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.