Zum Inhalt springen

Excel: Diagramm erstellen


Baxxe

Empfohlene Beiträge

Ich habe hier die Aufgabe aus einer (großen) Exceldatei ein Diagramm auszugeben.

Kein Problem denk ihr? Dann mal fleißig weiter lesen:

Die Exceldatei wird automatisch generiert und den Generierungsprozess kann ich nicht beeinflussen.

Sie besteht aus mehreren Seiten. Auf jeder Seite ist genau eine Tabelle abgebildet. Die Seiten sind nach dem Datum benannt an dem sie der Exceldatei hinzugefügt wurden.

Die Tabellen zeigen eine detaillierte Übersicht über den Festplattenspeicherplatz von Laufwerk C eines Rechners.

Die Aufzeichnungen haben Mitte Januar begonnen und seit dem wurde der Exceldatei für jeden Tag eine neue Seite mit entsprechender Tabelle hinzugefügt (Rund 120 Seiten).

Meine Aufgabe ist es nun ein Diagramm zu erstellen, welches den max. Festplattenspeicherplatz, den belegten Platz und den freien Platz im bezug zum Datum anzeigt.

Erschwerend kommt hinzu, dass bis auf das Datum alle Daten in einer Zelle stehen.

Hier meine ersten Ansätze:

Die Felder der einzelnen Seite kann ich so erreichen:

='Seitenname'!Feld
z.B.:
='5.13.2006 20-51-32'!A3
oder
='5.13.2006*'!A3
"Rückgabewert" ist jeweils der Inhalt des Feldes "A3" auf der Seite "5.13.2006 20-51-32". Ich brauch von jeder Seite die Felder A1 und A3. A1:
TreeSize Professional Bericht, 5/13/2006  8:51 PM
A3:
Laufwerk: \\LBMPDC01\c$\     Größe: 40,962.6  MB     Belegt: 5,808.2  MB     Frei: 35,154.4  MB        4096 Bytes pro Cluster (NTFS)

Ja, die Angaben stehen jeweils in EINEM Feld.

Aus diesen beiden Angaben pro Seite soll ich nun ein Verlaufsdiagramm "erstellen" an dem man sehen kann wie sich die Speicherplatzbelegung im Laufe der Tage ändert.

Mit normalen Excelmitteln ist das aber nicht wirklich möglich v.a. weil das ganze nicht einmalig sondern dynamisch geschehen soll. Es soll jeden Tag möglich sein sich das aktuelle Diagramm anzeigen zu lassen ohne großartig Hand anzulegen.

Meine ersten Ideen waren folgende:

Alle A1- und A3-Felder sollten in einer Tabelle angezeigt werden (diese Tabelle kann sich natürlich auch in einer anderen Exceldatei befinden). Und von dieser Tabelle wird dann das Diagramm erstellt.

Probleme an der Sachen sind:

Wie kann ich die Felder A1 und A3 aus allen Seiten auslesen?

Wie bekomme ich die einzelnen Daten aus den jeweiligen Feldern heraus?

Wie kann ich das ganze automatisiert ablaufen lassen (Ich hab kein bock 120 Seiten und mehr durchzuklicken oder manuell einzugeben)?

Dummerweise hab ich auch Null Ahnung von VB-Makros :(

Kann mir jemand helfen?

PN für die Exceldatei oder ICQ: 71226633

PS: Ich bin Systemintegrator, kein Anwendungsentwickler.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm... also mit VBA kenn ich mich auch nicht aus... aber du könntest evtl. PHP arbeiten?! Ich bin grad dabei ein Script zu schreiben das die dynamisch aus einer Exceldatei ausliest... bis jetzt werden die Inhalte allerdings nur in HTML wieder ausgegeben und noch nicht in eine neue Datei gespeichert...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, bin schon etwas weiter!

Falls du schn was fertiges hast, sag bitte bescheid! Und ansonsten schreib mal welche Daten du für die Auswertung brauchst... also Datum, belegter Speicher ...?

Ich hoffe es wird nicht so dringend benötigt?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

makro:

tabellenzeile ansprechen:

Dim das As String

das = Sheets("Sheet1").Cells(1, 3)[/PHP]

sheet1 ist der name deiner tabelle... das sheets object heißt in der deutschen excel-version tabelle oder so

also:

[PHP]das = Tabelle("Sheet1").Cells(1, 3) 'oder so...

oder aber:

Dim das As String
Dim das2 As String

das2 = "Sheet1"

das = Sheets(das2).Cells(1, 3)[/PHP]

hier könntest du dann den tag in die variable nehmen und so alle tabellenblätter nacheinander durchsehen (mit einem loop drumrum eben)

deine daten kannst du dann mit dem split befehl oder so trennen... oder auch mit mid (einfach in excel eintippen - also im visual basic fenster - und f1 drücken...)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für den Tipp mit dem mid().

Ich hab es nun hinbekommen.

Danke allen für die Hilfe!

Hier noch der Quellcode:

Dim xlsEinlesen

Dim xlsAusgeben


Set xlsEinlesen = WScript.CreateObject("Excel.Application")

Set xlsAusgeben = WScript.CreateObject("Excel.Application")


xlsAusgeben.Visible = True

xlsAusgeben.Workbooks.Add  		'Neue Mappe für die Ausgabe öffnen


With xlsAusgeben				'Überschriften erstellen	

	.Range("A1").Select

	.ActiveCell.Value = "Datum"

	.Range("B1").Select

	.ActiveCell.Value = "Größe"

	.Range("C1").Select

	.ActiveCell.Value = "Belegt"

	.Range("D1").Select

	.ActiveCell.Value = "Frei"

End With	


With xlsEinlesen

	.Visible = True

	.Workbooks.Open ("C:\LBMPDC01C$.xls")		'Quelldatei öffnen

	For i = 1 To .ActiveWorkbook.Sheets.Count	'For-Schleife, welche die Tabellen durchgeht

		.Sheets(i).Select

		With xlsAusgeben						'Erstellen der Ausgabe.

			.Range("A" & i + 1).Select

			.ActiveCell.Value = mid(xlsEinlesen.ActiveSheet.Cells(1, 1),32,9)	'Eingrenzen der Zeichenfolge aus einer Zelle

			.Range("B" & i + 1).Select						'Syntax: Mid(string, start[, length])

			.ActiveCell.Value = mid(xlsEinlesen.ActiveSheet.Cells(3, 1),36,8)	'string: Zeichenfolgenausdruck (Quellzelle)

			.Range("C" & i + 1).Select						'start: Position in string, an der die zurückzugebende Zeichenfolge beginnt

			.ActiveCell.Value = mid(xlsEinlesen.ActiveSheet.Cells(3, 1),61,8)	'length: optional; Anzahl der zurückzugebenden Zeichen

			.Range("D" & i + 1).Select

			.ActiveCell.Value = mid(xlsEinlesen.ActiveSheet.Cells(3, 1),83,8)

			.ActiveCell.Offset(1, 0).Select

		End With

	Next

End With

Msgbox "Auswertung beendet!"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...