Office: EXCEL-Tabelle per Makro auslesen u.d neu zusammenstellen ???

Helfe beim Thema EXCEL-Tabelle per Makro auslesen u.d neu zusammenstellen ??? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; 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... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von leMatze, 23. Mai 2006.

  1. leMatze Erfahrener User

    EXCEL-Tabelle per Makro auslesen u.d neu zusammenstellen ???


    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.
     
    leMatze, 23. Mai 2006
    #1
  2. john g. Erfahrener User
    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.
     
    john g., 26. Mai 2006
    #2
  3. Michael
    Michael Administrator
    Hi john,

    na du musst ja Zeit haben ;-)

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

    Gruß
    Michael
     
    Michael, 27. Mai 2006
    #3
  4. john g. Erfahrener User

    EXCEL-Tabelle per Makro auslesen u.d neu zusammenstellen ???

    Hallo Michael,

    Danke fürs Danke. Wenn ich Zeit und Lust habe, helfe ich wirklich gerne! :-D

    Gruß
    J.
     
    john g., 27. Mai 2006
    #4
  5. leMatze Erfahrener User
    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. EXCEL-Tabelle per Makro auslesen u.d neu zusammenstellen ??? :oops:
    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.
     
    leMatze, 28. Mai 2006
    #5
  6. leMatze Erfahrener User
    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.
     
    leMatze, 30. Mai 2006
    #6
  7. john g. Erfahrener User
    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. ;-)

    Gruß
    J.
     
    john g., 30. Mai 2006
    #7
Thema:

EXCEL-Tabelle per Makro auslesen u.d neu zusammenstellen ???

Die Seite wird geladen...
  1. EXCEL-Tabelle per Makro auslesen u.d neu zusammenstellen ??? - Similar Threads - EXCEL Tabelle Makro

  2. Per Makro E-Mail auslesen und in Excel Tabelle speichern

    in Microsoft Excel Hilfe
    Per Makro E-Mail auslesen und in Excel Tabelle speichern: Hallo zusammen, ich stehe zurzeit vor folgendem Problem. Ich möchte gerne im Outlook Mails in Excel per Makro auslesen und habe schon folgendes zusammen bekommen. Jetzt möchte ich aber nicht nur...
  3. Excel Tabelle als Bild speichern mit Makro

    in Microsoft Excel Hilfe
    Excel Tabelle als Bild speichern mit Makro: Hallo zusammen, ich habe ein Workbook, welches ich regelmäßig als gif speichern möchte. Diese Routine soll automatisiert über ein Makro laufen. Folgenden Codeschnipsel hatte ich dafür gefunden...
  4. Makro VBA: Kopieren aus Quelldatei nach Zieldatei über mehrere Tabellen

    in Microsoft Excel Hilfe
    Makro VBA: Kopieren aus Quelldatei nach Zieldatei über mehrere Tabellen: Hallo, leider kann ich maximal Makros aufzeichnen. Damit komme ich bei meinem jetzigen Problem allerdings nicht weiter. Problem: Monatlich soll ein Auszug von Daten aus einer Quelldatei die ich...
  5. Hilfe ich bekomme mein Makro mit VBA nicht zum laufen :(

    in Microsoft Excel Hilfe
    Hilfe ich bekomme mein Makro mit VBA nicht zum laufen :(: Hallo, ich bin noch ein relativer Neuling mit VBA und habe das folgende Problem: Ich habe eine relativ simple Tabelle erstellt (Name = Eingabe) In einer zweiten Tabelle (Name = Sortiert)...
  6. Dienstplan, eine Eingabe dann mehere Ausgaben. VBA

    in Microsoft Excel Hilfe
    Dienstplan, eine Eingabe dann mehere Ausgaben. VBA: Hallo, Kann mir jemadn bitte Helfen bin am verzweifeln habe schon viele Varianten probiert, zbsp. Private Sub Worksheet_Change(ByVal Target As Range) If Range("N9") = "N1" Or Range("N9")...
  7. Excel Makro unabhängig von Tabellengröße

    in Microsoft Excel Hilfe
    Excel Makro unabhängig von Tabellengröße: Hallo Ihr Lieben, letzte Woche wusste ich noch garnicht was Makros überhaupt sind, deswegen entschuldigt meine blöden Fragen ;) Und zwar folgendes: Ich möchte dass mein Makro die Werte von der...
  8. Spalten von einer Tabelle in eine andere transponieren

    in Microsoft Excel Hilfe
    Spalten von einer Tabelle in eine andere transponieren: Hallo liebe Comunity! Ich weiß zwar durch meinen Excelgrundkurs wie man Tabellen transponiert aber wie transponiert man Spalten von einer Tabelle in eine andere als zeile wenn die länge der Spalte...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden