Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Tipps für VBA - Vereinfachung

Frage Microsoft Microsoft Office

Mitglied: xaumichi

xaumichi (Level 1) - Jetzt verbinden

29.07.2010 um 09:32 Uhr, 4287 Aufrufe, 26 Kommentare

Also hab ein VBA - Programm mit Change()-Ereignisse (2 Ereignisse mit if - Entscheidung, welches von beiden ausgeführt wird).
Wenn ich jedes einzeln ausführe, dass ist es kein Problem und beide funktionieren ohne Probleme.

Wenn nun beide im Change() sind, stürzt das Programm immer ab.

Ist es möglich, dass eines der Programme zu lang ist (hat ca. 250 Zeilen, mit Formatierungen und Rechnungen)

Dazu meine Frage:

Gibt es irgendwelche "Regeln" wie man ein VBA - Programm verkürzen kann?

Natürlich ist es schwer zu sagen, was man nun bei mir vereinfachen könnte, aber vl gibt es irgendwelche allgemeine Regeln.
Es wäre auch kein Problem, das betreffende File zu versenden, um sich den Code genauer anschauen zu können. (da ich den Code nicht umbedingt hier posten möchte, weil er, glaub ich, einfach zu lang ist)

LG Mike
Mitglied: 76109
29.07.2010 um 10:27 Uhr
Hallo xaumichi!

Wäre vielleicht hilfreich, wenn Du mal Deinen Code postest, damit wir auch wissen, worum es eigentlich geht. Möglicherweise kann man den Code dann auf 1/10 kürzen?

Gruß Dieter
Bitte warten ..
Mitglied: xaumichi
29.07.2010 um 10:33 Uhr
hm...naja...sind halt knapp 400 Zeilen...ich weiß nicht, ob das hier erlaubt ist, einen so riesigen post zu machen?!
ansonsten wärs mir egal.

01.
Private Sub Worksheet_Change(ByVal Target As Range) 
02.
 
03.
'Allgemeine Formatierungen, alles Farben werden definiert, damit sie in älteren Versionen richtig erkannt werden, durch RGB-Werte 
04.
'------------------------------------------------------------ 
05.
Range("G8").Font.Color = RGB(255, 151, 151) 
06.
Range("B10").Font.Color = RGB(49, 132, 132) 
07.
Range("A22", "N22").Interior.Color = RGB(192, 192, 192) 
08.
Range("A30", "N30").Interior.Color = RGB(192, 192, 192) 
09.
Range("A38", "N38").Interior.Color = RGB(192, 192, 192) 
10.
Range("A46", "N46").Interior.Color = RGB(192, 192, 192) 
11.
Range("H13", "K13").Interior.Color = RGB(178, 255, 198) 
12.
Range("H14", "K14").Interior.Color = RGB(178, 255, 198) 
13.
Range("L4", "N4").Font.Color = RGB(192, 192, 192) 
14.
Range("L5", "N5").Font.Color = RGB(192, 192, 192) 
15.
Range("L6", "N6").Font.Color = RGB(192, 192, 192) 
16.
Range("G7").Font.Color = RGB(217, 217, 217) 
17.
Range("G9").Font.Color = RGB(217, 217, 217) 
18.
Range("G10").Font.Color = RGB(217, 217, 217) 
19.
Range("L11").Font.Color = RGB(217, 217, 217) 
20.
Range("M12").Font.Color = RGB(217, 217, 217) 
21.
Range("J14", "N14").Font.Color = RGB(192, 192, 192) 
22.
'--------------------------------------------------------------------------- 
23.
 
24.
Dim rng1 As Range 
25.
Dim rng2 As Range 
26.
Dim isect As Range 
27.
 
28.
Set rng1 = Range("A6:N53") 
29.
Set rng2 = Range("A1:N5") 
30.
Set isect = Application.Intersect(Target, rng1) 'Range1 suchen 
31.
 
32.
If Not (isect Is Nothing) Then 
33.
 
34.
 
35.
'Überstunden gesamt formatieren 
36.
 '------------------------------------------------------------------ 
37.
 If IsError(Range("W23")) Then 
38.
    MsgBox ("Zeitfehler!" & vbCrLf & vbCrLf & "Bei der Eingabe der Zeiten ist ein Fehler aufgetreten!" & vbCrLf & "Bitte löschen Sie alle Werte der zuletzt bearbeiteten Zeile und tragen Sie die Zeiten erneut ein!"), vbCritical 
39.
          
40.
 Else 
41.
  
42.
 If Range("W23") < -0.0001 Or Range("V18") < -0.0001 Then 
43.
    Range("F10").Font.Color = RGB(255, 0, 0) 
44.
 Else 
45.
    If Range("W23") > 0.0001 Or Range("V18") > 0.0001 And Range("W23") <> 0 Then 
46.
       Range("F10").Font.Color = RGB(0, 255, 0) 
47.
     Else 
48.
        Range("F10").Font.Color = RGB(0, 0, 0) 
49.
     End If 
50.
  End If 
51.
 
52.
'Überstundenübersichtstabelle, Farbformatierung! 
53.
'------------------------------------------------------------------- 
54.
If Range("F9") <= 0 Then                                		'"Minus" bei "Auszahlung" ROT/WEISS 
55.
    Range("E9").Font.Color = RGB(255, 255, 255) 
56.
Else 
57.
    Range("E9").Font.Color = RGB(255, 0, 0) 
58.
End If 
59.
 
60.
If Range("V19") < -0.0001 Or Range("F9") > 0 Then       	'"Wert" bei "Auszahlung" ROT/SCHWARZ 
61.
    Range("F9").Font.Color = RGB(255, 0, 0) 
62.
Else 
63.
    Range("F9").Font.Color = RGB(0, 0, 0) 
64.
End If 
65.
 
66.
If Range("V16") < -0.0001 Then                          		'"Wert Überstunden akt. Monat Rot/SCHWARZ 
67.
    Range("F8").Font.Color = RGB(255, 0, 0) 
68.
Else 
69.
    Range("F8").Font.Color = RGB(0, 0, 0) 
70.
End If 
71.
 
72.
If Range("V16") < -0.0001 Then 
73.
    Range("F8").Font.Color = RGB(255, 0, 0) 
