Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Auslastungsdiagramm für Drucker





Frage

MOin! Ich komme aus der Sache mit dem Druckplan einfach nicht raus. Ich habe den Paln jetzt soweit fertig, dass ich 14 Tage auf ein Din A4 Blatt drucken kann. Jeder Tag hat Zeiten von 07 Uhr- 22 Uhr und 5 Drucker die laufen. Wenn ich z. B. bei Drucker 1 die Zellen von 7-13 Uhr markiere, dann wird der Bereich farbig, umrandet und die Zellen werden verbunden. Das klappt auch alles ganz wunderbar (Dank der Hilfe aus diesem Forum hier) Aber jetzt wird verlangt, dass ich dazu noch ein Auslastungsdiagramm erstelle, in dem man die prozentuale Benutzung der Maschine für diesen Tag sieht. Was soll ich tun? Geht das überhaupt? Cya, Mario Simon

Antwort 1 von MarioIOTC

Mhh, ist die SAche zu kompliziert?
Oder zu einfach?

Rein theoretisch muss der Computer j nur wissen, dass die Zellen von 7 UHr bis 22 Uhr 100% sind
und das er dann die Zellen, die markiert sind dann in einem Diagramm darstellt( Also Prozentuale Nutzung.)
Aber wie stell ich das an, dass er genau das weis?

Wenn sich jemand die Sache genauer anschauen will, dann kann ich die Datei auch per E-Mail schicken.

Cya, Mario

Antwort 2 von piano

Hallo
Also der Ansatz wäre: alle farbigen Zellen je Drucker und Tag auszulesen und die Anzahl in eine Tabelle ausgeben. Diese enthält dann die Überschrift Druckername und als Daten die Anzahl Stunden bzw. die % von 15 Stunden. Davon kannst Du ein Diagramm erzeugen.
Frage:
1. Soll die Gesamtsumme aller dargestellten Einträge dargestellt werden, oder tageweise oder wochenweise gruppiert (2.Dimension) ?
2. Ist die Tabelle in Ihrer Ausdehnung immer gleich, oder kommen ev. weitere Wochen dazu ?
Gruß piano


Antwort 3 von MarioIOTC

Also erstmal zu den Fragen:

1. Es soll einmal dargestellt werden die Auslastung für einen Tag und einmal die Auslastung für eine Woche. Aber das mit der Woche ist nicht ganz so wichtig.

2. Die Tabelle die ich gemacht habe, sin jeweils .
2 Wochen.
Die wollten das hier so haben. Weil man diese Tabelle mit zwei Wochen auf ein DIN A4 Blatt drucken kann.

Und ich versuche es erstmal so, wie du gesagt hast.

Danke!

Cya, Mario

Antwort 4 von piano

Hallo
OK, wenn Du noch Hilfe benötigst, melde Dich
Gruß piano

Antwort 5 von MarioIOTC

Jaa!

ICh brauch noch Hilfe!!!
Ich habs gestern versucht und bin total frustriert.
UNd es sieht so aus als wenn sich das heute nicht ändern wird!!!

Bitte hilf mir!!!

Cya, MArio

Antwort 6 von piano

Hallo Mario
Sende Dir die Mappe mit den entsprechenden Makros. Ich habe einige Modifikationen vornehmen müssen:
1. Wenn Zellen verbunden sind, kann man die Hintergrundfarbe nicht auslesen, daher habe ich das herausgenommen
2. Die Löschfunktion formatiert jetzt sauber
3. im "Worksheet_SelectionChange" habe ich falsche Bereiche abgefangen und Ergänzungen für den Diagrammaufruf vorgenommen: Klick auf den Wochentag (A1, H1, ...) ruft die Funktion "Zählen" auf.
Für das Forum hier auch den VBA-Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Application.Intersect(Range("A1"), Target) Is Nothing Then
    Call Zählen(2, 4)
    Exit Sub
End If
If Not Application.Intersect(Range("H1"), Target) Is Nothing Then
    Call Zählen(9, 4)
    Exit Sub
End If
If Not Application.Intersect(Range("O1"), Target) Is Nothing Then
    Call Zählen(16, 4)
    Exit Sub
End If
If Not Application.Intersect(Range("V1"), Target) Is Nothing Then
    Call Zählen(23, 4)
    Exit Sub
End If
If Not Application.Intersect(Range("AC1"), Target) Is Nothing Then
    Call Zählen(30, 4)
    Exit Sub
End If
If Not Application.Intersect(Range("AJ1"), Target) Is Nothing Then
    Call Zählen(37, 4)
    Exit Sub
End If

If Not Application.Intersect(Range("A22"), Target) Is Nothing Then
    Call Zählen(2, 25)
    Exit Sub
End If
If Not Application.Intersect(Range("H22"), Target) Is Nothing Then
    Call Zählen(9, 25)
    Exit Sub
End If
If Not Application.Intersect(Range("O22"), Target) Is Nothing Then
    Call Zählen(16, 25)
End If
If Not Application.Intersect(Range("V22"), Target) Is Nothing Then
    Call Zählen(23, 25)
    Exit Sub
End If
If Not Application.Intersect(Range("AC22"), Target) Is Nothing Then
    Call Zählen(30, 25)
    Exit Sub
End If
If Not Application.Intersect(Range("AJ22"), Target) Is Nothing Then
    Call Zählen(37, 25)
    Exit Sub
End If
If Not Application.Intersect(Range("B21:AO23"), Target) Is Nothing Then Exit Sub
If Selection.Columns.Count > 1 Then Exit Sub
'Drucker 1, Bereich B3:B38-------------------------------------------
If Not Application.Intersect(Range("B3:B38"), Target) Is Nothing Then
    With Selection
        '.MergeCells = True 'Zellen werden verbunden
        .BorderAround ColorIndex:=1 'Rahmenfarbe = schwarz
        .Interior.ColorIndex = 5 'Farbe = blau
    End With
End If

'Drucker 1, Bereich C3:C38-------------------------------------------

If Not Application.Intersect(Range("C3:C38"), Target) Is Nothing Then
    With Selection
        '.MergeCells = True 'Zellen werden verbunden
        .BorderAround ColorIndex:=1 'Rahmenfarbe = schwarz
        .Interior.ColorIndex = 3 'Farbe = rot
    End With
End If

'Drucker 3, Bereich D3:D38-------------------------------------------
'......

und das Modul:
Sub Löschen()
'
' Löschen Makro
' Makro am 27.04.04 von Regensberg aufgezeichnet
'
' Tastenkombination: Strg+a
'
On Error Resume Next
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 90
.ShrinkToFit = True
.MergeCells = False
End With
Selection.Interior.ColorIndex = xlNone
Selection.ClearContents
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

End Sub

Public Function Zählen(Spalte, Zeile)
Dim WoTag As Integer
'MsgBox (Bereich)
On Error Resume Next
Sheets("DruckerTab").Activate
Application.DisplayAlerts = False
ActiveWorkbook.Charts.Delete
ActiveSheet.ChartObjects.Delete
Application.DisplayAlerts = True
Cells.Select
Selection.ClearContents
Range("A1").Value = "Drucker"
Range("B1").Value = "% Auslastung"
Range("C1").Value = "% Stillstand"
Range("A2").Value = Sheets(1).Range("B1").Value
Range("A3").Value = Sheets(1).Range("C1").Value
Range("A4").Value = Sheets(1).Range("D1").Value
Range("A5").Value = Sheets(1).Range("E1").Value
Range("A6").Value = Sheets(1).Range("F1").Value
Range("E2").Value = Sheets(1).Cells(Zeile - 3, Spalte - 1).Value & " , " & Sheets(1).Cells(Zeile - 2, Spalte - 1).Value
AusgabeZeile = 2
For xi = Spalte To Spalte + 4
Anzahl = 0
For i = Zeile To Zeile + 15
If Sheets(1).Cells(i, xi).Interior.ColorIndex > 2 And Sheets(1).Cells(i, xi).Interior.ColorIndex < 8 Then
Anzahl = Anzahl + 1
End If
Next i
Cells(AusgabeZeile, 2).Value = Anzahl / 15 * 100
Cells(AusgabeZeile, 3).Value = 100 - (Anzahl / 15 * 100)
AusgabeZeile = AusgabeZeile + 1
Next xi
Call DiagrammZeichnen
End Function

Function DiagrammZeichnen()
Range("A1").Select
titel = Range("E2").Value
Charts.Add
ActiveChart.ChartType = xlColumnStacked
ActiveChart.SetSourceData Source:=Sheets("DruckerTab").Range("A1:C6"), _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="DruckerTab"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = titel
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Function



Antwort 7 von MarioIOTC

Hi piano!

Danke für deine Hilfe!

Das Digramm ist genau das Richtige.

Aber wenn ich jetzt auf den Tag klicke den ich angezeigt haben möchte, dann blinkt der ganze BIldschirm wie verrückt. Und der hört erst auf wenn ich escape drücke.
Und wenn ich das dann gemacht habe, dann sind alle INhalte in den Zellen gelöscht. NUr noch die Farbe ist da.
Muss ich irgendwas in Excel aktivieren, damit das nicht mehr passiert?

Cya, Mario



Antwort 8 von MarioIOTC

Ach und nochwas!

Sorry, dass ich mich jetzt erst gemeldet habe. Aber ich war die letzten Tage krank.

UNd wenn ich die Löschfunktion aktiviere, dann blinkt auch der ganze Bildschirm.

Cya, Mario

Antwort 9 von piano

Hallo
Tut mir leid, bei mir funktioniert alles einwandfrei.
Hast Du meine Excel-Datei verwendet?
Hast Du Office XP? (dort läuft es sicher!)
Zum Aktivieren: Ich habe die AddIns "Analyse-Funktionen" und "Analyse-Funktionen VBA" aktiviert und in
VBA die Verweise:
Visual Basic for Applications, Microsoft Excel, 11.0 Object Library, OLE Automation, Microsoft Office 11.0 Object Library,
Microsoft Forms 2.0 Object Library
verfügbar gemacht. Ich glaube aber nicht, daß dies eine Rolle spielt!
Gruß piano

Antwort 10 von MarioIOTC

Das System hier auf diesen Rechnern ist Windows NT.
Und Ja, ich habe deine Datei verwendet. ICh probiere gleich mal aus, was passiert wenn ich die Sachen so einstelle, wie du es gemacht hast.
Es ist echt seltsam. Immer wenn ich auf die Zellen klicke in denen Mo,Di,MI, usw. stehen. Dann blinkt der ganze Bildschirm.
Und er markiert dann im Editor diese Zeile gelb:
" Cells(AusgabeZeile, 3).Value = 100 - (Anzahl / 15 * 100)"
ya, Mario

Antwort 11 von piano

Hallo
Ich weiß schon, was los ist:
1. Für Office 97 mußt Du die Zeile " 'ActiveWorkbook.Charts.Delete" in der Funktion "Zählen" auskommentieren oder löschen
2. den Löschmakro neu (Extras / Makro / Makros / Optionen) mit Tastenkombinationen "Strg + a" belegen.
Gruß piano


Antwort 12 von MarioIOTC

Meine Fresse!

Du bist echt genial!!!

Jetzt klappt alles!!!!
Vielen Dank für deine Hilfe!

Cya, Mario

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: