Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Daten aus Excel-Tabelle extrahieren und in neue Tabelle einfügen

Frage Microsoft Microsoft Office

Mitglied: mvh1989

mvh1989 (Level 1) - Jetzt verbinden

16.07.2013, aktualisiert 23:35 Uhr, 4558 Aufrufe, 7 Kommentare

Hallo zusammen,

zuerst einmal muss ich zugeben, dass ich bisher in Excel nur mit Formeln, nie aber mit Makros gearbeitet habe. Nun habe ich leider ein Projekt vorliegen, bei dem ich nicht drum herum kommen werde.
Ich muss aus einer Excel-Tabelle verschiedene Datengruppen extrahieren und eine neue Tabelle kreieren, die Folgendes beinhaltet:

Name Art Stunden Stundenlohn Gesamtbetrag

Dabei gibt es 2 Arten von Löhnen: REGULAR und OVERTIME (für Überstunden).


Die Daten sind dabei immer in Gruppen gleich positioniert, sodass ich mir mit meinen beschränkten Informatik-Kenntnissen folgendes Konzept überlegt habe:
(
Angaben zu Tabelle1:
Spalte A: Name
Spalte B: Art
Spalte C: Stunden
Spalte D: Stundenlohn
Spalte E: Gesamtbetrag
)

for i=1 to "letzte gefüllte Zeile der Tabelle1 (dynamisch/unbekannt)"
{

WENN
Tabelle1.Zeile i/Spalte B = "REGULAR"
DANN
create neue Zeile in Tabelle2
MIT
Tabelle2.Spalte A = Tabelle1.SpalteA/Zeile i+1
Tabelle2.Spalte B = REGULAR
Tabelle2.Spalte C = Tabelle1.Spalte C/Zeile i
Tabelle2.Spalte D = Tabelle1.Spalte D/Zeile i
Tabelle2.Spalte E = Spalte C * Spalte D

WENN
Zeile i.Spalte B = "OVERTIME"
DANN
create neue Zeile in Tabelle2
MIT
Tabelle2.Spalte A = Tabelle1.SpalteA/Zeile i
Tabelle2.Spalte B = OVERTIME
Tabelle2.Spalte C = Tabelle1.Spalte C/Zeile i
Tabelle2.Spalte D = Tabelle1.Spalte D/Zeile i
Tabelle2.Spalte E = Spalte C * Spalte D
}
LEERZEILE
"dann unter der Tabelle:"

Tabelle2.Spalte A = SUMME
Tabelle2.Spalte C = "Summe aller Werte in Spalte C"
Tabelle2.Spalte E = "Summe aller Werte in Spalte E"




1. Funktioniert das so?
2. Es wäre mehr als super wenn mir jemand dabei Hilfestellung geben könnte (Quelltext wäre phänomenal), weil mein Chef mir deshalb schon total im Nacken hängt und ich ehrlich gesagt ziemlich verloren bin

VIELEN VIELEN VIELEN DANK schonmal im Voraus für eure Hilfe!!!

Gruß
Michael
Mitglied: colinardo
17.07.2013 um 09:40 Uhr
Hallo Michael,
also so wie du das geschildert hast sind die zwei Tabellen eigentlich identisch bis auf die Zusammenfassung darunter und diese Zeile:
 Tabelle2.Spalte A = Tabelle1.SpalteA/Zeile i+1
womit der Name der aus der nächsten Zeile aus Tabelle 1 übernommen wird.
dafür braucht es doch kein Makro, da langen doch Formeln ....
oder Fehlen mir da noch irgendwelche Informationen wie z.B. das Spalte B auch andere Werte als "REGULAR" und "OVERTIME" haben kann ?

wenn du unbedingt ein Makro dafür brauchst:
nach deinen Angaben geht folgendes Script
(habe bei den Tabellen die Überschriften berücksichtigt, die Daten fangen also erst in Zeile 2 an;
Die Tabellennblattnamen musst du in Zeile 3 und 4 noch an deine Gegebenheiten anpassen)

01.
Sub CreateTable() 
02.
    Dim ws1 As Worksheet, ws2 As Worksheet, zeile_tbl1 As Range, zeile_tbl2 As Range 
03.
    Set ws1 = Worksheets("Tabelle1") 
04.
    Set ws2 = Worksheets("Tabelle2") 
05.
    Set zeile_tbl1 = ws1.Range("A2") 
06.
    Set zeile_tbl2 = ws2.Range("A2") 
07.
 
08.
    Do While zeile_tbl1.Value <> "" 
09.
        If zeile_tbl1.Offset(0, 1).Text = "REGULAR" Then 
10.
            zeile_tbl2.Value = zeile_tbl1.Offset(1, 0).Value 
11.
            zeile_tbl2.Offset(0, 1).Value = "REGULAR" 
12.
            zeile_tbl2.Offset(0, 2).Value = zeile_tbl1.Offset(0, 2).Value 
13.
            zeile_tbl2.Offset(0, 3).Value = zeile_tbl1.Offset(0, 3).Value 
14.
            zeile_tbl2.Offset(0, 4).FormulaLocal = "=" & zeile_tbl2.Offset(0, 2).Address & " * " & zeile_tbl2.Offset(0, 3).Address 
15.
            Set zeile_tbl1 = zeile_tbl1.Offset(1, 0) 
16.
            Set zeile_tbl2 = zeile_tbl2.Offset(1, 0) 
17.
        ElseIf zeile_tbl1.Offset(0, 1).Text = "OVERTIME" Then 
18.
            zeile_tbl2.Value = zeile_tbl1.Value 
19.
            zeile_tbl2.Offset(0, 1).Value = "OVERTIME" 
20.
            zeile_tbl2.Offset(0, 2).Value = zeile_tbl1.Offset(0, 2).Value 
21.
            zeile_tbl2.Offset(0, 3).Value = zeile_tbl1.Offset(0, 3).Value 
22.
            zeile_tbl2.Offset(0, 4).FormulaLocal = "=" & zeile_tbl2.Offset(0, 2).Address & " * " & zeile_tbl2.Offset(0, 3).Address 
23.
            Set zeile_tbl1 = zeile_tbl1.Offset(1, 0) 
24.
            Set zeile_tbl2 = zeile_tbl2.Offset(1, 0) 
25.
        Else 
26.
            Set zeile_tbl1 = zeile_tbl1.Offset(1, 0) 
27.
        End If 
28.
    Loop 
29.
    zeile_tbl2.Offset(1, 0).Value = "Summe:" 
30.
    zeile_tbl2.Offset(1, 2).FormulaLocal = "=Summe(" & ws2.Range("C2").Address & ":" & zeile_tbl2.Offset(-1, 2).Address & ")" 
31.
    zeile_tbl2.Offset(1, 4).FormulaLocal = "=Summe(" & ws2.Range("E2").Address & ":" & zeile_tbl2.Offset(-1, 4).Address & ")" 
32.
End Sub
Grüße Uwe
gelöste Beitrage bitte auch als solche markieren.Danke
Bitte warten ..
Mitglied: mvh1989
17.07.2013 um 15:24 Uhr
Wow das sieht schonmal sehr hilfreich aus.
Allerdings fehlen da dann doch noch ein paar Informationenum einiges komplexer ist und noch viele andere Werte beinhaltet.

1. Das Muster ist allerdings, dass die benötigten Werte immer gleich um die Worte "REGULAR" und "OVERTIME" positioniert sind (deshalb z.B. Zeile i+1).

2. In Spalte B für die Art in Tabelle 1 stehen neben "REGULAR" und "OVERTIME" auch noch andere Werte (z.B. "Pay Total:"), daher hatte ich mir die Kontruktion über die Wenn-Dann-Abfrage überlegt.

Vielen Dank schonmal für deine grandiose Hilfe Uwe!!!
Bitte warten ..
Mitglied: mvh1989
18.07.2013 um 16:24 Uhr
Keine Idee dazu?
Bitte warten ..
Mitglied: colinardo
18.07.2013 um 19:08 Uhr
lad mal eine Beispieltabelle hoch und Schick den Link via PM ...dann sparen wir uns hier Missverständnisse...
G. Uwe
Bitte warten ..
Mitglied: mvh1989
18.07.2013 um 20:24 Uhr
so geschehen
Bitte warten ..
Mitglied: colinardo
24.07.2013, aktualisiert um 08:21 Uhr
Da dein Wunschscript nun funktioniert, markiere den Beitrag noch als gelöst Merci.
Grüße Uwe
Bitte warten ..
Mitglied: mvh1989
24.07.2013 um 15:33 Uhr
Danke nochmal
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel Daten aus diversen Tabellen sammeln (9)

Frage von FitforLife zum Thema Microsoft Office ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Microsoft Office
gelöst Daten (Tabelle) aus E-Mail nach Excel übertragen (6)

Frage von kaiuwe28 zum Thema Microsoft Office ...

Microsoft Office
"Microsoft Excel kann die Daten nicht einfügen" (2)

Frage von arik12 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (58)

Frage von pjrtvly zum Thema Internet ...

DSL, VDSL
VDSL Signal via PowerLine an Fritzbox - Möglich? (19)

Frage von Seichobob zum Thema DSL, VDSL ...

Windows Server
Benutzer sperrt sich immer wieder im Active Directory Contoller (17)

Frage von Kirdy1301 zum Thema Windows Server ...