VBA Makro: Ausgeblendete Zeilen überspringen

Nur das Problem ist, dass sich mein PC fast aufhängt wenn er
das Makro ausführt und, dass nun in meiner Diagrammlegende
Datenreihe 14, Datenreihe 19 auch zu finden ist.

Ich brauch es leider, dass z.b nur die 4 Reiehn die der
AUtofilter anzeigt im Diagrammbereich zu finden sind.

Hallo Michael,

ungetestet, wenn es nicht klappt dann lade mal die mappe hoch mit file-upload, s. FAQ:2606

Option Explicit

Sub tt1()
'Überschreibt die Zielwerte
Dim Zeile As Long, Zelle As Range, I As Integer, oBlatt As Worksheet, cht
On Error GoTo hell
Set oBlatt = Tabelle1
With oBlatt
 .Range("BC3").FormulaLocal = "=AV4/1000" 'Heat\_Flux
 .Range("BD3").FormulaLocal = "=AW4" 'HC\_FLux
 .Range("BE3").FormulaLocal = "=AX4" 'NOx\_Flux
 .Range("BF3").FormulaLocal = "=AY4\*1000" 'SM\_VAL2
 .Range("BG3").FormulaLocal = "=AZ4" 'VPI
 ' Löschen des Diagrammbereichs1 bis auf einen(Zielwert)
 Set cht = ActiveSheet.Shapes(1) 'Diagramm1
 With cht
 For I = .SeriesCollection.Count To 1 Step -1
 If I \> 1 Then .SeriesCollection(I).Delete
 Next I
 End With
 'Erstellt neuen Diagrammbereich1
 On Error Resume Next
 For Each Zelle In .Range("B3:B200").SpecialCells(xlCellTypeVisible)
 Zeile = Zelle.Row
 I = I + 1
 cht.ChartArea.Select
 cht.SeriesCollection.NewSeries
 cht.SeriesCollection(I + 1).Name = "=Data!$B$" & CStr(Zeile)
 cht.SeriesCollection(I + 1).Values = "=Data!$BI$" & CStr(Zeile) & ":blush:BM$" & CStr(Zeile)
 cht.SeriesCollection(I + 1).XValues = "=Data!$BI$2:blush:BM$2"
 Next Zelle
 On Error GoTo hell
End With
hell:
If Err.Number 0 Then MsgBox Err.Number & vbCr & Err.Description
Set oBlatt = Nothing
Set cht = Nothing
End Sub

Gruß
Reinhard

Hallo Reinhard!

Ich darf das file leider nicht veröffentlichen. Ich habe dir eine mail geschickt.

DANKE

Grüezi Mis0r

Ich darf das file leider nicht veröffentlichen.

Das sollst Du ja auch nicht, sondern einen identisch aufgebaute Mappe mit Dummy-Daten drin.

Ich habe dir eine mail geschickt.

…und damit verbaust Du dir die Mithilfe anderer User hier - schade auch für die künftigen Mitleser, die nun nix mehr von einer gefundenen Lösung haben…

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Ich darf das file leider nicht veröffentlichen. Ich habe dir
eine mail geschickt.

Hallo Michael,

eine Mappe zu anonymisieren geht doch fix.
Alles was nicht fürs Diagramm gebraucht wird fliegt raus.
Sind in einer Spalte verräzterische Namen/Bezeichnungen, schreibst in die oberste Namenszelle
Namen1
dann ziehste die rechte untere Ecke einfach nacu unten.

brauchste einen namen vermach wegen Autofilter, korrigiere das mhalt manuell.
Und wir brauchen keine Hunderete datenzeilen, 30 o.ä. reichen.

Zahlen, was ja ohne bezug nix sagt, aber bitte, die kannste auch mit
=ganzzahl(Zufallszahl()*100)
anonymisieren.

Gruß
Reinhard

ich habe in die mail geschrieben, dass ich ihm das excel file schicke :smile:

und dass wir danach den lösungscode veröffentlichen!!!

Grüezi mis0r

DU hast recht bei den BalkenDiagrammen funktioniert das auch
hervorragend. ABer bei den Spinnendiagrammen müsste ich 200
Zeilen per Hand einlesen…

Das kann ich so nicht wirklich nachvollziehen - warum solltest Du 200 Datenriehen manuell einfügen müssen…?

Weil der spinnendiagrammbereich wird in einer Reihe gewählt
also in Reihe 4: BB4 und BI4 bis BM3

und das müsste ich jetzt für 200+ Zeilen jede einelne reihe
machen :frowning:

Quatsch! :wink:

Markiere alle deine Daten und erstelle das Netzdiagramm.
Im zweiten Schritt gibst Du an, dass die Datenreihen in Zeilen zu suchen sind und du erhältst ein Netzdiagramm mit 200 Datenreihen.

Anschliessend kannst Du wie gewohnt über den Autofilter Datenreihen (also ganze Zeilen) ausblenden und diese werden aus dem Diagramm entfernt.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi Michael

ich habe in die mail geschrieben, dass ich ihm das excel file
schicke :smile:

und dass wir danach den lösungscode veröffentlichen!!!

Hallo Leute!

nun aber ich habs stark vereinfacht. hoffe es geht trotzdem und euch ist klar um was es geht. wenn nicht einfach fragen

[MOD] Link auf eigenen Wunsch entfernt

bzw. am ende dieses makros habe ich noch ein makro welches mir die leeren zeilen x bis 200 ausbledet, damit der diagrammbereich sinnvoll dargestellt wird…

also damit keine leeren datenreihen angezeigt werden

Hallo Michael,

ich habe in die mail geschrieben, dass ich ihm das excel file
schicke :smile:

korrekt. Habe ich darauf geantwortet daß du das tun kannst/solltest?
Nö. Ich habe dir nicht per Mail sondern hier geantwortet und dir versucht zu helfen deine mappe zu anonymisieren sodaß daß du sie unbesorgt hier hochladen kannst.

und dass wir danach den lösungscode veröffentlichen!!!

Hallo Michael,

einfach fragen? Okay, da biste bei mir richtig :smile:)

Sind für die Beantwortung deiner Anfrage alle vier Tabellenblätter und die drei Diagrammblätter notwendig, wenn nicht, warum sind sie da?

Dein Code bezieht sich auf das Blatt „data“.
Was sehe ich da, eine Überschriftszeile mit 96 Zellen die das Autofilter Symbol haben.

Toll, woher soll ich wissen wo du was filterst?

Und wenn es der bereich in diesem Auszug sein sollte:

Tabellenblatt: [Mappe1]!Tabelle1
 │ B │ C │ D │ E │ F │ G │ H │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
 4 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
 5 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
 6 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
 7 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
 8 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
 9 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
10 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
11 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
12 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
13 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
14 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
15 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
16 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
17 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
18 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
19 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
20 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┼──────┼──────┼─────┼───┼───────┼────────┼──────┤
21 │ TEST │ test │ 1,5 │ 4 │ Meier │ MÜLLER │ test │
───┴──────┴──────┴─────┴───┴───────┴────────┴──────┘
Zahlenformate der Zellen im gewählten Bereich:
B4:B21,C4:C21,E4:E21,F4:F21,G4:G21,H4:H21
haben das Zahlenformat: Standard
D4:smiley:21
haben das Zahlenformat: 0,0

Tabellendarstellung erreicht mit dem Code in FAQ:2363

wie soll ich da filtern? Ich hatte dir geschrieben wie man das macht damit man nach Unterschieden filtern kann. Warum nicht umgesetzt?

Versuche das mal nicht von deiner Anfrage aus zu sehen sondern von der Helferseite.
Je einfacher du uns das machst und umso klarer deine Fragen sind umso schneller/besser kann dir geholfen werden.

Du brauchst vielleicht 3 Minuten um deine beispielmappe zu erstellen, so what.
10 Hilfsbereite brauchen wenn sie das was du das geschickst gebrauchsfähig zu machen auch je 3 min, das sind 30 min.

Also 27 min völlig für die katz, die sinnlos verpulvert wurden.
Das könnte dir ja kurz gedacht schnuppe sein, aber weitergedacht bedeutet das genauso klar, wenn du helferzeit sinnlos verpulverst so schlägt das auf dich zurück.

nämlich dann wenn du irgendwo anfragst und die helfer haben keine Zeit für dich weil sie grad ihre wertvolle zeit für so’n Scheiß verplempern.

Gruß
Reinhard

Gruß
Reinhard

Hallo Reinhard!

Tut mir leid,wenn du das in den falschen hals reinbekommen hast.

Ich habe nichts anderes vor mir wie du. Filtern tun wir mit dem Bereich A4:A200 wenn wir 1 in die zellen reinschreiben wollen wir genau diese angezeigt bekommen.

oder was meinst du? bzw. könntest du cheops und bosch aus deinem alten beitrag rausnehmen? da ich die vergessenhabe zu löschen :frowning:

vielen dank

Grüezi mi0r

Ich habe nichts anderes vor mir wie du. Filtern tun wir mit
dem Bereich A4:A200 wenn wir 1 in die zellen reinschreiben
wollen wir genau diese angezeigt bekommen.

Ich sage erneut: Autofilter , so wie ich es hier beschrieben habe:

/t/vba-makro-ausgeblendete-zeilen-ueberspringen/6572…

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

hast du dir die spinnendiagramm bereich angesehen vielleicht verstehe cih dich nícht ganz aber wenn ich den bereich bei einem einfach hinunter ziehe nimmt er die daten nicht

bzw. genau fehlermeldung:

bezug ungültig wert muss aus einer reihe oder spalte kommen

Grüezi mis0r

hast du dir die spinnendiagramm bereich angesehen vielleicht
verstehe cih dich nícht ganz aber wenn ich den bereich bei
einem einfach hinunter ziehe nimmt er die daten nicht

Ja, klar geht das nicht, weil dein Diagramm ja schon per VBA ‚verhunzt‘ worden ist… :wink:

Markiere mal die folgenden Bereiche in der Demo-Mappe:

B4:B21 und gleichzeitig auch BI4:BM21

Erstelle nun ein neues Netz-Diagramm und wähle dann im zweiten Schritt, dass die Daten in Zeilen liegen und nicht in Spalten.

Nun hast du ein Diagramm mit so vielen Datenreihen wie es Zeilen gibt.

Blendest du nun über den Autofilter in Spalte A einige Zeilen aus, so sind diese im Diagramm nicht mehr dargestellt.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

funktioniert das auch, wenn ich den kopieren button verwende?

der kopiert mir in data von import die mittelwerte immmer in zeile 4 und verschiebt den rest der tabelle nach unten.

Der diagrammbereich wird somit auch nach unten verschoben und somit gehts wieda nicht.

oder täuscht mich das?

Grüezi mis0r

Welche Exel-Version verwendest Du - der Datei nach zu urteilen dürfte das xl2007 oder jünger sein.

funktioniert das auch, wenn ich den kopieren button verwende?

Keine Ahnung, weiss ja nicht was der so tut… :wink:

der kopiert mir in data von import die mittelwerte immmer in
zeile 4 und verschiebt den rest der tabelle nach unten.

Der diagrammbereich wird somit auch nach unten verschoben und
somit gehts wieda nicht.

oder täuscht mich das?

Musst Du ausprobieren - Du kannst ja das Diagramm bereits in Zeile 3 als erste Datenreihe beginnen lassen, und diese immer ausblenden.
Dann werden Zeilen die dazwischen eingeschoben werden den Datenbereich einfach vergrössern.

Ansonsten gehören bei einer klar strukturierten Liste neue Daten immer ans Ende - ggf kann man dann sortieren um sie nach oben zu bringen.

Bitte teste das Ganze doch selbst auch mal, statt uns hier mit prophylaktischen Fragen zu ‚beschäftigen‘… :wink:

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Michael,

Tut mir leid,wenn du das in den falschen hals reinbekommen
hast.

nein, hab ich nicht. Sieh es bitte als wohlgemeinte hilfreiche kritik mit Hintergrundinformationen wraum ich was kritisiere.

Filtern tun wir mit
dem Bereich A4:A200 wenn wir 1 in die zellen reinschreiben
wollen wir genau diese angezeigt bekommen.

Das bekam ich irgendwie nicht mit, sorry.

bzw. könntest du cheops und bosch aus
deinem alten beitrag rausnehmen? da ich die vergessenhabe zu
löschen :frowning:

Kann ich nicht aber Thomas. klicke in einem Beitrag von ihm rechts davon auf das Briefsysmbol und bitte ihn um „Schwärzung“ o.ä.

Und Thomas wiederholt nicht ohne Grund einen Beitrag von ihm, totsicher steckt da deine lösung drin.
Diese Lösung kann logischerweise nur dann korrekt funktionieren wenn all das was Thomas annimmt auch bei dir so vorliegt.

Wenn dem nicht so ist bzw. du verschweigst was was für uns wichtig ist, klar haste dann Umsetzungsprobleme.

Gruß
Reinhard

Hallo Leute ich möchte mich für den tollen support bedanken!!!

Ich habs hingekriegt! Die Lösung steckte in deinem Makro :smile:.

Der Vorschlag von Thomas hätte auch funktioniert. Leider wird aber mit jedem neuen Test eine Zeile oben eingefügt und der Diagrammbereich schiebt sich eine Zeile nach unten und die oberste Zeile wird dann leider vernachlässigt…

Trotzdem vielen Dank an euch beide, dass Ihr mir trotz meiner vagen angaben so gut geholfen habt.

Der finale code mit dem es Funktioniert:

Sub Diagrammbereich1\_neu()

'Überschreibt die Zielwerte
Dim Zeile As Long, Zelle As Range, I As Integer, oBlatt As Worksheet, cht As Chart

On Error GoTo hell

Set oBlatt = Tabelle1
With oBlatt
 .Range("BC3").FormulaLocal = "=AV4/1000" 'Heat\_Flux
 .Range("BD3").FormulaLocal = "=AW4" 'HC\_FLux
 .Range("BE3").FormulaLocal = "=AX4" 'NOx\_Flux
 .Range("BF3").FormulaLocal = "=AY4\*1000" 'SM\_VAL2
 .Range("BG3").FormulaLocal = "=AZ4" 'VPI


' Löschen des Diagrammbereichs1 bis auf einen(Zielwert)
 Set cht = Diagramm1 'Diagramm1
 With cht
 For I = .SeriesCollection.Count To 1 Step -1
 If I \> 1 Then .SeriesCollection(I).Delete
 Next I
 End With


'Erstellt neuen Diagrammbereich1
 On Error Resume Next
 For Each Zelle In .Range("B4:B200").SpecialCells(xlCellTypeVisible)
 Zeile = Zelle.Row
 I = I + 1
 cht.ChartArea.Select
 cht.SeriesCollection.NewSeries
 cht.SeriesCollection(I + 1).Name = "=Data!$B$" & CStr(Zeile)
 cht.SeriesCollection(I + 1).Values = "=Data!$BI$" & CStr(Zeile) & ":blush:BM$" & CStr(Zeile)
 cht.SeriesCollection(I + 1).XValues = "=Data!$BI$1:blush:BM$2"
 cht.SeriesCollection(1).Interior.ColorIndex = 34
 Next Zelle
 On Error GoTo hell
End With


hell:
If Err.Number 0 Then MsgBox Err.Number & vbCr & Err.Description


Set oBlatt = Nothing
Set cht = Nothing





End Sub

Danke noch mal und Grüße