74.
Else 
75.
    Range("F8").Font.Color = RGB(0, 0, 0) 
76.
End If 
77.
 
78.
If Range("Z4") - Range("V17") > 0.0001 And Range("V16") > 0.0001 Then 
79.
    Range("F8").Font.Color = RGB(0, 255, 0) 
80.
End If 
81.
 
82.
If Range("V15") > 0.0001 Then 
83.
    Range("F7").Font.Color = RGB(0, 255, 0) 
84.
Else 
85.
    If Range("V15") < -0.0001 Then 
86.
        Range("F7").Font.Color = RGB(255, 0, 0) 
87.
    Else 
88.
        Range("F7").Font.Color = RGB(0, 0, 0) 
89.
    End If 
90.
 End If 
91.
   
92.
'Tagesformatierung 1. Tag 
93.
'-------------------------------------------------------------------- 
94.
 
95.
'Sperren der Zeilen, wenn kein Datum 
96.
'-------------------------------------------------------------------- 
97.
    If Range("B15") = 0 Then                                           		 'Wenn kein Datum eingetrage ist 
98.
        Range("C15", "G15").ClearContents                              	 'Löscht Zelleninhalte 
99.
        Range("H15", "I15").ClearContents                               	 'Löscht Zelleninhakte 
100.
        Range("C15", "N15").Locked = True                               	'Sperren aller Zellen,  Sicherheitsmaßnahme 
101.
        Range("A15", "N15").Interior.Color = RGB(192, 192, 192)         'Zeile GRAU 
102.
        Range("A15").Font.Color = RGB(216, 216, 216)                   	'Wochentag-Schrift HELLGRAU 
103.
        Range("C15", "N15").Font.Color = RGB(192, 192, 192)             	'Schrift wird GRAU 
104.
        Range("C15", "K15").Borders(xlInsideVertical).LineStyle = wdLineStyleNone 
105.
        Exit Sub 
106.
         
107.
    End If 
108.
 
109.
    If Range("B15") <> 0 Then 
110.
       Range("A15", "N15").Interior.Color = RGB(255, 255, 255)          'Zeile WEISS 
111.
       Range("H15", "K15").Interior.Color = RGB(178, 254, 198)          'Sonderfehlzeiten LINDGRÜN 
112.
       Range("A15").Font.Color = RGB(0, 0, 0)                           	'Wochentag-Schrift SCHWARZ 
113.
       Range("C15", "I15").Locked = False                               	'Entsperren aller Zellen 
114.
       Range("J15", "K15").Font.Color = RGB(178, 254, 198)             	'Schriftfarbe wird wieder angepasst, 								 LINDGRÜN 
115.
       Range("L15", "N15").Font.Color = RGB(255, 255, 255)              	'Schriftfarbe WEISS 
116.
       Range("C15", "I15").Font.Color = RGB(0, 0, 0)                    	'Schriftfarbe SCHWARZ 
117.
   
118.
'einblenden aller formatieren Rahmen 
119.
'-----------------------------------------------------------      
120.
    With Range("C15:G15").Borders(xlEdgeLeft) 
121.
        .LineStyle = xlContinuous 
122.
        .ColorIndex = 0 
123.
        .TintAndShade = 0 
124.
        .Weight = xlMedium 
125.
    End With 
126.
    With Range("C15:G15").Borders(xlEdgeTop) 
127.
        .LineStyle = xlContinuous 
128.
        .ColorIndex = 0 
129.
        .TintAndShade = 0 
130.
        .Weight = xlMedium 
131.
    End With 
132.
    With Range("C15:G15").Borders(xlEdgeBottom) 
133.
        .LineStyle = xlContinuous 
134.
        .ColorIndex = 0 
135.
        .TintAndShade = 0 
136.
        .Weight = xlThin 
137.
    End With 
138.
    With Range("C15:G15").Borders(xlEdgeRight) 
139.
        .LineStyle = xlContinuous 
140.
        .Color = -16727809 
141.
        .TintAndShade = 0 
142.
        .Weight = xlMedium 
143.
    End With 
144.
    With Range("C15:G15").Borders(xlInsideVertical) 
145.
        .LineStyle = xlContinuous 
146.
        .ColorIndex = 0 
147.
        .TintAndShade = 0 
148.
        .Weight = xlThin 
149.
    End With 
150.
 
151.
    With Range("H15:I15").Borders(xlEdgeLeft) 
152.
        .LineStyle = xlContinuous 
153.
        .Color = -16727809 
154.
        .TintAndShade = 0 
155.
        .Weight = xlMedium 
156.
    End With 
157.
    With Range("H15:I15").Borders(xlEdgeTop) 
158.
        .LineStyle = xlContinuous 
159.
        .ColorIndex = 0 
160.
        .TintAndShade = 0 
161.
        .Weight = xlMedium 
162.
    End With 
163.
    With Range("H15:I15").Borders(xlEdgeBottom) 
164.
        .LineStyle = xlContinuous 
165.
        .ColorIndex = 0 
166.
        .TintAndShade = 0 
167.
        .Weight = xlThin 
168.
    End With 
169.
    With Range("H15:I15").Borders(xlEdgeRight) 
170.
        .LineStyle = xlContinuous 
171.
        .ThemeColor = 2 
172.
        .TintAndShade = 0 
173.
        .Weight = xlMedium 
174.
    End With 
175.
    With Range("H15:I15").Borders(xlInsideVertical) 
176.
        .LineStyle = xlContinuous 
177.
        .ThemeColor = 2 
178.
        .TintAndShade = 0 
179.
        .Weight = xlThin 
180.
    End With 
181.
           
182.
       If Range("K15") = "Zeit!" Then                                         'Eingabefehler --> MINUS wird "ausgeblendet" 								(selbe Farbe als Hintergrund) 
183.
          Range("J15").Font.Color = RGB(178, 254, 198)                        '"Minus" wird LINDGRÜN 
184.
       End If 
185.
     
186.
    If IsError(Range("N15")) Then 
187.
        
188.
    Else 
189.
     
190.
    If Range("O15") = x Then 
191.
        Range("N15").Font.Color = RGB(255, 255, 255) 
192.
    End If 
193.
    End If 
194.
     
195.
 If Range("K15") > 0.0001 And Range("K15") <> "Zeit!" Then              'Wenn gültige Zeit eingetragen wird, 
196.
 								    MINUS auf ROT 
197.
    Range("J15").Font.Color = RGB(255, 0, 0) 
198.
    Range("K15").Font.Color = RGB(255, 0, 0)                            		'MINUS wird ROT 
199.
 End If 
200.
     
201.
 If Range("K15") = "Zeit!" Then 
202.
    Range("K15").Font.Color = RGB(255, 0, 0) 
203.
 End If 
204.
  
205.
'Ersatz, Std./Tag-Formatierung 
206.
'------------------------------------------------------- 
207.
 If Range("L15") > 0 Then 
208.
    Range("L15").Font.Color = RGB(0, 0, 0) 
209.
 End If 
210.
  
211.
 If Range("L15") = "Zeit fehlt!" Then 
212.
    Range("L15").Font.Color = RGB(255, 0, 0) 
213.
 End If 
214.
  
215.
 If Range("L15") = "Eingabe!" Then 
216.
    Range("L15").Font.Color = RGB(255, 0, 0) 
217.
 End If 
218.
  
219.
 If Range("M15") >= 0 And Range("B15") > 0 Then 
220.
    Range("M15").Font.Color = RGB(255, 255, 255) 
221.
 End If 
222.
         
223.
         
224.
'Formatierung für +/- Stunden (Überstunden) 
225.
'------------------------------------------------------------ 
226.
  
227.
If IsError(Range("N15")) Then 
228.
   Range("N15").Font.Color = RGB(255, 255, 255) 
229.
 
230.
Else 
231.
 
232.
  If Range("L15") = "Zeit fehlt!" Then 
233.
     Range("N15").Font.Color = RGB(255, 255, 255) 
234.
  Else 
235.
     
236.
  Select Case Range("O15").Value 
237.
 
238.
    Case Is > 0.0001 
239.
    Range("N15").Font.Color = RGB(0, 255, 0) 
240.
     
241.
    Case Is = x And Range("O15") <> 0 
242.
    Range("N15").Font.Color = RGB(255, 255, 255) 
243.
     
244.
    
245.
    Case Is < -0.0001 
246.
    Range("N15").Font.Color = RGB(255, 0, 0) 
247.
    Range("M15").Font.Color = RGB(255, 0, 0) 
248.
    
249.
    Case Else 
250.
    Range("N15").Font.Color = RGB(0, 0, 0) 
251.
     
252.
         
253.
  End Select 
254.
  End If 
255.
  End If 
256.
   
257.
'Arbeitspausen Freilassen/Sperren 
258.
 '----------------------------------------------------------------------- 
259.
 If Range("L15") > 0 And Range("D15") = 0 And Range("F15") = 0 And Range("G15") > 0 Then 
260.
    Range("D15", "F15").Interior.Color = RGB(192, 192, 192) 
261.
    Range("D15", "F15").Locked = True 
262.
 End If 
263.
 '---------------------------------------------------------------------------------------- 
264.
 
265.
End If 
266.
 
267.
End If 
268.
    Exit Sub 'Fertig 
269.
End If 
270.
 
271.
'Automatisches Schreiben der Datumsachen bei "Auszahlung" usw. 
272.
Set isect = Application.Intersect(Target, rng2) 'Range2 suchen 
273.
If Not (isect Is Nothing) Then 
274.
   
275.
    Select Case Range("C5").Value 
276.
        Case "JÄNNER" 
277.
            Range("D7").Value = "Überstd Dez." 
278.
            Range("B8").Value = "Überstd. Jän. " & Range("E5") 
279.
            Range("D9").Value = "Auszahlung. Dez." 
280.
            Exit Sub 
281.
                         
282.
        Case "FEBRUAR" 
283.
            Range("D7").Value = "Überstd Jän." 
284.
            Range("B8").Value = "Überstd. Feb. " & Range("E5") 
285.
            Range("D9").Value = "Auszahlung. Jän." 
286.
            Exit Sub 
287.
             
288.
        Case "MÄRZ" 
289.
            Range("D7").Value = "Überstd Feb." 
290.
            Range("B8").Value = "Überstd. März. " & Range("E5") 
291.
            Range("D9").Value = "Auszahlung. Feb." 
292.
            Exit Sub 
293.
             
294.
        Case "APRIL" 
295.
            Range("D7").Value = "Überstd März." 
296.
            Range("B8").Value = "Überstd. April. " & Range("E5") 
297.
            Range("D9").Value = "Auszahlung. März." 
298.
            Exit Sub 
299.
             
300.
        Case "MAI" 
301.
            Range("D7").Value = "Überstd April." 
302.
            Range("B8").Value = "Überstd. Mai. " & Range("E5") 
303.
            Range("D9").Value = "Auszahlung. April." 
304.
            Exit Sub 
305.
             
306.
        Case "JUNI" 
307.
            Range("D7").Value = "Überstd Mai." 
308.
            Range("B8").Value = "Überstd. Juni. " & Range("E5") 
309.
            Range("D9").Value = "Auszahlung. Mai." 
310.
            Exit Sub 
311.
             
312.
        Case "JULI" 
313.
            Range("D7").Value = "Überstd Juni." 
314.
            Range("B8").Value = "Überstd. Juli. " & Range("E5") 
315.
            Range("D9").Value = "Auszahlung. Juni." 
316.
            Exit Sub 
317.
             
318.
        Case "AUGUST" 
319.
            Range("D7").Value = "Überstd Juli." 
320.
            Range("B8").Value = "Überstd. Aug. " & Range("E5") 
321.
            Range("D9").Value = "Auszahlung. Juli." 
322.
            Exit Sub 
323.
             
324.
        Case "SEPTEMBER" 
325.
            Range("D7").Value = "Überstd Aug." 
326.
            Range("B8").Value = "Überstd. Sept. " & Range("E5") 
327.
            Range("D9").Value = "Auszahlung. Aug." 
328.
            Exit Sub 
329.
             
330.
        Case "OKTOBER" 
331.
            Range("D7").Value = "Überstd Sept." 
332.
            Range("B8").Value = "Überstd. Okt. " & Range("E5") 
333.
            Range("D9").Value = "Auszahlung. Sept." 
334.
            Exit Sub 
335.
             
336.
        Case "NOVEMBER" 
337.
            Range("D7").Value = "Überstd Okt." 
338.
            Range("B8").Value = "Überstd. Nov. " & Range("E5") 
339.
            Range("D9").Value = "Auszahlung. Okt." 
340.
            Exit Sub 
341.
             
342.
        Case "DEZEMBER" 
343.
            Range("D7").Value = "Überstd Nov." 
344.
            Range("B8").Value = "Überstd. Dez. " & Range("E5") 
345.
            Range("D9").Value = "Auszahlung. Nov." 
346.
            Exit Sub 
347.
             
348.
        Case Else 
349.
            Range("D7").Value = "Überstd VORMMMM." 
350.
            Range("B8").Value = "Überstd. MMMM. " & Range("E5") 
351.
            Range("D9").Value = "Auszahlung. VORMMMM." 
352.
            
353.
     End Select 
354.
         
355.
    Exit Sub 'Fertig 
356.
   
357.
End If 
358.
End Sub´
Bitte warten ..
Mitglied: 76109
29.07.2010 um 11:38 Uhr
Hallo xuamichi!

Und jetzt bitte den Code noch in Code-Tags setzen
<$code>
Dein Code
</$code>
ohne Dollarzeichen

Gruß Dieter
Bitte warten ..
Mitglied: 76109
29.07.2010 um 12:26 Uhr
Hallo xaumichi!

Hier mal ein Beispiel, wie Du in Deinem Change-Code die 192er Farben mit nur einer Codezeile initialisierst:
01.
Range("A22:N22,A30:N30,A38:N38,A46:N46").Interior.Color = RGB(192, 192, 192)
Gruß Dieter

PS. Das gleiche Prinzip kannst Du auch bei den Borders anwenden....
Bitte warten ..
Mitglied: 76109
29.07.2010 um 12:40 Uhr
Hallo nochmal!

Und hier der Code, wie Du das Change-Erreignis austricksen kannst:
01.
 
02.
Dim NoChange As Boolean 
03.
 
04.
Private Sub Worksheet_Change(ByVal Target As Range) 
05.
 
06.
    If NoChange = True Then Exit Sub 
07.
     
08.
    NoChange = True 
09.
     
10.
   'Hier der Code der ausgeführt werden soll, bei dem das Change-Erreignis übersprungen werden soll 
11.
     
12.
    NoChange = False 
13.
 
14.
   'Hier der Code der beim Change-Erreignis ausgeführt werden soll 
15.
 
16.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: xaumichi
29.07.2010 um 13:01 Uhr
hm...danke mal dafür!

Hab die zeilen mal zusammengekürzt, hat jedoch nichts geholfen.

hm....die letzten zeilen die du geschickt hast versteh ich irgendwie nicht.... :-S

LG mike
Bitte warten ..
Mitglied: TsukiSan
29.07.2010 um 13:02 Uhr
Hallo xaumichi

Die ganzen Exit Sub
01.
        Case "SEPTEMBER" 
02.
            Range("D7").Value = "Überstd Aug." 
03.
            Range("B8").Value = "Überstd. Sept. " & Range("E5") 
04.
            Range("D9").Value = "Auszahlung. Aug." 
05.
            Exit Sub
in den einzelnen Case-Abfragen kannst du auch entfernen.
Am Ende (direkt nach der Select-Case-Anweisung) steht es ja schon da.

Das spart auch noch ein paar Zeilen.

Gruss
Tsuki
Bitte warten ..
Mitglied: 76109
29.07.2010 um 13:09 Uhr
Hallo Mike!

Was meinst Du jetzt mit "hat nichts geholfen"?

Gruß Dieter
Bitte warten ..
Mitglied: xaumichi
29.07.2010 um 13:13 Uhr
@ TsukiSan: jup, habe ich schon gemacht!

@ didi1954: Ich habe die Range zusammengefasst, aber das Programm stürzt noch immer ab.

Leider weiß ich nicht wieso!
Ist da doch wo ein Programmierfehler (hat es was mit den 2 Ereignissen zu tun) oder sind die Procedures einfach nur zu lang??
Bitte warten ..
Mitglied: 76109
29.07.2010 um 13:21 Uhr
Hallo Mike!

Achso, da habe ich jetzt noch garnicht nachgeschaut. War jetzt irgendwie zu sehr auf's optimieren fixiert. Aber an der Code-Länge liegt es sicherlich nicht

Mal sehen, ob ich einen Fehler entdecke? Kann etwas dauern!

Gruß Dieter
Bitte warten ..
Mitglied: 76109
29.07.2010 um 13:27 Uhr
Hallo Mike!

Tausch mal die Word-Konstante "wdLineStyleNone" in Zeile 104 gegen "xlNone" aus

Und was soll z.B. in Zeile 190 "= x Then" bedeuten, Textzeichen "x" oder was?

in Zeile 196 fehlt das Kommentarzeichen vor dem "MINUS auf Rot" bzw hat sich wohl ein Zeilenvorschub eingeschlichen?

Gruß Dieter
Bitte warten ..
Mitglied: xaumichi
29.07.2010 um 13:33 Uhr
jup, das X (als Text) wird bei einer berechnung ausgegeben, wenn ein wahrheitsabfrage negativ wird . --> brauch ich bei einer Berechnung
Bitte warten ..
Mitglied: 76109
29.07.2010 um 13:36 Uhr
Hallo Mike!

Dann schreib es auch als Text mit Anführungszeichen = "x" Then...

Gruß Dieter
Bitte warten ..
Mitglied: xaumichi
29.07.2010 um 13:51 Uhr
Hm...okey!

Und hättest du einen groben Fehler gefunden, der den Absturz verursachen könnte?
Bitte warten ..
Mitglied: 76109
29.07.2010 um 17:28 Uhr
Hallo Mike!

Habe grad nochmal durchgeschaut.

Füge in Zeile 2 diese Codezeile ein:
01.
    If Target.Count > 1 Then Exit Sub
Dadurch wird verhindert, das ein erneutes Change-Erreignis mit mehr als einer Zelle bearbeitet wird. Codezeile 98 und 99 wären z.B. so ein Fall und führen letztendlich zu einem Absturz.

Ansonsten musst Du sicherstellen, dass Deine Change-Routinen nur ausgeführt wird, wenn die Variable Target nur 1 Zell-Adresse enthält und keine Zell-Bereiche. Das gilt für Codezeilen genauso, wie für Aktionen im Tabellenblatt, wenn z.B. mehrere Zellen markiert sind und Du die Entfernen-Taste betätigst.

Die Verwendung von Erreignis-Aufrufe haben so Ihre Seiteneffekte und Tücken, die es zu berücksichtigen gilt

Bei Änderungen des Zellinhaltes innerhalb von Codezeilen, kannst Du mit meinem Beispiel der NoChange-Methode einen ungewollten erneuten Erreignis-Aufruf einfach verhindern bzw abbrechen.

Gruß Dieter
Bitte warten ..
Mitglied: xaumichi
29.07.2010 um 19:58 Uhr
*hihi* cool, jetzt funktionierts so, wie ich das wollte!

Danke schön für die tatkräftige Unterstützung!!

LG Mike
Bitte warten ..
Mitglied: 76109
29.07.2010 um 21:48 Uhr
Hallo Mike!

Yepp, gern geschehen

Gruß Dieter
Bitte warten ..
Mitglied: 76109
30.07.2010 um 19:59 Uhr
Hallo Mike!

Zu dem Thema Zellfarben ist mir noch eingefallen, dass ein direktes beliebiges setzen per RGB-Werte für Zellen nicht funktioniert. Für jede Zellfarbe muss ein ColorIndex existieren. D.h. Excel akzeptiert nur Zellfarben, die in der Workbook-Farbtabelle vorhanden sind (Optionen, Farben), die allerdings geändert werden können.

Wenn Du nun versuchst, bei einer Zelle einen beliebigen Farbwert festzulegen, dann ändert Excel automatisch die Farbe auf eine Farbe mit einem gültigen ColorIndex, wobei dann offensichtlich per Vergleich eine Farbe gewählt wird, die dem Farbwert am ähnlichsten ist.

Das bedeutet, wenn Du eine vorliebe für bestimmte Farben hast, dann musst Du Workbook-Farbtabelle entsprechend anpassen.

Mit nachfolgendem Codebeispiel kannst Du die Workbook-Farbtabelle auslesen, wobei die ColorIndex-Nummern nicht fortlaufend den Farben in der Tabelle zugeordnet sind. Von daher, wird die Farbe in Range("A1:B2") des aktiven Tabellenblatts angezeigt, der ColorIndex und die Hex- und RGB-Werte werden per MsgBox ausgegeben, wobei die Hexwerte als BGR gelesen werden müssen.
01.
Sub ReadWorkbookColorTable() 
02.
    Dim Farbtabelle As Variant, Index As Integer, strHEX As String, strRGB As String 
03.
 
04.
    Farbtabelle = ActiveWorkbook.Colors 	'Farbtabelle ist Long-Array von 1 - 56 
05.
     
06.
    For Index = 1 To UBound(Farbtabelle) 
07.
        Range("A1:B2").Interior.ColorIndex = Index 
08.
        strHEX = Right("00000" & Hex(Farbtabelle(Index)), 6) 
09.
        strRGB = Right("00" & CInt("&H" & Mid(strHEX, 5, 2)), 3) & "," & _ 
10.
                 Right("00" & CInt("&H" & Mid(strHEX, 3, 2)), 3) & "," & _ 
11.
                 Right("00" & CInt("&H" & Mid(strHEX, 1, 2)), 3) 
12.
        If MsgBox("ColorIndex " & Right("0" & Index, 2) & ": HEX(" & strHEX & ") RGB (" & strRGB & ")", vbOKCancel) = vbCancel Then Exit For 
13.
    Next 
14.
End Sub
Beispiel zum setzen von ColorIndex 35 (Hell/Lindgrün):
01.
Sub WriteWoorkbookColorTable() 
02.
     
03.
    ActiveWorkbook.Colors(35) = RGB(178, 255, 198) 
04.
     
05.
    'oder 
06.
     
07.
    ActiveWorkbook.Colors(35) = &HC6FFB2 
08.
End Sub
Demnach kannst Du in Deinem Code anstatt der RGB-Werte den ColorIndex verwenden und die Workbook-Farben entsprechen initialisieren, wobei ich das über die Workbook_Open-Funktion in "Diese Arbeitsmappe" machen würde z.B.
01.
Private Sub Workbook_Open() 
02.
    With ActiveWorkbook 
03.
        .Colors(3) = RGB(255, 0, 0) 
04.
        .Colors(35) = RGB(178, 255, 198) 
05.
       '..... 
06.
    End With 
07.
End Sub
Deinen Code habe ich mal etwas bearbeitet, in der Hoffnung, dass keine Fehler drin sind
01.
Option Explicit 
02.
 
03.
Dim NoChange As Boolean 
04.
 
05.
Private Sub Worksheet_Change(ByVal Target As Range) 
06.
 
07.
    If Target.Count > 1 Or NoChange = True Then Exit Sub 
08.
     
09.
    Range("A22:N22,A30:N30,A38:N38,A46:N46").Interior.Color = RGB(192, 192, 192) 
10.
    Range("H13:K14,A30:N30,A38:N38,A46:N46").Interior.Color = RGB(178, 255, 198) 
11.
    Range("B10").Font.Color = RGB(49, 132, 132) 
12.
    Range("G7,G9,G10,L11,M12").Font.Color = RGB(217, 217, 217) 
13.
    Range("G8").Font.Color = RGB(255, 151, 151) 
14.
    Range("L4:N6,J14:N14").Font.Color = RGB(192, 192, 192) 
15.
 
16.
    Dim rng1 As Range 
17.
    Dim rng2 As Range 
18.
    Dim isect As Range 
19.
     
20.
    Set rng1 = Range("A6:N53") 
21.
    Set rng2 = Range("A1:N5") 
22.
    Set isect = Application.Intersect(Target, rng1)     'Range1 suchen 
23.
 
24.
    If Not isect Is Nothing Then 
25.
        If IsError(Range("W23")) Then 
26.
           MsgBox ("Zeitfehler!" & vbCrLf & vbCrLf & "Bei der Eingabe der Zeiten ist ein Fehler aufgetreten!" & vbCrLf & "Bitte löschen Sie alle Werte der zuletzt bearbeiteten Zeile und tragen Sie die Zeiten erneut ein!"), vbCritical 
27.
        Else 
28.
            If Range("W23") < -0.0001 Or Range("V18") < -0.0001 Then 
29.
               Range("F10").Font.Color = 3  'RGB(255, 0, 0) 
30.
            ElseIf Range("W23") > 0.0001 Or Range("V18") > 0.0001 And Range("W23") <> 0 Then 
31.
                Range("F10").Font.Color = RGB(0, 255, 0) 
32.
            Else 
33.
                Range("F10").Font.Color = RGB(0, 0, 0) 
34.
            End If 
35.
 
36.
            If Range("F9") <= 0 Then 
37.
                Range("E9").Font.Color = RGB(255, 255, 255) 
38.
            Else 
39.
                Range("E9").Font.Color = RGB(255, 0, 0) 
40.
            End If 
41.
     
42.
            If Range("V19") < -0.0001 Or Range("F9") > 0 Then 
43.
                Range("F9").Font.Color = RGB(255, 0, 0) 
44.
            Else 
45.
                Range("F9").Font.Color = RGB(0, 0, 0) 
46.
            End If 
47.
     
48.
            If Range("V16") < -0.0001 Then 
49.
                Range("F8").Font.Color = RGB(255, 0, 0) 
50.
            Else 
51.
                Range("F8").Font.Color = RGB(0, 0, 0) 
52.
            End If 
53.
     
54.
            If Range("Z4") - Range("V17") > 0.0001 And Range("V16") > 0.0001 Then 
55.
                Range("F8").Font.Color = RGB(0, 255, 0) 
56.
            End If 
57.
     
58.
            If Range("V15") > 0.0001 Then 
59.
                Range("F7").Font.Color = RGB(0, 255, 0) 
60.
            ElseIf Range("V15") < -0.0001 Then 
61.
                Range("F7").Font.Color = RGB(255, 0, 0) 
62.
            Else 
63.
                Range("F7").Font.Color = RGB(0, 0, 0) 
64.
            End If 
65.
   
66.
            If Range("B15") = 0 Then 
67.
                NoChange = True 
68.
                Range("C15:G15,H15:I15").ClearContents 
69.
                NoChange = False 
70.
                 
71.
                Range("C15:N15").Locked = True 
72.
                Range("A15").Font.Color = RGB(216, 216, 216) 
73.
                Range("C15:N15").Font.Color = RGB(192, 192, 192) 
74.
                Range("A15:N15").Interior.Color = RGB(192, 192, 192) 
75.
                Range("C15:K15").Borders(xlInsideVertical).LineStyle = xlNone 
76.
                Exit Sub 
77.
            Else 
78.
                Range("C15:I15").Locked = False 
79.
                Range("A15").Font.Color = RGB(0, 0, 0) 
80.
                Range("C15:I15").Font.Color = RGB(0, 0, 0) 
81.
                Range("J15:K15").Font.Color = RGB(178, 254, 198) 
82.
                Range("L15:N15").Font.Color = RGB(255, 255, 255) 
83.
                Range("A15:N15").Interior.Color = RGB(255, 255, 255) 
84.
                Range("H15:K15").Interior.Color = RGB(178, 254, 198) 
85.
       
86.
                With Range("C15:G15") 
87.
                    With .Borders(xlEdgeLeft) 
88.
                        .LineStyle = xlContinuous 
89.
                        .ColorIndex = 0 
90.
                        .TintAndShade = 0 
91.
                        .Weight = xlMedium 
92.
                    End With 
93.
                    With .Borders(xlEdgeTop) 
94.
                        .LineStyle = xlContinuous 
95.
                        .ColorIndex = 0 
96.
                        .TintAndShade = 0 
97.
                        .Weight = xlMedium 
98.
                    End With 
99.
                    With .Borders(xlEdgeBottom) 
100.
                        .LineStyle = xlContinuous 
101.
                        .ColorIndex = 0 
102.
                        .TintAndShade = 0 
103.
                        .Weight = xlThin 
104.
                    End With 
105.
                    With .Borders(xlEdgeRight) 
106.
                        .LineStyle = xlContinuous 
107.
                        .Color = -16727809 
108.
                        .TintAndShade = 0 
109.
                        .Weight = xlMedium 
110.
                    End With 
111.
                    With .Borders(xlInsideVertical) 
112.
                        .LineStyle = xlContinuous 
113.
                        .ColorIndex = 0 
114.
                        .TintAndShade = 0 
115.
                        .Weight = xlThin 
116.
                    End With 
117.
                End With 
118.
     
119.
                With Range("H15:I15") 
120.
                    With .Borders(xlEdgeLeft) 
121.
                        .LineStyle = xlContinuous 
122.
                        .Color = -16727809 
123.
                        .TintAndShade = 0 
124.
                        .Weight = xlMedium 
125.
                    End With 
126.
                    With .Borders(xlEdgeTop) 
127.
                        .LineStyle = xlContinuous 
128.
                        .ColorIndex = 0 
129.
                        .TintAndShade = 0 
130.
                        .Weight = xlMedium 
131.
                    End With 
132.
                    With .Borders(xlEdgeBottom) 
133.
                        .LineStyle = xlContinuous 
134.
                        .ColorIndex = 0 
135.
                        .TintAndShade = 0 
136.
                        .Weight = xlThin 
137.
                    End With 
138.
                    With .Borders(xlEdgeRight) 
139.
                        .LineStyle = xlContinuous 
140.
                        .ThemeColor = 2 
141.
                        .TintAndShade = 0 
142.
                        .Weight = xlMedium 
143.
                    End With 
144.
                    With .Borders(xlInsideVertical) 
145.
                        .LineStyle = xlContinuous 
146.
                        .ThemeColor = 2 
147.
                        .TintAndShade = 0 
148.
                        .Weight = xlThin 
149.
                    End With 
150.
                End With 
151.
               
152.
                If Range("K15") = "Zeit!" Then 
153.
                    Range("J15").Font.Color = RGB(178, 254, 198) 
154.
                End If 
155.
         
156.
                If IsError(Range("N15")) Then 
157.
                   '? 
158.
                ElseIf Range("O15") = "x" Then 
159.
                    Range("N15").Font.Color = RGB(255, 255, 255) 
160.
                End If 
161.
         
162.
                If Range("K15") > 0.0001 And Range("K15") <> "Zeit!" Then 
163.
                    Range("J15:K15").Font.Color = RGB(255, 0, 0) 
164.
                ElseIf Range("K15") = "Zeit!" Then 
165.
                    Range("K15").Font.Color = RGB(255, 0, 0) 
166.
                End If 
167.
      
168.
                If IsNumeric(Range("L15")) And Range("L15") > 0 Then 
169.
                    Range("L15").Font.Color = RGB(0, 0, 0) 
170.
                ElseIf Range("L15") = "Zeit fehlt!" Then 
171.
                    Range("L15").Font.Color = RGB(255, 0, 0) 
172.
                ElseIf Range("L15") = "Eingabe!" Then 
173.
                    Range("L15").Font.Color = RGB(255, 0, 0) 
174.
                End If 
175.
         
176.
                If Range("M15") >= 0 And Range("B15") > 0 Then 
177.
                    Range("M15").Font.Color = RGB(255, 255, 255) 
178.
                End If 
179.
             
180.
                If IsError(Range("N15")) Then 
181.
                    Range("N15").Font.Color = RGB(255, 255, 255) 
182.
                ElseIf Range("L15") = "Zeit fehlt!" Then 
183.
                    Range("N15").Font.Color = RGB(255, 255, 255) 
184.
                Else 
185.
                    Select Case Range("O15").Value 
186.
                        Case Is > 0.0001 
187.
                            Range("N15").Font.Color = RGB(0, 255, 0) 
188.
                        Case Is = "x" And Range("O15") <> 0 
189.
                            Range("N15").Font.Color = RGB(255, 255, 255) 
190.
                        Case Is < -0.0001 
191.
                            Range("N15:M15").Font.Color = RGB(255, 0, 0) 
192.
                        Case Else 
193.
                            Range("N15").Font.Color = RGB(0, 0, 0) 
194.
                    End Select 
195.
                End If 
196.
       
197.
                If Range("L15") > 0 And Range("D15") = 0 And Range("F15") = 0 And Range("G15") > 0 Then 
198.
                   Range("D15:F15").Interior.Color = RGB(192, 192, 192) 
199.
                   Range("D15:F15").Locked = True 
200.
                End If 
201.
            End If 
202.
        End If 
203.
        Exit Sub 
204.
    End If 
205.
 
206.
    Set isect = Application.Intersect(Target, rng2) 
207.
    If Not (isect Is Nothing) Then 
208.
        Select Case Range("C5").Value 
209.
            Case "JÄNNER" 
210.
                Call SetAuszahlungsdatum("Dez,Jän,Dez") 
211.
            Case "FEBRUAR" 
212.
                Call SetAuszahlungsdatum("Jän,Feb,Jän") 
213.
            Case "MÄRZ" 
214.
                Call SetAuszahlungsdatum("Feb,März,Feb") 
215.
            Case "APRIL" 
216.
                Call SetAuszahlungsdatum("März,April,März") 
217.
            Case "MAI" 
218.
                Call SetAuszahlungsdatum("April,Mai,April") 
219.
            Case "JUNI" 
220.
                Call SetAuszahlungsdatum("Mai,Juni,Mai") 
221.
            Case "JULI" 
222.
                Call SetAuszahlungsdatum("Juni,Juli,Juni") 
223.
            Case "AUGUST" 
224.
                Call SetAuszahlungsdatum("Juli,Aug,Juli") 
225.
            Case "SEPTEMBER" 
226.
                Call SetAuszahlungsdatum("Aug,Sept,Aug") 
227.
            Case "OKTOBER" 
228.
                Call SetAuszahlungsdatum("Sept,Okt,Sept") 
229.
            Case "NOVEMBER" 
230.
                Call SetAuszahlungsdatum("Okt,Nov,Okt") 
231.
            Case "DEZEMBER" 
232.
                Call SetAuszahlungsdatum("Nov,Dez,Nov") 
233.
            Case Else 
234.
                Call SetAuszahlungsdatum("VORMMMM,MMMM,VORMMMM") 
235.
        End Select 
236.
    End If 
237.
End Sub 
238.
 
239.
Private Sub SetAuszahlungsdatum(ByRef T) 
240.
    Dim M As Variant 
241.
     
242.
    NoChange = True 
243.
     
244.
    M = Split(T, ",") 
245.
    Range("D7") = "Überstd. " & M(0) & "." 
246.
    Range("B8") = "Überstd. " & M(1) & ". " & Range("E5") 
247.
    Range("D9") = "Auszahlung " & M(2) & "." 
248.
     
249.
    NoChange = False 
250.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: xaumichi
30.07.2010 um 22:55 Uhr
Also jetzt nochmal ein GROOOSSSES WOW! Vielen dank!!

Muss ich gleich mal ausprobieren! :D

Hm...wobei laut Excel-Hilfe das System mit den RGB-Werten auch funktioniert!

Okey, aber gut zu wissen. Dann muss ich mir das mitn Index nochmal anschauen.

Vielen Dank!

LG Mike
Bitte warten ..
Mitglied: 76109
31.07.2010 um 14:16 Uhr
Hallo Mike!

Zitat von xaumichi:
Hm...wobei laut Excel-Hilfe das System mit den RGB-Werten auch funktioniert!
Auf jedenfall bei Shape-Objecten, UserForms.... Die Anwendung auf Zellen funktioniert zumindest bei meiner Excel-Version nicht.

In der Hoffnung, das die Performance nicht zu sehr beinträchtigt wird, noch eine Möglichkeit die Bordergeschichte etwas zu reduzieren:
01.
'snip......................... 
02.
                With Range("C15:G15") 
03.
                    Call SetBorders(.Address, xlEdgeLeft, "I=0", xlMedium) 
04.
                    Call SetBorders(.Address, xlEdgeTop, "I=0", xlMedium) 
05.
                    Call SetBorders(.Address, xlEdgeBottom, "I=0", xlThin) 
06.
                    Call SetBorders(.Address, xlEdgeRight, "H=FF00C0FF", xlMedium)   'FF00C0FF = -16727809 
07.
                    Call SetBorders(.Address, xlInsideVertical, "I=0", xlThin) 
08.
                End With 
09.
     
10.
                With Range("H15:I15") 
11.
                    Call SetBorders(.Address, xlEdgeLeft, "H=FF00C0FF", xlMedium)    'FF00C0FF = -16727809 
12.
                    Call SetBorders(.Address, xlEdgeTop, "I=0", xlMedium) 
13.
                    Call SetBorders(.Address, xlEdgeBottom, "I=0", xlThin) 
14.
                    Call SetBorders(.Address, xlEdgeRight, "T=2", xlMedium) 
15.
                    Call SetBorders(.Address, xlInsideVertical, "T=2", xlThin) 
16.
                End With 
17.
'snip......................... 
18.
 
19.
Private Sub SetBorders(ByRef Rng, ByVal Pos As Long, ByRef Color, ByVal Weight As Long) 
20.
    Dim ColorCmd As Variant, ColorRGB As Variant 
21.
     
22.
    ColorCmd = Split(Color, "=") 
23.
     
24.
    With Range(Rng).Borders(Pos) 
25.
        .LineStyle = xlContinuous 
26.
        .Weight = Weight 
27.
        '.TintAndShade = 0 
28.
         If ColorCmd(0) = "I" Then 
29.
            .ColorIndex = CLng(ColorCmd(1)) 
30.
         ElseIf ColorCmd(0) = "H" Then 
31.
            .Color = CLng("&H" & ColorCmd(1)) 
32.
         ElseIf ColorCmd(0) = "T" Then 
33.
            '.ThemeColor = CLng(ColorCmd(1)) 
34.
         ElseIf ColorCmd(0) = "R" Then 
35.
             ColorRGB = Split(ColorCmd(1), ",") 
36.
            .Color = RGB(CInt(ColorRGB(0)), CInt(ColorRGB(1)), CInt(ColorRGB(2))) 
37.
        End If 
38.
    End With 
39.
End Sub
wobei bei meiner ExcelVersion die Objecte "TintAndShade" und "ThemeColor" nicht zur Verfügung stehen, daher Kommentarzeichen.

Die Farbangaben werden per String übergeben und sind wie folgt definiert:
"I=Wert" - .ColorIndex = Dezimalzahl (Beispiel: "I=35")
"H=Wert" - .Color = Hexadezimal (Beispiel: "H=FFFFFF")
"R=Wert" - .Color = RGB-Array ("R=255,255,255")
"T=Wert" - .ThemeColor = Dezimalzahl (Beispiel: "T=2")

Gruß Dieter
Bitte warten ..
Mitglied: xaumichi
09.08.2010 um 14:07 Uhr
Hallo!

Kann ich mit diesem Code hier:

01.
Sub WriteWoorkbookColorTable() 
02.
     
03.
    ActiveWorkbook.Colors(35) = RGB(178, 255, 198) 
04.
     
05.
    'oder 
06.
     
07.
    ActiveWorkbook.Colors(35) = &HC6FFB2 
08.
End Sub 
neue Farben initialisieren, oder wie?

Un dem ich zB.: dann
01.
...Color(111) = RGB(219, 291, 219) 
schreiben??

Denn es hat sich jetzt herausgestellt, dass Office 2000/2003 das
01.
...Color=RGB (....)  
nicht kennt!
Bitte warten ..
Mitglied: 76109
09.08.2010 um 14:22 Uhr
Hallo Mike!

Mhm, wieviele Farben hat denn Deine Farbtabelle <Optionen><Farben>? Gibt es da tatsächlich 111 Farben oder mehr?

Oder mit diesem Code anzeigen lassen:
01.
Sub Test() 
02.
    Dim Farben As Variant 
03.
 
04.
    Farben = ActiveWorkbook.Colors 
05.
 
06.
    MsgBox UBound(Farben)  
07.
End Sub
Bei mir sind es nur 56 Farben (Office 2002)

Gruß Dieter

PS. Und ja, diese Farbtabelle kann man ändern
Bitte warten ..
Mitglied: xaumichi
09.08.2010 um 16:02 Uhr
Naja, darum hätte ich irgend einen hohen Wert genommen, damit ich keine andere Farbe "überschreibe" oder so.
Darum hab ich einfach mal "111" angenommen, denn da wär ich sicher darüber gewesen!

Oder muss ich ich mich innerhalb dieser 56 befinden?

LG
Bitte warten ..
Mitglied: 76109
09.08.2010 um 16:35 Uhr
Hallo Mike!

Da 111 ein ungültiger Wert ist, ergibt das dann natürlich einen Object-Fehler, den Du dann auf das RGB bezogen hast.
D.h. Du musst schon einen gültigen Wert zwischen 1-56 eingeben, wobei es sinnvoll ist, die letzten 16 Farben neu zu definieren . Diese Farben sind speziell für Chart's gedacht. Wenn Du in Deinem Tabellenblatt die Füllfarben ansiehst, dann wird Dir auffallen, dass hier nur 48 Farben zur Verfügung stehen. Aber Achtung, die Zählreihenfolge (IndexNummer) stimmt nicht mit der Zählung der Farbfelder überein. Da habe ich in einem anderen Deiner Beiträge aber schon darauf hingewiesen. Z.B. ist die Farbe Rot (IndexNummer 3) im Farbfeld erst an Stelle 17... die letzten 16 Farben <Optionen><Farben> haben, wenn ich mich recht erinnere die IndexNummer ab 24

Gruß Dieter
Bitte warten ..
Mitglied: xaumichi
09.08.2010 um 16:40 Uhr
Jup, das hab ich mir schon gesucht! Okey, danke schön!

Lg Mike
Bitte warten ..
Mitglied: 76109
09.08.2010 um 16:46 Uhr
Hallo Mike!

Yepp, gern geschehen

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Microsoft Office
gelöst Excel-Formel oder VBA (7)

Frage von nicki01 zum Thema Microsoft Office ...

VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...