Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

  EXCEL-Tabelle per Makro auslesen u.d neu zusammenstellen ???
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
leMatze
Newbie
Newbie


Anmeldedatum: 22.05.2006
Beiträge: 14

BeitragVerfasst am: 23.05.2006, 00:37 Nach oben

Hallo,

für ein kleines Projekt will ich in der Art von MS Project eine Aufwandsplanung per Excel erstellen. Die dafür notwendigen Daten habe ich bereits bekommen, allerdings bestehen die aus einer umfangreichen Excel-Tabelle. Ich würde die relevanten Daten gern auslesen und in einer neuen Tabelle (neues Sheet in der gleichen Datei) zusammenstellen. (Ziel: Erstellung eines Diagramms auf der Basis einer Pivottabelle).

Die Lösung könnte bestimmt ein Makro bringen, welches bei einer Änderung der Quelldaten auf Befehl eine neue Zieltabelle generiert.

Mit meinen ersten Versuchen, ein Makro zu schreiben bzw. aufzuzeichnen bin ich gescheitert. Kann mir jemand bitte beim Schreiben des Makros helfen...

Mir stehen folgende Daten zur Verfügung:

Arbeitspaket (AP 1 ... AP i)
Aufwand pro Bereich (FB 1 ... FB j)
Projektzeitraum in Monaten (MO 1 ... MO m)

Leider gibt’s das nur in der folgenden Form:

Paket-----FB1-----FB2-----FB3-----MO1-----MO2-----MO3
AP1-------10------3-------40------x-------x
AP2-------21------6-------43------x-------x-------x
AP3-------30------5-------40----------------------x
...

Bedeutet:
Für das AP1 braucht der FB1 10 Tage Aufwand insgesamt. Dieser Aufwand verteilt sich während der Gesamtlaufzeit des Projektes auf 2 Monate.
usw.

Den Aufwand je FB will ich nun pro Paket linear auf die Monate verteilen.


FB-----Paket------Monat------Aufwand
FB1----AP1--------MO1--------5
FB1----AP1--------MO2--------5
FB1----AP2--------MO1--------7
FB1----AP2--------MO2--------7
FB1----AP2--------MO3--------7
FB1----AP3--------MO3--------30
FB2----AP1--------MO1--------1,5
FB2----AP1--------MO2--------1,5
FB2----AP2--------MO1--------2
FB2----AP2--------MO2--------2
FB2----AP2--------MO3--------2
FB2----AP3--------MO3--------5
FB3...


Den linearen Verteilschlüssel zu ermitteln ist ja als Funktion kein Problem. Aber wie setze ich das und die 3 Dimensionen Paket-Bereich-Monate in einem Makro um, welches die Felder ausliest und in diese neue Form bringt und dann das auch noch für jede Zeile der Quelltabelle???

Auch über Anregungen und Denkanstöße wäre ich sehr froh!!!

Danke vorab, Mathias.
Benutzer-Profile anzeigenPrivate Nachricht senden
john g.
Office-Spezialist
Office-Spezialist


Anmeldedatum: 10.03.2006
Beiträge: 337

BeitragVerfasst am: 26.05.2006, 14:00 Nach oben

Hallo leMatze,

ich hatte Zeit und habe dieses Makro gebastelt. Das Ende der Y-Schleife mußt Du auf die Anzahl der APs setzen:

Sub projektplanung()

Dim a, b, c, d, e, f, g, j, x, y, v
j = 1
Application.ScreenUpdating = False
Sheets("tabelle1").Select
Range("a1").Select
ActiveWorkbook.Names.Add Name:="FB", RefersToR1C1:=ActiveCell

For x = 1 To 3 'Anfang X-Schleife
Application.Goto reference:="FB"
ActiveCell.Offset(0, 1).Range("a1").Select
ActiveWorkbook.Names.Add Name:="FB", RefersToR1C1:=ActiveCell
a = ActiveCell.Value

ActiveCell.Offset(0, (-x)).Range("a1").Select

For y = 1 To 9 'Anfang Y-Schleife
If y = 1 Then
ActiveWorkbook.Names.Add Name:="AP", RefersToR1C1:=ActiveCell
End If
e = 0
f = 0
g = 0
Application.Goto reference:="AP"
ActiveCell.Offset(1, 0).Range("a1").Select
ActiveWorkbook.Names.Add Name:="AP", RefersToR1C1:=ActiveCell
c = ActiveCell.Value
ActiveCell.Offset(0, x).Range("a1").Select
d = ActiveCell.Value
Application.Goto reference:="AP"

ActiveCell.Offset(0, 4).Range("a1").Select
If ActiveCell.Value = "x" Then
e = 1
End If
ActiveCell.Offset(0, 1).Range("a1").Select
If ActiveCell.Value = "x" Then
f = 1
End If
ActiveCell.Offset(0, 1).Range("a1").Select
If ActiveCell.Value = "x" Then
g = 1
End If

If e + f + g = 3 Then
e = d / 3
f = d / 3
g = d / 3
End If

If e + f + g = 1 Then
If e = 1 Then
e = d
End If
If f = 1 Then
f = d
End If
If g = 1 Then
g = d
End If
End If

If e + f + g = 2 Then
If e = 1 Then
e = d / 2
End If
If f = 1 Then
f = d / 2
End If
If g = 1 Then
g = d / 2
End If
End If

Sheets("tabelle2").Select
If j = 1 Then
Range("a1").Select
ActiveWorkbook.Names.Add Name:="neutab", RefersToR1C1:=ActiveCell
End If
j = j + 1
For v = 1 To 3 'Anfang V-Schleife

Application.Goto reference:="neutab"
ActiveCell.Offset(1, 0).Range("a1").Select
ActiveWorkbook.Names.Add Name:="neutab", RefersToR1C1:=ActiveCell
ActiveCell.Value = a
ActiveCell.Offset(0, 1).Range("a1").Select
ActiveCell.Value = c
ActiveCell.Offset(0, 1).Range("a1").Select
ActiveCell.Value = "Mo" & v

ActiveCell.Offset(0, 1).Range("a1").Select
If v = 1 Then
ActiveCell.Value = e
End If
If v = 2 Then
ActiveCell.Value = f
End If
If v = 3 Then
ActiveCell.Value = g
End If

Next v

Next y

Next x

End Sub


Gruß
J.
Benutzer-Profile anzeigenPrivate Nachricht senden
Michael
Admin von Office-Hilfe.com
Admin von Office-Hilfe.com


Anmeldedatum: 20.12.2003
Beiträge: 1479
Wohnort: Miltenberg

BeitragVerfasst am: 27.05.2006, 10:58 Nach oben

Hi john,

na du musst ja Zeit haben Wink

Danke für die Arbeit, die Du hier im Forum leistest.

Gruß
Michael

_________________
Image

--> Bitte keine Probleme per PN. Dafür ist das Forum da!!!
--> Vor Änderungen im System und der Registry --> Backup!! Es wird keine Haftung für Schäden übernommen!
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail sendenICQ-Nummer
john g.
Office-Spezialist
Office-Spezialist


Anmeldedatum: 10.03.2006
Beiträge: 337

BeitragVerfasst am: 27.05.2006, 18:03 Nach oben

Hallo Michael,

Danke fürs Danke. Wenn ich Zeit und Lust habe, helfe ich wirklich gerne! Very Happy

Gruß
J.
Benutzer-Profile anzeigenPrivate Nachricht senden
leMatze
Newbie
Newbie


Anmeldedatum: 22.05.2006
Beiträge: 14

BeitragVerfasst am: 28.05.2006, 22:53 Nach oben

Hi John,
da bin ich ja platt. Bisher kam ja überhaupt keine Reaktion und ich hatte es schon aufgegeben, hier nachzuschauen. Riesen Dank für Deine Mühe. Embarassed
Hatte inzwischen auch selbst weitergebastelt. Aber so richtig läuft das Makro bei mir noch nicht. Werde mich morgen mal an Deine Kreation ransetzen und melde mich wieder, wenn alles soweit angepasst ist...

Danke nochmal, Mathias.
Benutzer-Profile anzeigenPrivate Nachricht senden
leMatze
Newbie
Newbie


Anmeldedatum: 22.05.2006
Beiträge: 14

BeitragVerfasst am: 30.05.2006, 12:41 Nach oben

Hey John,

hab etwas länger als vermutet gebraucht. Aber am Ende immer noch weniger Zeit, als ohne Deine Hilfe!!! Meine Anpassungen beschränkten sich hauptsächlich auf die Anzahl der FBs, APs bzw. der MOs. Das hat das Ganze noch ein wenig aufgebläht… Nach meiner Einschätzung funktioniert das Makro jetzt aber richtig.

Mit Deiner Bemerkung „Das Ende der Y-Schleife mußt Du auf die Anzahl der APs setzen.“ Kann ich (noch) nicht viel anfangen. Wie muss ich das einarbeiten?

Einen (vermutlichen) Fehler hab ich korrigiert. (Eventl. lag das aber auch an der Anzahl der tatsächlichen MOs. [=10]) Für den Teil

If e + f + g = 3 Then
e = d / 3
f = d / 3
g = d / 3
End If

muss die Routine ebenfalls mit den Unterbedingungen geschrieben werden. In der obigen Form wurde der Aufwand einfach auf alle (!) Monate linear verteilt, ohne zu berücksichtigen, dass zwar die Monate e und g betroffen sind, aber nicht Monat f. (Hätte auch erst vermutet, dass er dann die Routine für e+f+g=2 verwendet. Warum auch immer …


Für jemanden, der mit VBA noch nie direkt gearbeitet hat, bin ich jetzt schon ein bisschen stolz, das Makro im Aufbau verstehen und damit umgehen zu können … Der Dank gebührt Dir!

Eine Abschlussfrage:
Wofür verwendest Du den Einstieg "Application.ScreenUpdating = False" ???

Grüße,
Mathias.
Benutzer-Profile anzeigenPrivate Nachricht senden
john g.
Office-Spezialist
Office-Spezialist


Anmeldedatum: 10.03.2006
Beiträge: 337

BeitragVerfasst am: 30.05.2006, 13:18 Nach oben

Hallo Mathias,

gratuliere zu Deinem Einstieg in die Makrowelt. Denn oft muß man vorhandene Makros anpassen und/oder ausbauen, um sie überhaupt für eigene Zwecke einsetzen zu können.

Mit "Application.ScreenUpdating = False" wird die Bildschirmansicht eingefroren, d.h. es wird die Anzeige nicht aktualisiert, während das Makro läuft. Ansonsten würdest Du alles sehen, was die Maschine gerade macht, bzw. das Bild würde flimmern/flackern, da die Anzeige immer zwischen den Tabellen hin und her wechselt. Ist also für das Makro nicht lebenswichtig. Schont nur die Augen. Wink

Gruß
J.
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge [Excel 2003] Formel: Leere Zelle als ... Sniper Microsoft Excel Hilfe 2 06.09.2008, 13:23 Letzten Beitrag anzeigen
Keine neuen Beiträge Makro gesucht Zeile kopieren und in j... philipp.geyer Microsoft Excel Hilfe 4 05.09.2008, 15:59 Letzten Beitrag anzeigen
Keine neuen Beiträge Verstecktes Game in Excel??? E-MaX-I Microsoft Excel Hilfe 2 05.09.2008, 13:09 Letzten Beitrag anzeigen
Keine neuen Beiträge Excel Jeanie einfügen wilfried07 Microsoft Excel Hilfe 2 04.09.2008, 16:13 Letzten Beitrag anzeigen
Keine neuen Beiträge Suchfunktion in Excel Seppo Microsoft Excel Hilfe 7 04.09.2008, 14:07 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Battle-Dream | Tuning Forum | Join the YoungGeneration | krankenversicherungsvergleich | Kalorienarme Rezepte!
Versicherungsvergleich | Bürobedarf | Papier | Betten

Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de