1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel vom Modul in ein Sub verzweigen

Discussion in 'Office-Programme' started by pp17, Jun 14, 2009.

Thread Status:
Not open for further replies.
  1. pp17

    pp17 Byte

    Hallo Excel Experten,
    ich habe ein, hoffentlich, kleines Problem zu lösen. Habe schon einiges experimentiert, aber VBA „zickt“ nur rum.
    Für eine Schulung habe ich eine Excel-Tablle als Lohnkonto aufgebaut. Es sind mehrere Mitarbeiter (15 Stück), jedoch pro Mitarbeiter nur eine Spalte eingerichtet. Hier hatte ich erst gedacht die falschen Eingaben mit
    Private Sub Worksheet_Change(ByVal Target As Range) …….
    abzufangen, welche im VBA unter Objekte/Worksheet stehen. Da aber bei noch nicht vollständiger Eingabe schon die automatisch errechneten Felder durch >>Private Sub Worksheet_Calculate()<< zu recht meckern (sollen sie aber noch nicht), habe ich jetzt unter dem letzten Eingabefeld einen Button gesetzt. Jetzt soll durch Klick auf diesen Button die entsprechende Spalte überprüft werden und bei Falscheingaben soll dann durch >>Private Sub Worksheet_Change(ByVal Target As Range)……<< auf die entsprechende Zelle gesprungen werden. Durch diesen Button ist ein Modul erzeugt worden.
    Die Lösung sollte nach Möglichkeit nicht mit einem Makro geschrieben sein, besser alles in VBA, denn in VBA kann man das Ganze mit Passwort sichern, es sei denn, dass man das Makro unsichtbar machen kann, damit es nicht unter „Extras->Makro->Makro eingesehen werden kann. Kann man pro Modul zusätzlich >> Private Sub Worksheet_Change(ByVal Target As Range)……<< nutzen und wie komme ich aus dem Modul/Sub, in welchem ich jetzt durch Klick auf den Button gekommen bin in das Private Sub…. ?
    Bin über jeden Tipp dankbar.
    Peter
     
  2. Urs2

    Urs2 Megabyte

    Hallo Peter,

    Das ist aber reichlich verworren geschrieben...

    1. Geht es um das Problem das wir letzte Woche hatten?
    Ich hatte Dir zwei Makros zur Auswahl gegeben, eines wenn direkt in die zu überwachende Zelle geschrieben wird, und eines falls diese Zelle eine Formel enthält und ihren Inhalt damit berechnet.
    Beide Makros zu installieren bringt nichts, sie schliessen sich ja gegenseitig aus.
    Welches musst Du benutzen?

    2. Besser VBA als ein Makro?
    Ein Makro ist VBA... und VBA ist eines oder mehrere Makros... als Sub oder als Function.

    3. Ein Modul ist nur ein Ordner, wo Subs oder Functions drinstehen.
    Beim Einrichten des Buttons wurde wohl ein solches Modul1 eingefügt... weil vorher noch keines da war... meine Makros stehen ja im Ordner des Tabellenblatts.
    Was da schief gelaufen ist, weiss ich jetzt noch nicht.
    Dass man ein Auto-Makro mit einem Button aufrufen sollte erschliesst sich mir nicht...

    4. Wenn das Private vor einem Sub steht, wird es in Excel>Makro>Makros nicht angezeigt.

    5. Sind die Zellen, die geprüft werden sollen, in den 15 Spalten alle nebeneinander?

    Versuche einmal etwas klarer zu schreiben, was gemacht werden soll, und was nicht funktioniert.
    Die Fehleranalyse mache ich dann selbst...

    Gruss Urs
     
  3. pp17

    pp17 Byte

    Hallo Urs,
    sorry aber ich dachte das wäre verständlich......
    1. Ja es geht um das Problem, welches wir letzte Woche hatten.
    Praktisch funktionieren sie beide zusammen, aber wenn in den Feldern in denen was eingegeben werden muss noch nichts steht, dann stimmt die Summe in dem automatisch zu errechnenden Feld noch nicht und schon habe ich Deinen vorhergesehenen Fehler.

    2. VBA ist eines oder mehrere Makros. OK, wieder was dazu gelernt.
    Wo ist der Unterschied zwischen Sub und Function?

    5. Leider stehen nicht alle Zellen nebeneinander

    3. Hier der Code im Modul:
    Sub Schaltfläche1_BeiKlick()
    'mit welchem Befehl komme ich in den Sub unten ?
    End Sub

    Private Sub worksheet_change(ByVal Target As Range)
    If Not Intersect(Target, Range("F24")) Is Nothing Then
    If Target.Value = "" Then Exit Sub
    If Target.Value <> 165 Then
    Target.Font.Color = vbRed
    Target.Font.Strikethrough = True
    x = MsgBox("Der Wert " & Chr(10) & Target.Value & Chr(10) & "ist falsch", vbOKOnly, "Hallooo???")
    Else
    Target.Font.Color = vbBlack
    Target.Font.Strikethrough = False
    End If
    End If
    End Sub

    Sicherlich kann der Private Sub... auch im Tabellenblatt stehen. Da unter jeder Spalte ein Button ist, müsste abgefangen werden -sofern man in das Tabellenblatt verzweigt- für welche Spalte die Abfrage erfolgen soll (kann man da mit Case arbeiten oder gibts das nur bei Access?)

    Helfen diese Angaben?
    Peter
     
  4. Urs2

    Urs2 Megabyte

    Hallo Peter,

    Ein Sub ist ein unabh&#228;ngiges Programm, das Anweisungen ausf&#252;hrt.
    Es kann 3 mal 4 berechnen, es gibt das Resultat 12 aber nicht zur&#252;ck. Wenn man die 12 braucht, muss es sie in eine Variable oder direkt ins Tabellenblatt schreiben. Man kann also damit nicht direkt weiter rechnen.

    Eine Function macht dasselbe.
    Man kann sie nicht aus Excel>Extras>Makro aufrufen.
    Sie liefert aber einen R&#252;ckgabewert zum weiter arbeiten, also hier 12.
    Die benutzerdefinierten Funktionen in Excel sind auch Functions. Man kann in eine Zelle tippen "=60/NameDerFunction+Parameter", dann steht in der Zelle 5.

    Wenn Private davor steht, wird das Sub in Excel nicht angezeigt, es kann nur &#252;ber Buttons (oder auto-) gestartet werden.
    Innerhalb des VBA-Projektes kann es dann aber auch nur aus dem gleichen Modul aufgerufen werden.


    1. Das geht nicht, ihre Daseinsberechtigungen schliessen sich gegenseitig aus. Du kannst nicht in einer Zelle eine Formel haben... und dann noch etwas eintippen...
    Wenn beide dasselbe tun wollen... dreht sich alles im Kreis. Entscheide Dich f&#252;r eine Variante.

    2. Vielleicht das Wetter... aber so klar ist mir das nicht. Bedenke, ich sehe die Tabelle nicht, die Du jeden Tag bearbeitest.

    Was passiert denn in der zu &#252;berwachenden Range("F24") ?
    - wird dort vom Benutzer eine Zahl eingetippt ?
    - oder tippt der User zB in B2 etwas ein, und in F24 ist eine Formel/Bezug &#224; la =B2*F20/25 ?

    Damit wir weiter kommen, nehme ich einmal an, dass die User direkt in die Zelle F24 schreiben.
    Was Du mit den Buttons in jeder Spalte willst, leuchtet mir aber beim besten Willen nicht ein.
    Das Makro arbeitet doch automatisch...


    Ich lasse mit meinem Code die Zellen in der Zeile 24, in den Spalten A, C, E, G, I und K &#252;berwachen.
    Wenn in eine dieser nicht zusammenh&#228;ngenden Zellen 165 getippt wird, wird gemeckert und die falsche Zelle angemalt und durchgestrichen.

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim rngAll As Range
    Set rngAll = Range("A24,C24,E24,G24,I24,K24")
    
        If Not Application.Intersect(Target, rngAll) Is Nothing Then
            If Target.Value = 165 Then
                Target.Font.Color = vbRed
                Target.Font.Strikethrough = True
                x = MsgBox("Das ist passiert...", vbOKOnly, "Hallo...")
            Else
                Target.Font.Color = vbBlack
                Target.Font.Strikethrough = False
            End If
        End If
    
    End Sub
    
    Setze den Code im VBA-Editor in den Ordner des Tabellenblattes.
    Aber entferne zuerst die alten Makros. Das sind Auto-Makros, die arbeiten immer weiter... bis sie erschlagen werden.


    Falls ich falsch liege, und in den zu &#252;berwachenden Zellen eine Formel ist, funktioniert das nicht.
    Ich muss es dann umschreiben, weil Calculate die Adresse der ge&#228;nderten Zelle nicht kennt.

    Gruss Urs
     
    Last edited: Jun 16, 2009
  5. pp17

    pp17 Byte

    Hallo Urs,
    Der User gibt die Zahlen ein. Die einzugebenden Zahlen der einzelnen Spalten liegen leider nicht immer nebeneinander. Wenn sie denn mal nebeneinanderliegen, sind es verschiedene Zahlen. Hierfür ist der
    "Private Sub worksheet_change(ByVal Target As Range)"

    Dann gibt es noch die Felder, welche automatisch berechnet werden (Zwischen- und Endsumme). Hierfür ist der "Private Sub Worksheet_Calculate()".

    Beides zusammen funktioniert zwar, aber durch ...Calculate meckert Excel, wenn noch nicht alle Felder eingegeben sind. Jetzt dachte ich, mit einem Button unter der letzten Zeile entweder
    alle Zellen (die Einzugebenden und die, die automatisch berechnet werden) abzufragen oder nur die, die automatisch berechnet werden abzufragen. Durch den Button ist jetzt ein Modul erstellt worden und ich weiss nicht wie ich aus diesem Modul in ein Makro komme/springen kann oder nacheinander die beiden Makros ("Private Sub worksheet_change(ByVal Target As Range)" und "Private Sub Worksheet_Calculate()") aufrufen kann. In der früheren Basic-Programmiersprache gabs mal nen Befehl "Gosub". Dann wurde der Befehl ausgeführt und anschließend wieder zum Ausgangspunkt zurückgesprungen.
    Hoffe, dass ich mich verständlicher ausgedrückt habe. Würde es helfen, wenn ich Datei mitschicken würde?
    Peter
     
  6. Urs2

    Urs2 Megabyte

    Hallo Peter,

    Es ist wohl nicht nur das Wetter...
    ...meine Vorstellung, wie Deine Datei aussieht und funktioniert, hat sich offenbar in der falschen Ecke festgefahren.

    Mache eine Kopie der Datei und entferne alle Namen und Bezüge, die die Welt nicht kennen muss.
    Lass aber genügend Daten (und ggf. auch Hinweise) drin, damit ich sehe, wie es funktionieren und was geprüft werden soll.

    Lade die Datei hoch >

    - wenn sie kleiner als 100KB ist, hier im Forum an Deinen Beitrag anhängen.
    Die Datei aber umbenennen, von DeineDatei.xls in DeineDatei.xls.txt, sonst akzeptiert das Forum die Datei nicht.

    - wenn sie grösser ist, dann als DeineDatei.xls hier hochladen >>> http://www.file-upload.net/ ...
    ... und den Download-Link hier posten.

    Gruss Urs
     
  7. pp17

    pp17 Byte

    Hallo Urs,
    vielen Dank, dass Du Dir die Zeit nimmst und Dir die Datei ansiehst.
    Habe die Mitarbeiter auf fünf rediziert.
    Da es sich um Schulungsdaten handelt, sind alle Daten erfunden.
    Hoffe, dass es mit dem Dateianhang (47KB) klappt.
    Peter
     

    Attached Files:

  8. Urs2

    Urs2 Megabyte

    Hallo Peter,

    Wenn ich das richtig verstehe, ist das eine Uebungstabelle, die Lehrlinge sollen die Werte berechnen und einsetzen.
    Wenn der eingetippte Wert falsch ist, soll ihnen eine Meldung an den Kopf springen. Richtig geraten?

    Das sind 675 individuell zu überwachende Zellen! Jede Zelle kann ja schliesslich Mist enthalten und die automatischen Summen verändern.

    Schau Dir mal in Excel > Daten > Gültigkeit an. Vielleicht lässt sich ja auch damit etwas machen.
    Dort kannst Du die richtige Zahl und eine Fehlermeldung festlegen.
    Wenn die getippte Zahl falsch ist, kommt diese Fehlermeldung.
    Einen Haken muss es ja geben > Eine leere Zelle ist kein Fehler...


    Mit Makro geht es natürlich auch... viel Vergnügen beim Zeilen-Schreiben...
    Ich bin etwas eng mit der Zeit, so schnell-schnell hatte es funktioniert. Teste ausgiebig.

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim rngAll As Range, xValue, xSum
    
    xValue = ""
    xSum = ""
    Set rngAll = Range("C23:G42,C44:G52,C54:G62,C67:G73")
    
    Select Case Target.Cells
        Case Cells(24, 3)
            xValue = 165
        Case Cells(28, 3)
            xValue = 76
        '
        '
        '
        Case Cells(24, 4)
            xValue = 82.5
        '
        '
        '
        Case Else
            xValue = ""
    End Select
    
    If xValue <> "" Then
        If Target.Value <> xValue Then
            Target.Font.Color = vbRed
            Target.Font.Strikethrough = True
            x = MsgBox("Der Wert " & Chr(10) & Target.Value & Chr(10) & "ist falsch", vbOKOnly, "Hallooo???")
        Else
            Target.Font.Color = vbBlack
            Target.Font.Strikethrough = False
            x = MsgBox("Der Wert " & Chr(10) & Target.Value & Chr(10) & "ist richtig")
        End If
    End If
    
    Select Case Target.Column
        Case 3
            xSum = 2357.83
        Case 4
            xSum = 765.7
        Case 5
            xSum = 3052.9
        '
        '
        '
        '
        Case Else
            xSum = ""
    End Select
    
                            'hier die Spaltennummern anpassen
    If Target.Column > 2 And Target.Column < 6 Then
        If Round(Cells(75, Target.Column).Value, 2) <> xSum Then
                Target.Font.Color = vbRed
                Target.Font.Strikethrough = True
            x = MsgBox("Die Summe in Spalte " & Target.Column & " ist falsch !" & vbCr & vbCr & _
                "Hier gehört kein Wert hin...", vbOKOnly, "Guten Morgen....")
        End If
    End If
    
    End Sub
    
    
    Funktion:

    - Deaktiviere die Automakros in der geposteten Datei und setze diesen Code ins Blatt.

    - Es werden alle weissen Zellen überwacht.

    - Die Zellen, die im Select Case einen Wert haben, werden auf den Wert überprüft.

    - Die Gesamtsumme in der geänderten Spalte wird überprüft. Wenn falsch, wird die fälschlich gefüllte Zelle rot angemalt und durchgestrichen.


    Gruss Urs
     
  9. Urs2

    Urs2 Megabyte

    Mist... eben flog ein Gedanke vorbei...
    Ich hatte ja mit der schon gefüllten Tabelle experimentiert, dann stimmt die Endsumme immer.

    Ich werde mich heute Abend damit befassen.

    Gruss Urs
     
  10. pp17

    pp17 Byte

    Hallo Urs,
    Das mit der Gültigkeit kannte ich noch nicht. Würde auch funktonieren bis auf die Felder, deren Summe automatisch errechnet werden. Dann ist bei jeder Eingabe das Fehlerfenster da und das soll nicht sein.

    Jetzt werden alle weißen Felder abgefragt. So gehts (wenns keine andere Lösung gibt) auch. Aber gibt es die Möglichkeit nur die Eingaben an den richtigen Stellen abzufragen (ja) und dann auf Knopfdruck/Buttondruck
    a) nur die Felder, die die Summe errechnen abzufragen
    oder
    b) die Felder, die die Summe errechnen abzufragen und zusätzlich die Felder die manuell eingegeben worden sind (dafür aber nicht die automatische Abfrage von oben, d.h. dass dann alles auf einmal abgefragt wird)
    Eigentlich sollte doch die b)-Variante möglich sein oder?

    Alternativ habe ich mir überlegt, dass man eine Tabelle mit den Lösungen erstellen kann, diese Tabelle ausblendet und dann die Eingabe von der Schulungstabelle mit der Lösungstabelle vergleicht. Nur klappte es letzte Nacht bzw. heute morgen ganz früh nicht mit einer ausgeblendeten Tabelle. Gibt es hier einen speziellen Befehl?

    Bei deiner Lösung steht u.a.
    Select Case Target.Column
    Case 3
    xSum = 2357.83
    Case 4
    xSum = 765.7
    Case 5
    xSum = 3052.9
    usw.
    Woher kommen die Zahlen (Hilf mir bitte das Brett vom Kopf zu nehmen)?
    Peter
     
  11. Urs2

    Urs2 Megabyte

    Hallo Peter,

    ...es war zu heiss gestern abend... im äussersten Südwesten von DE...

    1. Gültigkeit > es hat eben auch Nachteile >
    Es wird nichts gefärbt oder durchgestrichen, und bei Abbruch bleibt der vorherige Zellwert einfach stehen...

    2. Der Weg mit der Ueberprüfung durch eine Resultattabelle ist mir nachträglich auch noch eingefallen. Das müsste sich machen lassen, ich weiss nur noch nicht wie... werde mal schauen.

    Dazu stellt sich aber die prinzipielle Frage zum Lerneffekt >
    - Soll, soweit möglich, bei jeder Eingabe der Fehler sofort angezeigt werden?
    - Oder sollen, nach vollbrachtem Werk, dem Lehrling einfach ein allgemeiner, oder die einzelnen Fehler gemeldet werden?

    3. Die Zahlen im Select Case > das sind die Summen in Zeile 75. Ohne das wirklich zu prüfen, bin ich davon ausgegangen, dass diese den Beweis, und damit die Kontrolle, für die Richtigkeit der Tabelle liefern.


    Im Moment schwebt mir diese Lösung vor >

    - Alle weissen Felder werden abgefragt.

    - Die Zellen mit zu kontrollierenden Eingaben werden geprüft und angemeckert.

    - Alle anderen Zellen werden geprüft, ob sie wirklich leer geblieben sind, und mit einem anderen Spruch auch angemeckert.

    - Wenn die Pflichtfelder leer bleiben, wird so nicht gemeckert. Also kommen Deine Buttons ins Spiel, die prüfen, ob die Summe stimmt (meine Abfrage zur Zeile 75).
    Die Fehlerzelle würde so nicht gefunden, aber immerhin die Spalte...

    Werde mir noch ein paar Gedanken dazu machen... bis morgen früh...

    Gruss Urs
     
    Last edited: Jun 18, 2009
  12. pp17

    pp17 Byte

    Hallo Urs2,

    hört sich gut an.
    Dass mit Zeile 75... wer lesen kann ist klar im Vorteil

    Da die Gültigkeit keine Färbung oder durchgestrichen zulässt gäbs noch die bedingte Formatierung. Ist aber genau so eine sch.... Arbeit.

    Wenn es mit dem Button und der Zeile 75 klappt, kann man dann auch noch die anderen rosa/lila Zeilen abfragen oder wäre das sinnlos ?

    Peter
     
  13. Urs2

    Urs2 Megabyte

    Hallo Peter,

    Hier mal ein Versuch mit einer Master- und Tochtertabellen - erscheint mir ganz praktisch.
    Mit der Master werden leere Töchter zum Ausfüllen erzeugt. Die Töchter holen die richtigen Zahlen bei der Master ab.
    Die Master selbst kann geschlossen werden, funktioniert trotzdem.

    Ich habe die Fehlerfarben verändert > Wenn ein falsches "Nichts" eingegeben wurde, wurde es zwar rot und durchgestrichen... aber niemand konnte es sehen.
    Jetzt wird die Zelle rot, und die Schrift allenfalls weiss und durchgestrichen.

    Um die Buttons kommt man nicht herum, nur Eingaben können geprüft werden, Vergessenes nicht. Sie sind auch drin.

    Ein paar hundert Code-Zeilen habe ich schon weg rationalisiert. Aenderungen in der Haupttabelle wären ja ein Albtraum gewesen, den Code fehlerfrei anzupassen fast unmöglich. Jetzt ist der Code klein und passt sich zur Hauptsache selbst an.

    Hoffentlich funktioniert es auch wie geplant. Alle Zellen zu füllen, damit die Buttons ein OK geben können... da fehlte mir dann der Mut, es ist ja immer noch drückend schwül-heiss.

    Gruss Urs
     

    Attached Files:

  14. Urs2

    Urs2 Megabyte

    Hallo Peter,

    Es sind mir noch 2 mögliche Aenderungen eingefallen.
    Wenn gewünscht, liessen sie sich relativ einfach realisieren >

    1. Nur einer anstatt 15 Buttons >
    Man setzt die Markierung in eine beliebige Zelle in der zu kontrollierenden Spalte und klickt dann den Button.
    Es wird nur diese Spalte geprüft.

    2. Markieren aller fehlerhaften Zellen in einer Spalte, wenn die Ueberprüfung über den Button erfolgt.

    Gruss Urs
     
  15. pp17

    pp17 Byte

    Hallo Urs2,

    musste mich leider die letzten Tage um noch wichtigeres kümmern. Bin jetzt wieder voll da.
    Sieht mehr als super aus. So weit/professionell hatte ich gar nicht gedacht. Dafür erst einmal vielen Dank.
    Was ich nicht verstehe:
    1.)Leere Tabelle->bei Änderung Mastertabelle->Makro deaktivieren? Wo wird es deaktiviert?
    2.)Greift die Probantentabelle bei Prüfung auf die Mastertabelle zurück?

    Möchte mal meine Ideen/Wunsch/Befürchtungen niederschreiben:
    Da vermutlich die Mastertabelle-Datei.xls auf dem Server liegt, die Probandentabelle-Datei.xls dann aber auf dem jeweiligen Client (wird manuell verschoben oder zu Fuß vom Server zum Client per Stick getragen), kann man die jetzige Version so ändern, dass die Master_Tabelle und Leere_Tabelle ausgeblendet sind (nur über Passwort wieder eingeblendet werden kann) und nur der Button zu sehen ist (wegen der netten Kollegen) ? Wenn man jetzt die beiden Tabellen ausblendet und alles mit einem Passwort versieht klappt es nicht mit dem Button (zur Erzeugung der Probantendatei).
    Wäre es denkbar, dass in der Probanten-Datei auch die Mastertabelle ausgeblendet (mit Passwort) steckt? Dann könnten die Probanten die Datei mit nach Hause nehmen und dort weiter arbeiten?
     
  16. Urs2

    Urs2 Megabyte

    Hallo Peter,

    Da es mich selbst interessierte, hatte ich den Faden noch etwas weiter gesponnen.
    Schau Dir zuerst diese Datei einmal an, dann sehen wir weiter >>>
    > http://www.file-upload.net/download-1720655/LuG_Schulung_Master.xls.html

    zu 1 > Den Code auskommentieren, falls es überhaupt nötig sein wird...

    zu 2 > Aber sicher tut sie das, woher hätte sie denn sonst die richtigen Antworten?

    Wenn die Kandidaten die Tabelle zu Hause ausfüllen sollen, und dabei auch die Fehlermeldungen angezeigt werden müssen, müssen sie zwingend die Master-Tabelle auch zu Hause haben...

    Dann reicht ein Blattschutz nicht. Vor Excel2007 war es ein Kinderspiel, den Blattschutz automatisch knacken zu lassen...
    Nur wenn die Master.XLS selbst gesperrt ist, wird das Knacken komplizierter...

    In der Master kann man natürlich nur die Start-Seite anzeigen lassen, wenn die Kandidaten aber zu Hause alle Zeit haben... würde der Blattschutz nicht lange widerstehen können...

    Das Kopieren des versteckten Blattes geht nicht, die neue Mappe hätte dann ja kein sichtberes Blatt...
    Der Code des Buttons muss einfach vor dem Kopieren das Blatt anzeigen und nachher wieder verschwinden lassen.

    Gruss Urs
     
  17. pp17

    pp17 Byte

    Hallo Urs,
    manche Programme wären froh, wenn sie so etwas wie Deine 2.Version hätten.
    Mit einer geänderten 1.Version wäre ich zufrieden.
    Die Probanten sollen selber den Button auslösen, um so herauszufinden wo der Fehler liegt (Die 2.Version wäre interessant, wenn man als Prüfer den Button auslöst, um zu sehen, ob Fehler vorhanden sind).
    Vielleicht denke ich verkehrt herum... ...aber gibt es die Möglichkeit eine Tabelle auszublenden und mit einer weiteren eingeblendeten Tabelle bei Prüfung auf die ausgeblendete Tabelle zuzugreifen auch wenn alles Passwort geschützt ist, damit sich nicht der Probant die Lösungen einblendet. Dann könnte die Probantentabelle ohne Server auskommen. Auch wäre es egal, ob die Datei lokal in der Schule oder beim Probanten zu Hause liegt. Es muss auch kein absolut sicherer Passwortschutz vorhanden sein, denn wer besch... will, soll es. Die Retourkutsche kommt.
    Peter
     
  18. Urs2

    Urs2 Megabyte

    Hallo Peter,

    Wenn die Probanden selbst die Fehler suchen sollen, muss nur der Aktivier-Button entfernt werden.
    Ich hatte allerdings auch andere kleine Korrekturen in Version 2 geschrieben. Vor allem musste ich das Bearbeiten mit mehreren Zellen (Kopieren, Einfügen etc) abfangen und melden - die Prüfung funktioniert dann nicht.

    Die Sicherheit bei Excel ist immer ein Problem, bei Excel2007 soll das jetzt besser geworden sein...
    Um den Blattschutz zu knacken, gibt es fertige Makros im Netz, die das automatisch machen > echtes Kinderspiel.
    Für das Workbook und den VBA-Code muss man die Datei editieren, schon etwas schwieriger.
    Dann bleibt immer noch, die Datei in einem Editor anzuschauen. Nicht alles, aber vieles wird dort sichtbar.

    Ich habe jetzt die Buttons geändert und mit einem Automakro in der Master das Einblenden der anderen Blätter verhindert.
    So müssen Master und Tochter auf dem PC sein, der Proband erstellt die Tochter ja selbst...
    Wenn die Master nicht dort ist, erscheint bei jeder Eingabe die Meldung "nicht gefunden", ohne Prüfung...
    >>> http://www.file-upload.net/download-1724547/LuG_Schulung_Master-v3-an-pp17.xls.html

    Mit dem gleichen Automakro könnte man natürlich auch nur die Leere_Tabelle einblenden, die Tochter würde dann entfallen.
    Ob das gleich unsicher oder sicher genug wäre, weiss ich jetzt nicht...

    Du solltest jetzt mit dieser Datei weiter arbeiten, ich weiss auch nicht mehr, was ich sonst noch alles geändert/verbessert hatte.

    Schaue es an und mache Dir Deine Gedanken...

    Gruss Urs
     
  19. Urs2

    Urs2 Megabyte

    Hallo Peter,

    Mit der nachträglich eingebrachten Vorgabe, die Probanden dürften auch zu Hause mit der Anwendung arbeiten...
    ...wurde meiner Idee, mit den zwei Dateien, effektiv der Boden unter den Füssen weg gezogen...

    Hier ein Vorschlag mit nur einer Datei >>>
    > http://www.file-upload.net/download-1727320/LuG_Schulung_NurEineDatei.xls.html

    Ohne vertiefte Excel-Kenntnisse, scheint es mir schwierig, die verborgenen Resultate anzeigen zu lassen...
    ...wobei solche Kenner sich diesem Test wohl kaum unterziehen müssten...
    Aber >> Sicher ist Excel nie... vielleicht Excel2007... kenne ich aber nur vom Hören-Sagen.

    Oeffne die Datei und benutze den Button "Datei > Bearbeiten" >>
    > im Blatt "Rem" stehen die nötigen Erklärungen...

    Das Bearbeiten der Datei, durch Dich, wird dabei natürlich umständlich >> das ist der Preis für zusätzliche Sicherheit !

    Ob es wirklich so sicher ist, wie von mir erdacht ? >>> Teste das Ding !
    Versuche auf irgend eine, nicht schon erwähnte Art, die Resultate anzeigen zu lassen...

    Gruss Urs
     
  20. pp17

    pp17 Byte

    Hallo Urs,
    kann mich nur verbeugen und danke sagen. Vielen vielen Dank. Einfach traumhaft die letzte Version von Dir. So hatte ich es mir vorgestellt. Und sollten die Probanten damit unzufrieden sein, bekommen sie Deine vorletzte Version. Dann ist nix mehr mit zu Hause aufarbeiten.

    Peter
     
Thread Status:
Not open for further replies.

Share This Page