MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 27.10.2005, 17:23   #1
homi
Neuer Benutzer
Neuer Benutzer
Standard VBA - Zellenfarbe ändern

Hallo,

ich möchte die Farbe einer Zelle mit Hilfe einer Funktion festlegen.

Code:

Function Markieren_KW(Zelle As Excel.Range, Zelle_Start As Excel.Range, Zelle_Ende As Excel.Range, Zelle_KW As Excel.Range)

    Application.Volatile
    If Zelle_Start.Value <= Zelle_KW.Value And Zelle_Ende.Value >= Zelle_KW.Value Then
    
      Zelle.Interior.ColorIndex = 1
      
      
    End If
    
End Function
Was ist an dem Code falsch. Zelle_Start enthält eine Zahl und Zelle_Ende enthält auch eine Zahl. Die Zahl aus Zelle_KW muss zwischen den start und ende liegen, oder gleich sein. Dann soll sich die Farbe ändern. Es passiert nichts. Warum?
homi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.10.2005, 18:08   #2
Peter9
MOF Profi
MOF Profi
Standard

Hallo homi,

Probiere es mal so dan sollte es gehen

Du musst die Zellen mit Range ansprechen

mfg Peter


Function Markieren_KW(Zelle As Excel.Range, Zelle_Start As Excel.Range, Zelle_Ende As Excel.Range, Zelle_KW As Excel.Range)

Application.Volatile
' If Zelle_Start.Value <= Zelle_KW.Value And Zelle_Ende.Value >= Zelle_KW.Value Then

' Zelle.Interior.ColorIndex = 1
If Range("Zelle_Start") <= Range("Zelle_KW") And Range("Zelle_Ende") >= Range("Zelle_KW") Then

Range("Zelle").Interior.ColorIndex = 1

End If

End Function

Geändert von Peter9 (27.10.2005 um 18:16 Uhr).
Peter9 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.10.2005, 18:35   #3
jinx
MS-Office-Forum Team MS-Office-Forum Team
Standard

Moin, homi,

meines Wissens können aus einer Funktion keine Veränderungen des Aussehens einer anderen Zelle vorgenommen werden. Folgender Umweg lässt sich über die Bedingte Formatierung wählen:
Tabelle1
 ABCDEF
1KW StartEnde Wert
244 4046 45
345 4046 45
446 4046 45
547 4046 45
648 4046 45
Formeln der Tabelle
A2 : =KALENDERWOCHE(HEUTE()+(ZEILE()-2)*7)
A3 : =KALENDERWOCHE(HEUTE()+(ZEILE()-2)*7)
A4 : =KALENDERWOCHE(HEUTE()+(ZEILE()-2)*7)
A5 : =KALENDERWOCHE(HEUTE()+(ZEILE()-2)*7)
A6 : =KALENDERWOCHE(HEUTE()+(ZEILE()-2)*7)
Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
A21. / Formel ist =Markieren_KW($C2;$D2;$A2)=WAHRAbc
B21. / Formel ist =Markieren_KW($C2;$D2;$A2)=WAHRAbc
C21. / Formel ist =Markieren_KW($C2;$D2;$A2)=WAHRAbc
D21. / Formel ist =Markieren_KW($C2;$D2;$A2)=WAHRAbc
E21. / Formel ist =Markieren_KW($C2;$D2;$A2)=WAHRAbc
F21. / Formel ist =Markieren_KW($C2;$D2;$A2)=WAHRAbc
A31. / Formel ist =Markieren_KW($C3;$D3;$A3)=WAHRAbc
B31. / Formel ist =Markieren_KW($C3;$D3;$A3)=WAHRAbc
C31. / Formel ist =Markieren_KW($C3;$D3;$A3)=WAHRAbc
D31. / Formel ist =Markieren_KW($C3;$D3;$A3)=WAHRAbc
E31. / Formel ist =Markieren_KW($C3;$D3;$A3)=WAHRAbc
F31. / Formel ist =Markieren_KW($C3;$D3;$A3)=WAHRAbc
A41. / Formel ist =Markieren_KW($C4;$D4;$A4)=WAHRAbc
B41. / Formel ist =Markieren_KW($C4;$D4;$A4)=WAHRAbc
C41. / Formel ist =Markieren_KW($C4;$D4;$A4)=WAHRAbc
D41. / Formel ist =Markieren_KW($C4;$D4;$A4)=WAHRAbc
E41. / Formel ist =Markieren_KW($C4;$D4;$A4)=WAHRAbc
F41. / Formel ist =Markieren_KW($C4;$D4;$A4)=WAHRAbc
A51. / Formel ist =Markieren_KW($C5;$D5;$A5)=WAHRAbc
B51. / Formel ist =Markieren_KW($C5;$D5;$A5)=WAHRAbc
C51. / Formel ist =Markieren_KW($C5;$D5;$A5)=WAHRAbc
D51. / Formel ist =Markieren_KW($C5;$D5;$A5)=WAHRAbc
E51. / Formel ist =Markieren_KW($C5;$D5;$A5)=WAHRAbc
F51. / Formel ist =Markieren_KW($C5;$D5;$A5)=WAHRAbc
A61. / Formel ist =Markieren_KW($C6;$D6;$A6)=WAHRAbc
B61. / Formel ist =Markieren_KW($C6;$D6;$A6)=WAHRAbc
C61. / Formel ist =Markieren_KW($C6;$D6;$A6)=WAHRAbc
D61. / Formel ist =Markieren_KW($C6;$D6;$A6)=WAHRAbc
E61. / Formel ist =Markieren_KW($C6;$D6;$A6)=WAHRAbc
F61. / Formel ist =Markieren_KW($C6;$D6;$A6)=WAHRAbc
 

Code:

Option Explicit
 
Function Markieren_KW(Zelle_Start As Excel.Range, _
                      Zelle_Ende As Excel.Range, _
                      Zelle_KW As Excel.Range) As Boolean
 
  Application.Volatile
  Markieren_KW = False
  If Zelle_Start.Value <= Zelle_KW.Value And Zelle_Ende.Value >= Zelle_KW.Value Then
    Markieren_KW = True
  End If
 
End Function
Code eingefügt mit dem MOF Code Converter

__________________

cu
jinx


per 31.12.2010 ausgeschiedener User und ehemaliger Excel-

Folgende Tools werden zur optischen Aufbereitung eingesetzt: Code Converter; Excel Jeanie Html
Für die allgemeinen Hinweise: Netiquette; Fragen und Antworten in Foren

eingesetzte Betriebssysteme: XP Home, XP Media Center Edition, XP Professional, Vista Ultimate, 7/Seven
verwendete Programme: Excel97 SR-2, Office 2000 SP-3, Office2002/XP SP-3, Office 2003 Professional SP-3, Office 2007 Home & Student SP-3, Office 2007 Professional SP-3

Geändert von jinx (27.10.2005 um 18:43 Uhr).
jinx ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.10.2005, 08:20   #4
homi
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

die Variante von Peter geht leider nicht.

Mit der bedingten Formatierung komm ich nicht so ganz klar. Kann ich nicht grundsätzlich sagen, wenn die Formel(egal wo) wahr ist, dann mach diese Zelle blau?
homi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.10.2005, 08:49   #5
homi
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Das Problem hab ich jetzt mit bedingter Formatierung des Wertes Wahr und Falsch gelöst. Aber es hat sich ein neues Problem eingeschlichen. Wenn ich jetzt über die KW 52 hinaus gehe, dann fängt es ja bei 1 an. Doch meine Berechnung sieht das ja leider nicht vor. Gibt es dann einfache Datum funktionen die so etwas können?
Die Funktion Kalenderwoche gibt es bei mir leider nicht.
homi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.10.2005, 13:14   #6
Peter9
MOF Profi
MOF Profi
Standard

Hallo Homi,

das mit der Function habe ich nicht hinbekommen,

ich hänge dir mal eine Test Datei an ich hoffe Du meinst es in etwa so

Du kannst das auch mit dem code machen der muss hinter das Tabellenblatt eingesetzt werden

mfg Peter

Code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Sub Markieren_KW1()

Application.Volatile
If Range("Zelle_Start") <= Range("Zelle_KW") And Range("Zelle_Ende") >= Range("Zelle_KW") Then

Range("Zelle").Interior.ColorIndex = 1
Else
Range("Zelle").Interior.ColorIndex = 0
End If


End Sub
Angehängte Dateien
Dateityp: xls Mappe1_farb123_test.xls (23,5 KB, 26x aufgerufen)
Peter9 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.10.2005, 13:29   #7
Lumpensammler
MOF Meister
MOF Meister
Standard

Hallo, Peter,

Application.Volatile macht ausschließlich in Funktionen Sinn und ist üebrflüssig. Das Problem der ersten Kalenderwoche wird durch den Code nicht gelöst. Dazu müßte dann ein Bezug auf das Jahr vorgenommen werden (oder ein Datum).

homi:
Sieh Dir doch einmal den Beitrag von Hajo_Zi zu diesem Themenbereich oben im Excel-Bereich an. Ansonsten solltest Du das Anaylyse-AddIn über Extras / Addin-Manager einbinden.

Gruß
LS

__________________

Man muß viel gelernt haben, um das, was man nicht weiß, erfragen zu können. (Jean-Jacques Rousseau)
Wer nicht kann, was er will, muß das wollen, was er kann. (Leonardo da Vinci)
Lumpensammler ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.