Clever-Excel-Forum

Normale Version: Bitte um Unterstützung- Verständnis von Objectorientierter Programmierung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

zur Zeit versuche ich Objektorientierte Programmierung zu verstehen. 
Als Beispiel habe ich mein Dezernat für Excel als KlassenModell aufgeschrieben. 
Kennt sich jemand damit aus der die einmal Korrigiert. Ich freue mich über jede Kritik und Anregung.

Gruß
Stefan
Hallo Stefan,

Du hast also nun 4 Listen von Eigenschaften und Kriterien.

Was hast Du vor?
Was ist Deine Frage?
Da man als Fragensteller hier keinen Kurs darüber erwarten sollte, vielleicht hier?

Im alten Forum von Office-Lösung findest Du hier unten beginnend das Thema "Was sind eigentlich Klassen?" - weitere Kapitel (alle von "isabelle") stehen dann davor (weil neueres im Forum weiter vorn steht).
Hallo, vielen Dank für die Antwort.

Mein Ziel ist es Objektorientierte Programmierung zu verstehen.

Ich möchte damit eine Abwesenheitsliste gestallten, meine Arbeit organisieren.
Mit Access scheitere ich weil ich das Prinzip nicht so ganz verstehe.
2 tabellen mit einander zu verknüpfen ist ja einfach. Aber mein Problem ist, dass ich als Anfänger meine Arbeitswelt abbilden muss. Das ist etwas schwer.

Daher Excel. Das kann ich etwas besser. Bislang habe ich die Abwesenheitstabelle ohne Objekte (z.B. Mitarbeiter) erstellt.

Ich habe keine dem ich meine Planungsversuche zeigen kann, der mir eine Rückmeldung gibt.

Das ist mein Anliegen.

Gruß
Stefan
Könnte es sein, dass Du gerade OOP und relationales Datenmodell durcheinander bekommst? Da Du schon Access erwähnst.

Wir hier sind in der Mehrzahl auch in OOP nicht sonderlich bewandert, vermute ich.

Ein Mitarbeiter hat ein Alter und einen Wohnort (1:1), aber möglicherweise mehrere Telefonnummern und ganz viele Kranktage und Urlaubseinreichungen (1:N)

Ein Artikel findet sich in vielen verschiedenen Rechnungen wieder, und in einer Rechnung sind meistens mehrere verschiedene Artikel (M:N).

Und so weiter ...
Hallo Lupo.

Vielen Dank für die schöne Erklärung im Forum zum Thema "Was Klassen sind".

Vielleicht liest die Erstellerin das hier:)

Bislang glaube ich zu verstehen, dass wenn man gut Programmieren möchte das Problem in Objekten mit Eigenschaften und Methoden abbildet.
Vorteil soll sein, dass der Code nicht direkt zugänglich ist.

Aktuell habe ich die Abwesenheitsliste mittels jeder Menge For-Each-Schleifen sowie With-Selection-Schleifen gelöst. 
Ich suche nach einer Möglichkeit das effektiver zu gestallten. Bislang ist, zum Beispiel, ein Hinzufügen oder Entfernen eines Mitarbeiters etwas umständlich. 

Ich vermute das Access das bessere Werkzeug ist, aber ich habe keinerlei Erfahrung in Datenbankdesign. 
Also bleibt nur Excel. 

Das reicht ja schon voll aus. Viele Daten kommen da pro Jahr nicht zusammen. 

Beim OOP Habich nur 1:1 Beziehungen. Auch gut. Das Modell muss halt dementsprechend aufgestellt werden. Daher ist eine gute Dokumentation und CodePlanung unerlässlich. Aber wenn man noch nie Objekte geschrieben und geplant hat...:) Muss man jemanden Fragen der es kann ob man auf dem richtigen Weg ist.

Das ist im Moment mein Hauptproblem.
Was ist Deine Ausbildung? Falls man so direkt fragen darf.
Hast Du schon mal "klassisch" programmiert?
In welchen Sprachen?
Wie kommst Du darauf, dass OOP Dein Ding ist?
Wenn ich mir Dein Word.Doc so anschaue, habe ich den Verdacht, dass Dir ein relationales Modell (Folge der Normalisierung) auch nicht so viel sagt.
Ich habe Kommunikationselektronik studiert:)(noch auf Diplom(FH))
Da haben wir in Assembler programmiert.

Ich schätze mich so ein, dass mein Problem ist, dass ich mich in meinen Gedanken verrennen kann. 
Über die Normalformen habe ich schon was gelesen. 
Ich konnte nur noch nie überprüfen ob ich das auch verstanden habe. Da meine Versuche sich leider auf ein komplexes Problem beziehen. 
Die Beispiele sind meist einfach zu verstehen.
Hallöchen,

Wenn man z.B. mit diversen Daten arbeitet, könnte man schauen, ob sich da Arrays oder benutzerdefinierte Typen oder Collections oder ein Mix daraus anbietet.

Ich könnte mir vorstellen, für die Mitarbeiter Typen zu verwenden, sind ja auch bestimmt ein paar darunter Smile

'benutzerdefinierter type MyMitarbeiter
Public Type MyMitarbeiter
    MyGeburt As Date
    MyName As String
    MyTelefonr(2) As Variant
End Type

Public Sub TypenFestlegen()
Dim FleissigeMitarbeiter(0) As MyMitarbeiter
FleissigeMitarbeiter(0).MyName = "Meier"
FleissigeMitarbeiter(0).MyGeburt = Date
FleissigeMitarbeiter(0).MyTelefonr(0) = "0375-AufArbeit"
FleissigeMitarbeiter(0).MyTelefonr(1) = "0365-ZuHause"
FleissigeMitarbeiter(0).MyTelefonr(2) = "0152-Handy"
Debug.Print FleissigeMitarbeiter(0).MyName
End Sub

Man kann natürlich auch einfach nur mit dem Blattobjekt arbeiten oder die Daten direkt in ein Array einlesen. Oder man definiert sich eine Klasse Mitarbeiter ... (wo eventuell nicht nur Klasse Mitarbeiter drin sind Smile

Viele Wege führen in den Osten, Rom liegt ja dort (MVP) Smile Sorry, ich will's nicht verschweigen, in NRW gibt es auch eins ...