gut, schlecht und neutral - Funktion
Hallo zusammen
Folgendes Problem, Excel 2007:
Ich markiere verschiedene Felder mit der "Zellenformatvorlage" (GUT, SCHLECHT und NEUTRAL)
Zum Schluss brauch ich dann die Summe, wieviel GUT, SCHLECHT und NEUTRAL ist. (wie in dem Screen
zu sehen)
Folgendes Problem, Excel 2007:
Ich markiere verschiedene Felder mit der "Zellenformatvorlage" (GUT, SCHLECHT und NEUTRAL)
Zum Schluss brauch ich dann die Summe, wieviel GUT, SCHLECHT und NEUTRAL ist. (wie in dem Screen
zu sehen)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 126920
Url: https://administrator.de/contentid/126920
Ausgedruckt am: 26.11.2024 um 05:11 Uhr
9 Kommentare
Neuester Kommentar
Fische Füttern Fordert Fiel Ferstand xD, sorry das musste sein
Zum Problem:
Zauberwort lautet: VBA
Nimmt den Macroassistent und zeichne das buntmachen der Zellen auf. Mit dem Parameter für das farbig machen kann man doch bestimmt auf die gleiche weise den Parameter abfragen. Wenn das klappt, nen Button fürs berechnen und in einer Schleife die Spalten durchlaufen und addieren der Werte für Farbe 1 bis n.
Nö,
ohne VBA geht es afaik nicht. Alternative (und sowieso sauberer und auch für ggf. gewünschte Folgeauswertungen einfacher):
getrennte Spalten für die Kategorien, oder eine Hilfsspalte, in der man die Kategorie einträgt (1=gut, 2=schlecht etc) und die Farben über bedingte Formatierung darstellen.
Summenbildung dann über weitere Hilfsspalte mit Wenn-Konstrukt.
ohne VBA geht es afaik nicht. Alternative (und sowieso sauberer und auch für ggf. gewünschte Folgeauswertungen einfacher):
getrennte Spalten für die Kategorien, oder eine Hilfsspalte, in der man die Kategorie einträgt (1=gut, 2=schlecht etc) und die Farben über bedingte Formatierung darstellen.
Summenbildung dann über weitere Hilfsspalte mit Wenn-Konstrukt.
Hallo Manibam,
So sieht das aus:
Einfach in Excel "ALT+F11" in den Macroeditor gehen und ein neues Modul anlegen.
Doppelklick drauf und einfügen.
Die Angaben oben deiner Tabelle anpassen und schließen.
In Excel unter Ansicht Macros (ganz rechts) auf anzeigen und dann "CheckIt" ausführen.
Tada, fertig.
Das ganze solltest du aber erstmal in einer Kopie deiner Tabelle testen, man weis ja nie!!!
MfG Sam
Wissen ist Nacht!
So sieht das aus:
Sub CheckIt()
Dim varSPALTE, varZELLE_GUT, varZELLE_NEUTRAL, varZELLE_SCHLECHT, varZELLE_NA As String 'Deklaration
Dim varANZAHL, varGUT, varNEUTRAL, varSCHLECHT, varNA As Integer
'========================================================================================================
'Hier kommen Deine Angaben rein!
varSPALTE = "A" 'Spalte in der die Bewertungen stehen
varZELLE_GUT = "G1" 'Zelle für Summe gut
varZELLE_NEUTRAL = "G2" 'Zelle für Summe neutral
varZELLE_SCHLECHT = "G3" 'Zelle für Summe schlecht
varZELLE_NA = "G4" 'Zelle für Summe ohne Wertung bzw. mit anderer Einstellung
'========================================================================================================
varANZAHL = Columns(varSPALTE).SpecialCells(xlCellTypeConstants).Count 'Ermittelt die letzte Zelle mit Inhalt in der angegebenen Spalte
varGUT = 0 'Zählerstände einstellen
varNEUTRAL = 0
varSCHLECHT = 0
varNA = 0
For i = 1 To varANZAHL 'Schleife von Zeile 1 bis ermitteltem Ende
Select Case (Range(varSPALTE & i).Style) 'Abfrage auf Style der Zelle (wahrscheinlich nur Excel 2007 - keine Ahnung, aber dafür wolltest du es ja. - Die Zelle muß über die Formatvorlage eingestellt sein!!!)
Case "Gut"
If IsNumeric(Range(varSPALTE & i).Value) Then varGUT = varGUT + CInt(Range(varSPALTE & i).Value) 'Prüfung ob eine Zahl eingetragen wurde. Wenn ja dann: Alten Zellenwert + Neuen Zellenwert (dieser wird vorsichtshalber in eine Zahl (Integer) gewandelt falls du die Zelle als Text formatiert hast.
Case "Neutral"
If IsNumeric(Range(varSPALTE & i).Value) Then varNEUTRAL = varNEUTRAL + CInt(Range(varSPALTE & i).Value)
Case "Schlecht"
If IsNumeric(Range(varSPALTE & i).Value) Then varSCHLECHT = varSCHLECHT + CInt(Range(varSPALTE & i).Value)
Case Else
If IsNumeric(Range(varSPALTE & i).Value) Then varNA = varNA + CInt(Range(varSPALTE & i).Value)
End Select
Next
Range(varZELLE_GUT).Value = varGUT 'Summe der Zähler wird in die von dir angegebenen Felder geschrieben.
Range(varZELLE_NEUTRAL).Value = varNEUTRAL
Range(varZELLE_SCHLECHT).Value = varSCHLECHT
Range(varZELLE_NA).Value = varNA
End Sub
Einfach in Excel "ALT+F11" in den Macroeditor gehen und ein neues Modul anlegen.
Doppelklick drauf und einfügen.
Die Angaben oben deiner Tabelle anpassen und schließen.
In Excel unter Ansicht Macros (ganz rechts) auf anzeigen und dann "CheckIt" ausführen.
Tada, fertig.
Das ganze solltest du aber erstmal in einer Kopie deiner Tabelle testen, man weis ja nie!!!
MfG Sam
Wissen ist Nacht!
Naja - man kann schon nen bisserl tricksen, je nachdem wofür das ding sein soll...
auf Tabellenblatt 2 gehen und ne einfache Formel in A1:
WENN ($Tabelle1:C1=1;1;0)
in B1:
WENN ($Tabelle1:C1=2;1;0)
in C1:
WENN ($Tabelle1:C1=3;1;0)
Jetzt hat man auf dem zweiten Tabellenblatt die Werte in 3 Spalten aufgesplittet. Dann über jede Spalte ne Summe ziehen -> und die wieder zurück auf Tabelle1 in die richtigen Felder packen...
Ist keine schöne Lösung - aber für ne kleine Zwischendurchtabelle sollte die ausreichen.
auf Tabellenblatt 2 gehen und ne einfache Formel in A1:
WENN ($Tabelle1:C1=1;1;0)
in B1:
WENN ($Tabelle1:C1=2;1;0)
in C1:
WENN ($Tabelle1:C1=3;1;0)
Jetzt hat man auf dem zweiten Tabellenblatt die Werte in 3 Spalten aufgesplittet. Dann über jede Spalte ne Summe ziehen -> und die wieder zurück auf Tabelle1 in die richtigen Felder packen...
Ist keine schöne Lösung - aber für ne kleine Zwischendurchtabelle sollte die ausreichen.
Hallo zusammen!
Noch nen Code nach dem vorgegebenen Muster zum testen
Als Variable muss nur die Zelle mit dem ersten Wert z.B "E3" angegeben werden.
Der Aufbau der Zellen muss allerdings das Format haben, wie es von manibam vorgegeben wurde. D.h. Die Spalte mit dem Farb-Text muss z.B. bei Werte in Spalte "E" in dem Fall Spalte "D" sein. Ausserdem darf unter den Zellen von Farb-Text nichts mehr stehen, wobei der Farb-Text selbst ohne Bedeutung ist. Wichtig ist nur, dass was drin steht und sie mit entsprechender Farbe formatiert sind.
Unter diesen Voraussetzungen können beliebig neue Farben für Summen hinzugefügt und für Werte neue Zeilen eingefügt werden.
Tabellen-Format z.B. für Werte ab Zelle "E3":
Der Code wird wie folgt in's Tabellenblatt "Name" eingefügt:
<Menu><Extras><Makro><Visual Basic Editor><TabelleX ("Name") Doppelklick><Quelltext einfügen><Symbol Speichern><VB-Editor schließen>
Das Makro funktioniert soweit automatisch, allerdings werden Farb-Formatierungen nicht als Erreignis erkannt.D.h. nach einer Farbformatierung muss eine andere x-beliebige Zelle in dem Spaltenbereich Farb-Text/Werte selektiert werden.
Gruß Dieter
Noch nen Code nach dem vorgegebenen Muster zum testen
Const RngWert = "E3" 'Zelle mit dem erstem Wert
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim W As Range, T As Range, S As Double, EndT As Long, BegT As Long, ColW As Integer, ColT As Integer
ColW = Range(RngWert).Column: ColT = Range(RngWert).Offset(0, -1).Column
If Target.Column < ColT Or Target.Column > ColW Then Exit Sub
EndT = Cells(Rows.Count, ColT).End(xlUp).Row: BegT = Cells(EndT, ColT).End(xlUp).Row
For Each T In Range(Cells(BegT, ColT), Cells(EndT, ColT))
S = 0
For Each W In Range(Range(RngWert), Cells(BegT - 1, ColW))
If IsNumeric(W) And W.Interior.ColorIndex = T.Interior.ColorIndex Then S = S + W
Next
T.Offset(0, 1) = S
Next
End Sub
Der Aufbau der Zellen muss allerdings das Format haben, wie es von manibam vorgegeben wurde. D.h. Die Spalte mit dem Farb-Text muss z.B. bei Werte in Spalte "E" in dem Fall Spalte "D" sein. Ausserdem darf unter den Zellen von Farb-Text nichts mehr stehen, wobei der Farb-Text selbst ohne Bedeutung ist. Wichtig ist nur, dass was drin steht und sie mit entsprechender Farbe formatiert sind.
Unter diesen Voraussetzungen können beliebig neue Farben für Summen hinzugefügt und für Werte neue Zeilen eingefügt werden.
Tabellen-Format z.B. für Werte ab Zelle "E3":
D | E | |
1 | ||
2 | ||
3 | Wert | |
n | Wert | |
Leer | ||
? | Text | =Summe |
. | .... | =Summe |
Der Code wird wie folgt in's Tabellenblatt "Name" eingefügt:
<Menu><Extras><Makro><Visual Basic Editor><TabelleX ("Name") Doppelklick><Quelltext einfügen><Symbol Speichern><VB-Editor schließen>
Das Makro funktioniert soweit automatisch, allerdings werden Farb-Formatierungen nicht als Erreignis erkannt.D.h. nach einer Farbformatierung muss eine andere x-beliebige Zelle in dem Spaltenbereich Farb-Text/Werte selektiert werden.
Gruß Dieter