Thema Datum  Von Nutzer Rating
Antwort
Rot Zu viel Code....
22.11.2017 17:12:48 Holger
NotSolved
22.11.2017 17:46:17 Mackie
NotSolved
22.11.2017 17:51:33 Gast81683
NotSolved
22.11.2017 18:34:43 Gast80912
NotSolved
22.11.2017 20:30:09 AlterDresdner
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
22.11.2017 17:12:48
Views:
1010
Rating: Antwort:
  Ja
Thema:
Zu viel Code....

	
Hallo zusammen!
Ich habe ein dickes Problem.
Mein Projekt ist zu groß, d.h. ich muss den Code kompakter machen.
Ich habe mir vieles von euch abgeschaut bzw. angeeignet.
Jetzt habe ich einen Code, der Anwendung in knapp 100 Userformen finden soll.
Viele Sachen sind (denke ich) nicht optimal gelöst und könnten mit viel weniger Code
auskommen.

Zum Projekt:
Eine Userform pro Mitarbeiter.
Drei Multipages:

Page 1:
Verschiedene Schulungspunkte, die in Kombination mit Schulungsdaten in eine Tabelle geschrieben werden.
Verschiedene Abhängigkeiten zwischen Schulungsstatus, Datum, etc. .
Vielleicht nicht ganz optimal vom Code her, aber es läuft.

Page 2:
Schulungspunkte die mit einer weiteren Tabelle verknüpft sind. Hinter jedem Punkt sind 5 Varianten definiert (kein Stern, 1-4 Sterne, als Image), also knapp 180 Sterne und Varianten die definiert sind, alle einzeln. Hier ist der Hauptknackpunkt.
Genau das Laden der Sterne beim Öffnen der Form über das Activate-Ereignis.

Page 3:
Hinterlegen von Dateipfaden in eine Tabelle. Öffnen und/ oder Drucken dieser Dateien per One-Click. Funktioniert auch relativ gut.
Hier die beiden Codes: Teil 1: Laden der Bilder (Sterne) kein Klicken auf diese, und schreiben der Werte in Zellen der Tabelle. Der folgende Codeabschnitt also knapp 50 mal, mit allen .pictures und anderen Zellen...
Private Sub Image10o1_Click() 'Erster Stern Image10o1.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-100.ico") Image10o2.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-0.ico") Image10o3.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-0.ico") Image10o4.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-0.ico") Me.Repaint ThisWorkbook.Worksheets("Tabelle2").Range("M2").Value = 1 End Sub Private Sub Image10o1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 'Keine Sterne Image10o1.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-0.ico") Image10o2.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-0.ico") Image10o3.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-0.ico") Image10o4.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-0.ico") Me.Repaint ThisWorkbook.Worksheets("Tabelle2").Range("M2").Value = 0
End Sub Private Sub Image10o2_Click() 'Zweiter Stern Image10o1.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-100.ico") Image10o2.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-100.ico") Image10o3.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-0.ico") Image10o4.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-0.ico") Me.Repaint ThisWorkbook.Worksheets("Tabelle2").Range("M2").Value = 2 End Sub Private Sub Image10o3_Click() 'Dritter Stern Image10o1.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-100.ico") Image10o2.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-100.ico") Image10o3.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-100.ico") Image10o4.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-0.ico") Me.Repaint ThisWorkbook.Worksheets("Tabelle2").Range("M2").Value = 3 End Sub Private Sub Image10o4_Click() 'Vierter Stern Image10o1.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-100.ico") Image10o2.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-100.ico") Image10o3.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-100.ico") Image10o4.Picture = LoadPicture("C:\users\hoschild\desktop\Icojam-Onebit-Star-100.ico") Me.Repaint ThisWorkbook.Worksheets("Tabelle2").Range("M2").Value = 4 End Sub
Teil 2: Laden für jedes Sternenpaar bei "Userform Activate", also knapp 50 mal, nur mit anderen Zellen: If ThisWorkbook.Worksheets("tabelle2").Range("c2").Value = "1" Then Image1o1.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-100.ico") Image1o2.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-0.ico") Image1o3.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-0.ico") Image1o4.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-0.ico") ElseIf ThisWorkbook.Worksheets("tabelle2").Range("c2").Value = "2" Then Image1o1.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-100.ico") Image1o2.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-100.ico") Image1o3.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-0.ico") Image1o4.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-0.ico") ElseIf ThisWorkbook.Worksheets("tabelle2").Range("c2").Value = "3" Then Image1o1.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-100.ico") Image1o2.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-100.ico") Image1o3.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-100.ico") Image1o4.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-0.ico") ElseIf ThisWorkbook.Worksheets("tabelle2").Range("c2").Value = "4" Then Image1o1.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-100.ico") Image1o2.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-100.ico") Image1o3.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-100.ico") Image1o4.Picture = LoadPicture("C:\users\hoschild\desktop\icojam-onebit-star-100.ico") End If
Ich würde mich über eure Hilfe freuen. Gruß, Holger

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Zu viel Code....
22.11.2017 17:12:48 Holger
NotSolved
22.11.2017 17:46:17 Mackie
NotSolved
22.11.2017 17:51:33 Gast81683
NotSolved
22.11.2017 18:34:43 Gast80912
NotSolved
22.11.2017 20:30:09 AlterDresdner
NotSolved