Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  bedingte Formatierung erweitern !!!

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  bedingte Formatierung erweitern !!! (3902 mal gelesen)
jogi007
Mitglied
Digital Artist

Sehen Sie sich das Profil von jogi007 an!   Senden Sie eine Private Message an Apophis007  Schreiben Sie einen Gästebucheintrag für Apophis007

Beiträge: 4
Registriert: 13.06.2006

erstellt am: 13. Jun. 2006 16:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hey Leute,
habe mit eurem VBA Makro
AKT_Blatt (Akt_Blatt) geschafft meine formatierung in der Spalte (A3:A14)der Platzierung in der gewünschten Größe hinzubekommen.
Nu aber mein Problem --> die Spalten B und C enthalten die Namen bzw. Aktuellen Punktestand der Tabelle und die sollen nun aber auch die selbe Schriftgröße
bekommen wie die erste Spalte.
Die normale bedingte Formatierung kann ich vergessen da ich die Schriftgröße nicht ändern kann.

Habt ihr da ne Idee oder ein passende Makro für mich, bin absoluter VBA Neuling (DAU)

Gruß Jogi007

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 13. Jun. 2006 17:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jogi007 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von jogi007:
Hey Leute,
habe mit eurem VBA Makro
AKT_Blatt (Akt_Blatt) geschafft meine formatierung in der Spalte (A3:A14)der Platzierung in der gewünschten Größe hinzubekommen.
Nu aber mein Problem --> die Spalten B und C enthalten die Namen bzw. Aktuellen Punktestand der Tabelle und die sollen nun aber auch die selbe Schriftgröße
bekommen wie die erste Spalte.
Die normale bedingte Formatierung kann ich vergessen da ich die Schriftgröße nicht ändern kann.

Habt ihr da ne Idee oder ein passende Makro für mich, bin absoluter VBA Neuling (DAU)

Gruß Jogi007


mal ohne VBA - vielleicht aber auch, weil ich es nicht verstanden habe; besonders mit dem Verweis auf den Thread mit dem Makro in dem es um Einfärben nach WerteBereich geht... ;-)
ist manchmal nicht leicht ohne Glaskugel zu verstehen ;)


und ein einfaches Formatieren (mittels Symbolleiste Standard/Format übertragen) der Zelle geht nicht, oder willst du je nach Ereignis, dass sich Schriftgrösse ändert?

hmmm... Ein VBA Neuling ist doch nicht gleich ein DAU...

------------------
Am Anfang war kein Licht - und Vater blickte Kalt

[Diese Nachricht wurde von Thomas Harmening am 13. Jun. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jogi007
Mitglied
Digital Artist

Sehen Sie sich das Profil von jogi007 an!   Senden Sie eine Private Message an Apophis007  Schreiben Sie einen Gästebucheintrag für Apophis007

Beiträge: 4
Registriert: 13.06.2006

erstellt am: 13. Jun. 2006 18:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


tabelle.jpg

 
Zitat:
Original erstellt von Thomas Harmening:
Makro in dem es um Einfärben nach WerteBereich geht... ;-)


Makro enthält aber auch-->  schriftart und größe die habe ich genutzt

den Farbformatierung hab ich einfach gelöscht --> hab die version benutzt die weiter unten angehangen ist

Hier mal die Version von Mir:
----------------------------------------------------------------------
Set Target = Range("E3:E14")
    For Each objCell In Target
        If Not Intersect(objCell, Range("E3:E14")) Is Nothing Then
            With objCell
                Select Case .Value
                    Case 1
                        .NumberFormat = "General"
                        .Font.Name = "Arial"
                        .Font.Size = 18
                    Case 2
                        .NumberFormat = "General"
                        .Font.Name = "Arial"
                        .Font.Size = 16
                    Case 3
                        .NumberFormat = "General"
                        .Font.Name = "Arial"
                        .Font.Size = 14
                    Case 4 To 14
                        .NumberFormat = "General"
                        .Font.Name = "Arial"
                        .Font.Size = 11
                      
                    Case Else
                        .Interior.ColorIndex = xlNone
                        '.Borders(xlDiagonalDown).LineStyle = xlNone
                        '.Borders(xlDiagonalUp).LineStyle = xlNone
                        '.Borders(xlEdgeLeft).LineStyle = xlNone
                        '.Borders(xlEdgeTop).LineStyle = xlNone
                        '.Borders(xlEdgeBottom).LineStyle = xlNone
                        '.Borders(xlEdgeRight).LineStyle = xlNone
                End Select
            End With
        End If
    Next
End Sub
--------------------------------------------------------------------
Tabelle die Formatiert werden soll ist angehängt (.jpg)

Die werte werden täglich aktualisiert (z.B WM TIP)
Die Sortierung macht ebenfalls ein kleines Makro -->

Calculate
    Range("B3:C14").Select
    Selection.Sort Key1:=Range("C3"), Order1:=xlDescending, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
   
    Akt_Blatt
   
    Calculate
    Range("F3:G14").Select
    Selection.Sort Key1:=Range("G3"), Order1:=xlDescending, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
       
    Akt_Blatt_1
     
   Worksheets("Tipauswerter").Columns("A:G").AutoFit
