Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
808to812
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!

Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
12.10.2006 09:06:44
sandro
Grüß Euch!
Ich hab folgendes zu lösen und ohne eure hilfe schaffe ich es nicht!
Ich habe hier ein Exel File : https://www.herber.de/bbs/user/37329.xlt
In dieses File müssen unsere User eben ihre daten eingeben und danach führen sie produktprüfung durch.
Das Prüfgerät schickt die Messwerte voll automatisch ins Excel.
Ich benötige jetzt ein Linien Diagramm das von F$16 bis ins unendliche die Daten dynamisch aufnimmt. Immer Schritt für Schritt eins Weiter springen.
Sollte bei einer Messung der wert von 50 - 10 mal überschritten werden sollte eine msg-box geöffnet werden mit dem text alarm.
wird bei einer messung nichts hineingeschrieben sollte das diagramm automatisch den wert 55 hineinschreiben.
ich hoffe ihr könnt mir helfen!
danke im voraus
sandro

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
12.10.2006 09:51:54
ingUR
Hallo, @sandros,
es gibt wohl verschiedene Arten, diese Fragestellung zu lösen, die wohl auch schon alle irgendwo hier beschrieben wurden.
Jedoch bevor man hier auf die verschieden Ansätze hinweist und sie entsprechnd den notwendigen Veränderungen problemgerecht bearbeitet, sei die Frage beantwortet, was verstehst Du im Zusammenhang mit dem begrenzten Aufnahmebereichen in EXCEL-Tabellen und EXCEL-Diagrammen (maximal 32000 Datenpunkte einer Reihe in einem 2D-Diagramm darstellbar) unter der Forderung bis ins unendliche die Daten"?
Wurde bedacht, dass infolge der Auflösung eines Bildschirms nur eine zu jedem Fortentwicklungsstand der Reihe begrenzte Anzahl der Punkte dargestellt werden kann, es also passieren kann, das Peaks gar nicht oder nur gemittelt dargestellt werden?
Wenn es sich nun von der Optik und Lesbarkeit des Diagramms anbieten sollte, das nur ein fester Berech von x-Datenpunkten dargestellt werden soll (gleitendes Zeitfenster über die Datenreihe), dann könnte man daran Denken, die Listeneinträge zo zu gestallten, dass der jüngte Eintrag immer in die Zeile 16 eingetragen wird, nachdem die Historie um eine Zeile nach unten verschoben wurden. Damit wird der Darstellungsbereich immer F16:F16+x im Diagramm sein und ein Überlauf der Datensätze kann auch verhindert werden.
Gruß,
Uwe
Anzeige
AW: Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
12.10.2006 10:10:55
sandro
hallo!
nein das passt schon so wie ich es haben möchte!
es sollte nur bis ins unendliche weiter springen weil pro schicht ca. 200-250 Messungen durchgeführt werden! einmal ne messung mehr einmal eine weniger!
es soll immer zuerst F$16 dann schreibt er in F$17 und und und........
mfg
sandro
AW: Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
12.10.2006 11:49:25
ingUR
Hallo, @sandro,
vielleicht hilft Dir die Idee in dieser Arbeitsmappe weiter
https://www.herber.de/bbs/user/37339.xls
Gruß,
Uwe
P.S.
Was bisher an Lösungsvorschlägen umgesetzt wurde, habe ich nicht gesehen, da ich den Beitrag von @th.heinrich erst beim Hochladen gesehen habe.
Anzeige
AW: Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
12.10.2006 14:28:44
sandro
hallo uwe!!!
dankeschön für deine Hilfe! Genau das habe ich benötigt!!!
Aber eine kleine modifikation im VB-Script benötige ich noch:
ich benötige auch noch eine messagebox bei 10 messungen,wenn der wert unter -10 fällt.
und ist es möglich den zähler mit einem button zurücksetzen zurückzusetzen wenn der wert für 10 messungen 50 bzw. 55 überschritten bzw. -10 überschritten wird!!!
dann wäre es noch gut wenn die msg-box nur kommt wenn die werte 10 + - hintereinander überschritten werden!!!
Option Explicit
Const DR_COLUMN = 6 'hier Spalte F
Const DR_ROW = 16
Const DUMMYVALUE = 55
Const SCHWELLE = 50
Const HSCHWELLE = 10

Sub ReDrawDiagramm()
Dim ws As Worksheet, maxRow As Long
Dim c As Range, countXplus As Integer
Set ws = Worksheets("INDIVIDUAL")
maxRow = ws.Cells(Rows().Count, DR_COLUMN).End(xlUp).Row
'Routine zur Festellung ob Werte gesetzt sind und
'wie of der Wert X überschritten wurde
For Each c In Range(Cells(DR_ROW, DR_COLUMN), Cells(maxRow, DR_COLUMN))
If c.Value = "" Then c.Value = DUMMYVALUE
If c.Value >= SCHWELLE Then countXplus = countXplus + 1 'ggf vor Leerzellenauffüllung setzen
Next
ActiveWorkbook.Names.Add Name:="Diagrammdaten1", RefersToR1C1:= _
"=" & ws.Name & "!R" & DR_ROW & "C" & DR_COLUMN & ":R" & maxRow & "C" & DR_COLUMN
If countXplus > HSCHWELLE Then
Beep
Beep
MsgBox countXplus & " Messwerte überschreiten den Grenzwert " & SCHWELLE & "! BITTE EINSTELLER KONTAKTIEREN!!!"
Beep
End If
End Sub

Dankeschön im voraus
mfg
Sandro
Anzeige
AW: Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
12.10.2006 19:08:32
ingUR
Hallo, Sandro,
um erst einmal mit der Antwort zum "Nachbeitrag" zu beginnen, in dem Du Deine Beobachtung schilderst, dass «der cursor sich immer in der F spalte befinden muss. sprich es muss immer eine zelle unter den messergebnissen angeklickt sein damit er die messwerte ins diagramm übernimmt!», so ist zu beemerken, dass dem nicht ganz so ist.
Das Ereignis Diagrammaktualisierung wollte ich hier - in Unkenntnis des Umgebenen Programmcodes, der die Zellen sonst füllt - dadurch ausgelöst, dass das Verlassen der Spalte B bemerkt wird. Dabei ist mir allerdings ein Abfragefehler unterlaufen der auszubessern ist:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static prevAdr As String
    Dim currAdr As String
    currAdr = Target.Address
    If Len(prevAdr) > 0 then
       If TargetRange(prevAdr).Column = DR_COLUMN Then
          ReDrawDiagramm
       End If
    END if
    prevAdr = currAdr
End Sub
Natürlich hätte man auch nur mit der Spaltennummer operieren können, statt sich umständlich die Adresse der Zelle zu merken, die verlassen wurde.
Aber wie erwähnt, der Auslöser für Diagrammaktualisierung und der damit verbunden Prüfung der Werte, richtet sich nach Deiner Programmgestaltung. Die Funktion ReDrawDiagramm sollte nach der Stelle aufgerufen werden, an der im Programm eine Zelle der Spalte mit der Datenreihe des Diagramms eine Zuweisung erfolgt, sofern keine weiteren Anweisungen dazwischen vor dem Neuzeichnen sinnvoll sind:
Cells(Zeile,6) = CSgl(UserForm1.Textbox4.Text)
ReDrawDiagramm
Dadurch kann der von mir gewählte Auslöser, den ich für Testzwecke unter dem Gesichtpunkt der Eingabe per Hand eingebaut habe, entfallen.
Alternativ kann allerdings, wenn keine direkte manuelle Eingabe in den Zellen der Datenreihe vorgesehen ist, das Change-Ereignis als Auslöserfunktion verwendet werden.
Soviel zur Wahl des Auslösers. Dein Hinweis «Aber eine kleine modifikation im VB-Script benötige ich noch: ...» verwundert mich denn doch, da ich meinte, hier jemanden ein Grundgerüst gegeben zu haben, der zur "Level"-Einschätzung seiner Kenntnisse "EXCEL-gut/VBA-gut" wählt. Das Einbauen eines weiteren Schwellwertes mit dazugehöriger zweiter MsgBox gestaltet sich doch da eher als "Abschreibübung", als als Programieraufwand, oder?.
https://www.herber.de/bbs/user/37353.xls
Die weiteren Fragen sind allerdings dann für mich nicht so klar formuliert, das ich eindeutig erkennen könnte, was programmtechnisch umgesetzt werden sollen.
    [Sandro]:
  • es möglich den zähler mit einem button zurücksetzen zurückzusetzen wenn der wert für 10 messungen 50 bzw. 55 überschritten bzw. -10 überschritten wird!!!
Was soll das bedeuten?
Bei jedem Neuzeichnen des Diagramms werden alle Werte der Zellen F16 bis FmaxRow in einem Schleifendurchgang überprüft und dabei die Grenzwertüberschreitungen/-erreichung gezählt (0,1,...x). am Ende der Schleife wird untersucht, ob die Zählvariable den vorgegeben Häufigkeitswert überschritten hat.
Damit ist dann, nach Aktuallisierung des Diagramms die Prozedur ReDrawDiagramm beendet und die lokalen Variblenwerte innerhalb der Prozedur haben bei einem Erneuten Aufruf der Prozedur wieder den Wert Null.
Welcher Zähler soll also auf Null gesetzt werden?
Wenn damit gemeint ist, dass nach 10 Grenzwertverletzungen eine erneute Benachrichtigung erst wieder beim der 20. Grenzwertverletzung erfolgen soll, dann ist dieses programmierbar, wobei z.B. als Kriterium der ganzahlige Rest von (countXplus/HSCHWELLE_PLUS), der Null sein muß - sofern auch countXplus > 0 -, genutzt werden kann, um zu erkennen, wenn das Benachrichtungsfenster geöffnet werden soll. Allerdings kann ich die Logik dieser Selektierung nicht verstehen, da die z.B. die 11. bis 19. Grenzwertverletzungen unbeachtet bleiben.
    [Sandro]:
  • dann wäre es noch gut wenn die msg-box nur kommt wenn die werte 10 + - hintereinander überschritten werden!!!
Was ist hier gemeint mir "wert 10 + -"? Soll untersicht werden, ob die Grenzwertverletzung einer Seite, wenn sie denn 10 oder mehr Mal erfolgt ist, direkt aufeinander folgend eingetreten ist? Hierfür benötigst Du einfach beim Durchlauf über die Zellen eine zusätzlichen Zähler, der immer dann Hochgezählt wird, wenn eine Grenzwertverletzung vorliegt und der Wert Datenreihenwert davor ebenfalls eine Verletzung der gleichen Grenze bewirkte:
'Programm-Ideenskizee...
if Wert(i) >= Grenzwert The
counterX = counterX +1
continueos_plus = iif(i > 1 AND Wert(i-1) >= Grenzwert;1; conntinueos_plus+1;1)
end if
Ich hoffe, die Erläuterungen sind hilfreich.
Gruß,
Uwe
Anzeige
AW: Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
13.10.2006 09:47:22
sandro
hallo uwe!
sorry das ich mich so unkorrekt ausgedrückt habe!
das mit dem abschreiben bzw. angleichen ist ja kein problem! ich hoffe das mit dem diagramm aktualisierung funktioniert mit dem was du mir hier geschrieben hast! denn die eingabe in die zellen wird automatisch durch ein programm durchgeführt! die user können in die zellen nichts eintragen!
ich probier es jetzt einmal anders auszudrücken:
so, du hast es mir jetzt so programmiert das die msg-boxen dann erscheinen wenn insgesamt bei den messwerten 10 Prüfungen den Messwert überschreiten. das bedeutet wenn bei 200 Messungen 10 Prüfungen den Wert +50 oder -10 überschreiten kommt die jeweilige msg-box.
das was ich gemeint habe ist so was ähnliches wie du es schon angesprochen hast.
die msg-boxen sollen nur dann kommen wenn 10 Prüfungen den Wert +50 oder -10 HINTEREINANDER überschreiten. also wenn 9 Prüfungen über den Werten liegen und sich die 10 Prüfung im vorgegeben Bereich befindet sollte keine msg-box kommen.
Es sollte auch so sein wenn jetzt 10 Prüfung den Schwellwert überschreiten entweder +50 oder -10 erscheint die msgbox und wenn die nächste messung wieder ok(im bereich) ist sollte keine msgbox mehr kommen! erst wenn die nächsten 10 Prüfungen hintereinander die Norm +50 bzw 10 Prüfungen hintereinander -10 ereichen sollte die msg-box wieder erscheinen!
ich hoffe du verstehst was ich meine!!!
lg
sandro
Anzeige
AW: Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
13.10.2006 11:00:54
ingUR
Hallo, Sandro,
wenn das was ich geschrieben haben sollte, nicht so funktioniert, wie es sollte, dann wirst Du Dich sicher melden. Suche jedoch zuvor die Stelle im Progamm, an der ein ein Zuweisung an eine Zelle in dem Bereich der Datenreihe (F16:F...) gemacht wird und füge danach, in geeigneter Umgebung je nach anfallender Datenmenge (Zeitintervallgröße beachten, um möglichen Datenausfall zu vermeiden!), den Funktiontionaufruf ein.
Wenn, und so habe ich Dich jetzt verstanden, nicht darum geht, jede Vorkommende Grenzwertverletzung zu signakisieren, sondern nur dann eine Meldefenster, gleich oder mehr als zehn Mal in Serie diese Grenzwertverletzung eingetreten ist, dann kann die Variable counterXplus gekoppelt mit der Zuweisung, wie ich sie in meiner Ideenskizze vorgesehen habe, ohne große Änderungen verwendet werden (Programmteil nicht getestet):
      ...
If c.Value >= SCHWELLE_PLUS Then
countXminus = 0
If i = 1 then
countXplus = 1
Else
countXplus = iif(c.Value(i-1) >= SCHWELLE_PLUS; countXplus+1; 1 )
End If
Else
countXplus = 0
End If
...
Dieser Block wird mutatis mutandis auch für den negativen Grenzwertüberwachung eingesetzt.
Der Abfrageblock zur Prüfung ob ein Nachrichtenfenster geöffnet bleiben soll, bleibt dann unverändert. So wird also dann Meldung geben, wenn eine Serie von zehn Ereignissen zur jeweiligen Grenzwertverletzung enstanden ist bzw. bei jedem weiteren Wert, der diese aktuelle Serie verlängert.
Gruß,
Uwe
Anzeige
AW: Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
13.10.2006 11:16:23
sandro
hallo!
du hast das richtig verstanden!
wo sollte ich das jetzt einfügen? im modul?
Option Explicit
Const DR_COLUMN = 6 'hier Spalte F
Const DR_ROW = 16
Const DUMMYVALUE = 55
Const SCHWELLE_PLUS = 50
Const SCHWELLE_MINUS = -10
Const HSCHWELLE_PLUS = 10 'Häufigkeit
Const HSCHWELLE_MINUS = 10 'Häufigkeit

Sub ReDrawDiagramm()
Dim ws As Worksheet, maxRow As Long
Dim c As Range, countXplus As Integer, countXminus As Integer
Set ws = Worksheets("INDIVIDUAL")
With ws
maxRow = .Cells(.Rows().Count, DR_COLUMN).End(xlUp).Row
'Routine zur Festellung ob Werte gesetzt sind und
'wie of der Wert X überschritten wurde
For Each c In .Range(.Cells(DR_ROW, DR_COLUMN), .Cells(maxRow, DR_COLUMN))
If c.Value = "" Then c.Value = DUMMYVALUE
If c.Value >= SCHWELLE_PLUS Then countXplus = countXplus + 1 'ggf vor Leerzellenauffüllung setzen
If c.Value <= SCHWELLE_MINUS Then countXminus = countXminus + 1
Next
ActiveWorkbook.Names.Add Name:="Diagrammdaten1", RefersToR1C1:= _
"=" & ws.Name & "!R" & DR_ROW & "C" & DR_COLUMN & ":R" & maxRow & "C" & DR_COLUMN
If countXplus > HSCHWELLE_PLUS Or countXminus > HSCHWELLE_MINUS Then
Beep
If countXplus > HSCHWELLE_PLUS Then
MsgBox countXplus & " Messwerte erreichen oder überschreiten den Grenzwert " & SCHWELLE_PLUS
Else
MsgBox countXminus & " Messwerte erreichen oder unteschreiten den Grenzwert " & SCHWELLE_MINUS
End If
Beep
End If
End With
Set ws = Nothing
End Sub

Anzeige
AW: Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
13.10.2006 12:44:29
ingUR
Hallo, Sandro,
ich habe die betreffenden Zeilen, die durch den neuen IF-Block bzw. modifizierten IF-Block zu ersetzen sind, mitt **** am linken Rand markiert und hoffe, dass es Dir weiter hilft:
....    'Routine zur Festellung ob Werte gesetzt sind und
'wie of der Wert X überschritten wurde
For Each c In .Range(.Cells(DR_ROW, DR_COLUMN), .Cells(maxRow, DR_COLUMN))
If c.Value = "" Then c.Value = DUMMYVALUE
****    If c.Value >= SCHWELLE_PLUS Then countXplus = countXplus + 1 'ggf vor Leerzellenauffüllung setzen
****    If c.Value <= SCHWELLE_MINUS Then countXminus = countXminus + 1
Next
....
Viel Erfolg!
Uwe
Anzeige
AW: Diagramm mit vielen Sonderfunktionen! HILFE!!!!!!!
12.10.2006 15:12:23
sandro
hallo uwe!
und was mir noch aufgefallen ist, ist, das der cursor sich immer in der F spalte befinden muss. sprich es muss immer eine zelle unter den messergebnissen angeklickt sein damit er die messwerte ins diagramm übernimmt!!
danke
sandro

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige