660 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

hab da mal wieder ein Problem bei dem ich wieder nicht weiter komme.

kurze Erklärung:

Wenn ich in der Spalte B irgendetwas eintrage wird die jeweilige Zeile von B bis U grau hinterlegt durch eine Bedingte Formatierung.

Wenn ich in Spalte K unter die grau hinterlegte Zeile etwas einfüge wird dies automatisch Gruppiert.

In den Gruppierung stehen dann alle möglichen Werte drin die ich dann in Spalte S bis U auswerten möchte hier wird dann händisch eingegeben selbst wenn in Spate O und P die Daten übereinstimmen kann es trotzdem zu Abweichungen kommen.

Die Daten die ich händisch eingebe, möchte ich gerne Spalte für Spalte zusammen zählen und in die grau hinterlegte Spalte eintragen lassen damit ich nicht immer die Gruppierung aufmachen muss um ein Überblick zu bekommen.

Natürlich wäre es einfach es schnell auszurechen und oben drüber zuschreiben nur wenn es vergessen wird gibt es eben keine Auswertung in dem Sinne.

Ich hoffe das ich es einiger Maßen erklären konnte was mein Vorhaben ist. Vielleicht hat ja jemand einen Trick parat.

Ich hab einfach mal meine Datei angehangen

https://www.dropbox.com/s/yjenf9wq8643ydj/test%20V1.xlsm?dl=0

Gruß

energun222

5 Antworten

0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

und wo sollen die Summen eingetragen (welche Spalten)? Ich nehme mal an, die Summe soll in die Zeile mit der NVE-Nummer.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

genau.

Wenn ich die 4. Gruppierung öffne hab ich dort in Spalte U im weißen Bereich meine händische Auswertung eingegeben hier also 2 mal die 1 oben drüber also da wo die NVE steht hab ich einfach mal 2 reingeschrieben also zusammen gerechnet und da wo die 2 steht soll quasi zusammen gerechnet werden.

Ich hab natürlich auch ein bissl gegoogelt das man sowas via vba realisieren kann also das man zumindestens Mittels VBA Wenn zb. in B:B etwas steht dann eine Formel in eine andere Zelle platzieren kann aber so wirklcih schlau werd ich da nicht draus da fehlt es an der VBA Kenntniss.


Gruß

energun222
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

ich habe anhand deiner Beispieldatei für die Spalte U einen Code für das automatische Einfügen einer Summenformel geschrieben. Der Code ist so aufgebaut, dass du ihn entsprechend auch für andere Spalten nutzen kannst. Du musst dann nur das Worksheet-Change-Makro entsprechend ergänzen.
Ersetze dein altes Worksheet-Change-Makro durch das folgende Makro:.
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("K:K")) Is Nothing Then Call Gruppieren

If Not Intersect(Target, Range("U:U")) Is Nothing Then
lngSpalte = 21 'Zielspalte übergeben
lngZeile = Target.Row 'Zielzeile übergeben
Call Summieren 'Makro für Summenformel aufrufen
End If

End Sub


Das folgende Makro gehört in eine allgemeines Modul:

Global lngSpalte As Long
Global lngZeile As Long

Sub Summieren()
Dim lngEnde As Long
Dim lngFormel As Long

'Prüfen, ob Eingabe in Zeile mit NVE-Nummer ist; falls ja Makro verlassen
If IsEmpty(ActiveSheet.Cells(lngZeile, 4)) = False Then Exit Sub

'Zeile mit NVE-Nummer suchen
For lngFormel = lngZeile - 1 To 3 Step -1
If IsEmpty(ActiveSheet.Cells(lngFormel, 4)) = False Then Exit For
Next lngFormel

'Ende des Bereichs ermitteln - Spalte K überprüfen
For lngEnde = lngZeile To ActiveSheet.Cells(Rows.Count, 11).End(xlUp).Row
If IsEmpty(ActiveSheet.Cells(lngEnde, 11)) = True Then Exit For
Next lngEnde

'Formel einfügen
ActiveSheet.Cells(lngFormel, lngSpalte).FormulaLocal = "=Summe(" & Cells(lngFormel + 1, lngSpalte).Address & ":" & Cells(lngEnde - 1, lngSpalte).Address & ")"

End Sub

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

nochmal ich ;-). Für den Worksheet-Change-Code ist mir noch eine Verbesserung eingefallen:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("K:K")) Is Nothing Then Call Gruppieren

If Not Intersect(Target, Range("U:U")) Is Nothing Then
lngSpalte = Target.Column 'Zielspalte übergeben
lngZeile = Target.Row 'Zielzeile übergeben
Call Summieren 'Makro für Summenformel aufrufen
End If

End Sub


Gruß
M.O.
0 Punkte
Beantwortet von
Hallo,

jaaaaaaaaaa, richtig nice! Das erspart einiges an Arbeit oder Nerven. :-)

Vielen Dank dafür, kann man ganz sicher noch öfter gebrauchen.


Gruß

energun222


Antwort hat mein Problem gelöst! :-)
...