---------------------------------------------------------------------
und mit der Spalte A klappt das prima (vielleicht wird auch irgentwann bund ?!?!?!)
und nur wollt ich einfach den Formatierungsbereich erweitern aber da ist mein Latein am Ende den alle Rangeaufrufe die ich mach in den Case abschnitte werden als fehler angemeckert.

Hoffe das reicht
kann wenn gewünscht ja mal eine Kurzversion der Tipauswertung zuschicken.
Gruß Jogi007
Dank an alee für die Hilfe

[Diese Nachricht wurde von jogi007 am 13. Jun. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 13. Jun. 2006 21:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jogi007 10 Unities + Antwort hilfreich


Rang-sverweis.xls.txt

 
;-) wobei eine WM.Tippauswertung auch ohne VBA zu realisieren wäre...

da die Veränderung der Zelle nur auf die aktuelle objcell sich auswirkt, musst du deinen Zellbereich der geändert werden muss erzwingen:
Range("E3:G3").NumberFormat = "General" , etc...

ändere einfach - ist nich' schön, aber es tut:

Code:
*schnipp*
Case 1
      [E3:G3].NumberFormat = "General"
      [E3:G3].Font.Name = "Arial"
      [E3:G3].Font.Size = 18
      [E3:G3].Font.ColorIndex = 3
Case 2
      [E4:G4].NumberFormat = "General"
      [E4:G4].Font.Name = "Arial"
      [E4:G4].Font.Size = 16
      [E4:G4].Font.ColorIndex = 7
Case 3
      [E5:G5].NumberFormat = "General"
      [E5:G5].Font.Name = "Arial"
      [E5:G5].Font.Size = 14
      [E5:G5].Font.ColorIndex = 9
Case 4 To 14
*schnapp*

ohne Vba; eine Auswertung über Rang und Sverweis() sollte das auch realisieren - dann entfällt auch das unter Umständen üble Sortieren *zwinker* manch' einer hat so schon die Daten durcheinander gebracht

Ps: Spaltenköpfe sind mitunter notwändig um von aussen zu wissen wo was passieren soll ;-)

------------------
Am Anfang war kein Licht - und Vater blickte Kalt
Miss Brauch

[Diese Nachricht wurde von Thomas Harmening am 13. Jun. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jogi007
Mitglied
Digital Artist

Sehen Sie sich das Profil von jogi007 an!   Senden Sie eine Private Message an Apophis007  Schreiben Sie einen Gästebucheintrag für Apophis007

Beiträge: 4
Registriert: 13.06.2006

erstellt am: 13. Jun. 2006 23:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


altesFormat.jpg


NeuesFormat.jpg

 
Zitat:
Original erstellt von Thomas Harmening:

Range("E3:G3").NumberFormat = "General" , etc...

[/B]


Das es auch ganz ohne geht hab ich gesehen aber iuch fand das Sortieren am einfachsten veil die Zellen mit den Punkte nur verweise sind auf ein Anderes tabellen blatt.

Danke erstmal für die Version aber das klappt leider nicht wiE geplant,
denn es werden nur die die angegebene Ranges z.B ("F3:G3") anders formatiert  und leider nicht der restlichen mit dem Inhalt in der F Spalte  ;-))) siehe Bilder

Denn es könnt ja mehrer dritte zweite oder erste Plätze geben und dann bin ich festgenagelt auf die formatierung
und dann passen die Ranges leider nicht.Case 2 auch
im Bereich E6:G6 stehen und dann wäre ein zweiter Platz eben nur schriftgröße 14 und nicht 16

Hab die mal zwei bilder angehängt Neu und Alt bei Alt bitte nur auf Schriftgröße in Spalte A achten

Und deine Version ist dann etwas umständlich die geht dann einfacher.
Am Schluß einfach einen bzw. drei Range.Select befehle ausführen.
Muster
----------
Range("B3:C3", "F3:G3").Select
    Selection.Font.ColorIndex = 1
    Selection.Font.Size = 18
   
Range("A4:C4", "F4:G4").Select
    Selection.Font.ColorIndex = 1
    Selection.Font.Size = 16
   
Range("A5:C5", "F5:G5").Select
    Selection.Font.ColorIndex = 1
    Selection.Font.Size = 14

Range("A6:C14", "F6:G14").Select
    Selection.Font.ColorIndex = 1
    Selection.Font.Size = 12

Vielleicht bin ich aber auch zu Anspruchsvoll   
Danke für Eure Hilfe
Gruß Jogi007

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 14. Jun. 2006 17:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jogi007 10 Unities + Antwort hilfreich

sagte ich doch, mein code ist nicht schön    ;-)  
auch weil es starr ist und nur stur die 3 Zeilen richtig formatiert und bei einem mehrfachvorkommen der Zahlen 1,2,3 die Nachbarzellen nicht richtig formatiert wird...

hier mal ein besserer code, der auch das doppelte vorhanden sein von Platz 1,2 oder 3 richtig formatiert.
die mit ' gekennzeichneten Zeilen kann man rauswerfen

Code:

Sub test()
Set Target = Range("E3:E14")
    For Each objCell In Target
        If Not Intersect(objCell, Range("E3:E14")) Is Nothing Then
        'With objCell
          With Range(objCell.Address, objCell.Offset(0, 2).Address)
              
             Select Case objCell.Value
                    Case 1
                       '.NumberFormat = "General"
                       '.Font.Name = "Arial"
                       .Font.Size = 18
                       .Font.ColorIndex = 44 'bei mir gold
                    Case 2
                       '.NumberFormat = "General"
                       '.Font.Name = "Arial"
                       .Font.Size = 16
                       .Font.ColorIndex = 48 'bei mir silber
                    Case 3
                        '.NumberFormat = "General"
                        '.Font.Name = "Arial"
                        .Font.Size = 14
                        .Font.ColorIndex = 46 'bei mir bronze
                   Case Else
                        .Interior.ColorIndex = xlNone
                        .Font.Size = 11
                End Select
            End With
        End If
    Next
End Sub

PS. mit .select- Anweisungen habe ich auch mal VBA angefangen - bis mal im Forum hier gesagt wurde, das ist überflüssig und unschön    ;-)  - und kostet Zeit

[Diese Nachricht wurde von Thomas Harmening am 14. Jun. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

günther andresen
Mitglied



Sehen Sie sich das Profil von günther andresen an!   Senden Sie eine Private Message an günther andresen  Schreiben Sie einen Gästebucheintrag für günther andresen

Beiträge: 28
Registriert: 11.12.2004

erstellt am: 14. Jun. 2006 19:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jogi007 10 Unities + Antwort hilfreich

Hallo Jogi,
versuchs mal mit dem Add In: CF-Plus! Damit lassen sich, wenn ich Dich richtig verstanden habe, die gewünschten Formatierungen (max. 30!) vornehmen.
viel Erfolg
günther

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jogi007
Mitglied
Digital Artist

Sehen Sie sich das Profil von jogi007 an!   Senden Sie eine Private Message an Apophis007  Schreiben Sie einen Gästebucheintrag für Apophis007

Beiträge: 4
Registriert: 13.06.2006

erstellt am: 14. Jun. 2006 20:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Dank euch beiden das Makro von Thomas macht genau das was ich will und ist zudem erweiterbar auf x Platzierungen.

aber deine Erste Version funktionierte auch wenn man alle Plätze belegt und die Range verschiebt.


Case 1
      [E3:G14].NumberFormat = "General"
      [E3:G14].Font.Name = "Arial"
      [E3:G14].Font.Size = 18
      [E3:G14].Font.ColorIndex = 3
Case 2
      [E4:G14].NumberFormat = "General"
      [E4:G14].Font.Name = "Arial"
      [E4:G14].Font.Size = 16
      [E4:G14].Font.ColorIndex = 7
Case 3
      [E5:G14].NumberFormat = "General"
      [E5:G14].Font.Name = "Arial"
      [E5:G14].Font.Size = 14
      [E5:G14].Font.ColorIndex = 9

usw. aber du mußt alle möglich platzierung abfangen also bei 20 möglichen Plätzen case bis 20

Aber die andere Version liest sich eleganter und ist wohl richtig programmiert ohne doppel durchläufen. (man sieht dabei wie excel arbeitet)

Aber wie kommt man auf sowas.
'With objCell
          With Range(objCell.Address, objCell.Offset(0, 2).Address)

einfach den With Befehl austauschen ?!?!?!


Also nochmal herzlichen Dank bis zum Nächsten Problem.
@ Thomas gibt irgendein gutes Buch oder alles Learning bei duing

Gruß Jogi007

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 14. Jun. 2006 22:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jogi007 10 Unities + Antwort hilfreich

Code:
For Each objCell In Target
If Not Intersect(objCell, Range("E3:E14")) Is Nothing Then
With objCell
Select Case .Value
Case 1
With objCell behandelt nur die Zelle

wie du dan festgestellst hast braucht es

Code:
Range("B3:C3", "F3:G3").Select
Selection.Font.ColorIndex = 1
Selection.Font.Size = 18
um den Bereich zu defieren der Behandelt werden muss...
folglich tauschen wir
With objCell mit
With Range(objCell.Address, objCell.Offset(0, 2).Address)
um einen Bereich zu haben
abgefragt auf übereistimmung wird trotzdem
nur die Zelle
Select Case objCell.Value
Code:
For Each objCell In Target
If Not Intersect(objCell, Range("E3:E14")) Is Nothing Then
'With objCell
With Range(objCell.Address, objCell.Offset(0, 2).Address)

Select Case objCell.Value
Case 1

im Prinzip kann das macro auch so aussehen wie in http://ww3.cad.de/foren/ubb/Forum226/HTML/000484.shtml#000001
man musss nur arrays für die Farben, Fontgrössen und Werte der Plätze definieren und die eine oder andere zeile abändern - IMHO
Bücher kann ich dir leider keine nennen,
da ich autoditaktisch lerne, mit viel try and error ;-)

Man muss nur einen Code nur lesen und verstehen können,
dann ist das Anpassen auch kein Problem
- die Bausteine gibt es dann im I-net ;)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz