Clever-Excel-Forum

Normale Version: Daten aus Spalte auslesen und kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.

autostrada

Hallo zusammen,

ich möchte aus einer mehrspaltigen Tabelle bestimmte Werte herauskopieren und in einer anderen Tabelle einfügen. 
Das ist die Ausgangstabelle:
Tabelle4

ABCD
1AbteilungNameVornameFunktion
2AWannemakerKarinAbteilungsleiter
3AEichmannVanessaStellvertretender Abteilungsleiter
4AVogelMichaelBürovorsteher
5AFischerStephanAngestellter
6ASchusterKatrinAngestellter
7APropstLauraAngestellter
8ASchusterSaraAngestellter
9AMayerLeahAngestellter
10AWolfMartinAngestellter
11ADeckerPhillippAngestellter
12AMauerJensAngestellter
13BTraugottKristinAbteilungsleiter
14BWirthLucasStellvertretender Abteilungsleiter
15BThalbergBrigitteBürovorsteher
16BBraunSarahAngestellter
17BVogtDennisAngestellter
18BRothClaudiaAngestellter
19BEichmannMaxAngestellter
20BKellerMartinaAngestellter
21BWirthLeonieAngestellter
22BSchultzPhillippAngestellter
23CSchmitzSvenAbteilungsleiter
24CFruehSwenStellvertretender Abteilungsleiter
25CHerrmannRalphBürovorsteher
26CSchulzJörgAngestellter
27CSchultzMartinaAngestellter
28CEichmannStefanieAngestellter
29CWannemakerLeonieAngestellter
30CPropstJanaAngestellter
31CTraugottDirkAngestellter
32CLoeweAnnaAngestellter
33DWeberSimoneAbteilungsleiter
34DHahnJörgStellvertretender Abteilungsleiter
35DHahnRalphBürovorsteher
36DWernerMarioAngestellter
37DWeiszSabrinaAngestellter
38DBeikeMariaAngestellter
39DKönigLauraAngestellter
40DWeiszThomasAngestellter
41DEbersbacherJürgenAngestellter

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Nun sollen alle Abteilung mit den dazu gehörenden Mitarbeitern in einem anderen Blatt nebeneinander dargestellt werden: 
Tabelle5

ABCDEFGHIJKLMNOP
1AbteilungNameVornameFunktionAbteilungNameVornameFunktionAbteilungNameVornameFunktionAbteilungNameVornameFunktion
2AWannemakerKarinAbteilungsleiterBTraugottKristinAbteilungsleiterCSchmitzSvenAbteilungsleiterDWeberSimoneAbteilungsleiter
3AEichmannVanessaStellvertr. AbteilungsleiterBWirthLucasStellvertr. AbteilungsleiterCFruehSwenStellvertr. AbteilungsleiterDHahnJörgStellvertr. Abteilungsleiter
4AVogelMichaelBürovorsteherBThalbergBrigitteBürovorsteherCHerrmannRalphBürovorsteherDHahnRalphBürovorsteher
5AFischerStephanAngestellterBBraunSarahAngestellterCSchulzJörgAngestellterDWernerMarioAngestellter
6ASchusterKatrinAngestellterBVogtDennisAngestellterCSchultzMartinaAngestellterDWeiszSabrinaAngestellter
7APropstLauraAngestellterBRothClaudiaAngestellterCEichmannStefanieAngestellterDBeikeMariaAngestellter
8ASchusterSaraAngestellterBEichmannMaxAngestellterCWannemakerLeonieAngestellterDKönigLauraAngestellter
9AMayerLeahAngestellterBKellerMartinaAngestellterCPropstJanaAngestellterDWeiszThomasAngestellter
10AWolfMartinAngestellterBWirthLeonieAngestellterCTraugottDirkAngestellterDEbersbacherJürgenAngestellter
11ADeckerPhillippAngestellterBSchultzPhillippAngestellterCLoeweAnnaAngestellter
12AMauerJensAngestellter

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Meine Versuche mit Schleifen zu arbeiten scheitern bisher daran, dass es mehrere Bedingungen gibt, die zu Erfüllen sind. Ich komme irgendwie nicht dahinter...

Ich bin für jede Hilfe dankbar... Smile

P.S. Die Namen in der Liste sind aus einer Fake-Liste entnommen und nicht real. Zufällige Namensgleichheiten bitte ich zu entschuldigen...

Gruss

Rolf
Hola,



Zitat:dass es mehrere Bedingungen gibt, die zu Erfüllen sind


ich sehe nur eine, die Abteilung in Spalte A. Welche gibt es denn noch?

Gruß,
steve1da

autostrada

Mit mehreren Bedingungen meinte ich die verschiedenen Abteilungen...

autostrada

Hat jemand eine Idee wie ich das bewerkstelligen kann? 
Die Mitarbeiter jeder Abteilung sollen abteilungsweise ausgelesen und dann in ein anderes Tabellenblatt nebeneinander eingefügt werden.
Die Mitarbeiter in ein anderes Tabellenblatt untereinander zu bekommen, das klappt. Mir fehlt nur der Hinweis, wie ich die zu einer anderen 
Abteilung gehörenden Mitarbeiter nebeneinander anordnen kann.
Hier der Code, der die Mitarbeiter untereinander anordnet...

Edit: Der Fehler, bzw. die Crux liegt vermutlich in der Destination-Anweisung... 

Code:
Sub kopieren()
Dim x As Long
Dim y As Long
y = 2
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To lastrow

If Cells(x, 1) = "A" Then
Rows(x).Copy Destination:=Tabelle6.Rows(y)
y = y + 1
Else
End If

If Cells(x, 1) = "B" Then
Rows(x).Copy Destination:=Tabelle6.Rows(y)
y = y + 1
Else
End If

If Cells(x, 1) = "C" Then
Rows(x).Copy Destination:=Tabelle6.Rows(y)
y = y + 1
Else
End If

If Cells(x, 1) = "D" Then
Rows(x).Copy Destination:=Tabelle6.Rows(y)
y = y + 1
Else
End If

Next
End Sub
Hi,

dein Beispiel hat 4 Abteilungen.
Bleibt es dabei?
oder können es auch 1000 sein?
Egal Undecided
Normalerweise kopiert man in VBA nicht Bereiche, sondern füllt sie direkt nach dem Schema:
rechts befüllt links
Also
Zieltabelle.ZielZelle = Quelltabelle.QuellZelle

Du läufst  mit einer Schleife von Oben bis unten durch.
Wenn sich die Abteilungsbezeichnung ändert, erhöhst du die Spalte um 4 und setzst Zeile wieder auf Anfang.
Bekommst du das hin?

autostrada

Zitat:Bekommst du das hin?
Eher nicht...  Huh

autostrada

Da ich es bislang selbst nicht hinbekommen habe und mir hier scheinbar niemand helfen kann oder zumindest mal einen Anstoß in die richtige Richtung geben kann (will), 
werde ich eben anderweitig versuchen eine Lösung zu finden.

Schade eigentlich...
Hallo autostrada,

Sorry, hatte Wochenende und Real-Leben.
Vielen Dank, dass du zumindest 1 meiner Fragen beantwortet hast.

genau auf dein Beispiel zugeschnitten der Code, der bei mir funktioniert:
Er kopiert es in ein neues Tabellenblatt
Code:
Option Explicit

Sub autostrada()
Dim Abteilung_Lang
Dim intLauf1 As Integer
Dim intLauf2 As Integer
Dim intSpalte
Dim neublatt
Dim Quelle

Quelle = ActiveSheet.Name
Sheets.Add
neublatt = ActiveSheet.Name
'Sheets(Quelle).Activate

Abteilung_Lang = Sheets(Quelle).Range("A1: D41")
intLauf2 = 1
intSpalte = 1
For intLauf1 = 1 To 41
   If intLauf1 = 1 Then
           Sheets(neublatt).Cells(intLauf2, intSpalte) = Abteilung_Lang(intLauf1, 1)
           Sheets(neublatt).Cells(intLauf2, intSpalte + 1) = Abteilung_Lang(intLauf1, 2)
           Sheets(neublatt).Cells(intLauf2, intSpalte + 2) = Abteilung_Lang(intLauf1, 3)
           Sheets(neublatt).Cells(intLauf2, intSpalte + 3) = Abteilung_Lang(intLauf1, 4)
           intLauf2 = intLauf2 + 1
   ElseIf Abteilung_Lang(intLauf1, 1) <> Abteilung_Lang(intLauf1 - 1, 1) And intLauf1 > 2 Then
           intSpalte = intSpalte + 4
           intLauf2 = 1
           ' Überschrift
           If intLauf2 = 1 Then
               Sheets(neublatt).Cells(intLauf2, intSpalte) = Abteilung_Lang(1, 1)
               Sheets(neublatt).Cells(intLauf2, intSpalte + 1) = Abteilung_Lang(1, 2)
               Sheets(neublatt).Cells(intLauf2, intSpalte + 2) = Abteilung_Lang(1, 3)
               Sheets(neublatt).Cells(intLauf2, intSpalte + 3) = Abteilung_Lang(1, 4)
               intLauf2 = intLauf2 + 1
           Else
           ' Kollegen
           Sheets(neublatt).Cells(intLauf2, intSpalte) = Abteilung_Lang(intLauf1, 1)
           Sheets(neublatt).Cells(intLauf2, intSpalte + 1) = Abteilung_Lang(intLauf1, 2)
           Sheets(neublatt).Cells(intLauf2, intSpalte + 2) = Abteilung_Lang(intLauf1, 3)
           Sheets(neublatt).Cells(intLauf2, intSpalte + 3) = Abteilung_Lang(intLauf1, 4)
           intLauf2 = intLauf2 + 1
           End If
   Else
           Sheets(neublatt).Cells(intLauf2, intSpalte) = Abteilung_Lang(intLauf1, 1)
           Sheets(neublatt).Cells(intLauf2, intSpalte + 1) = Abteilung_Lang(intLauf1, 2)
           Sheets(neublatt).Cells(intLauf2, intSpalte + 2) = Abteilung_Lang(intLauf1, 3)
           Sheets(neublatt).Cells(intLauf2, intSpalte + 3) = Abteilung_Lang(intLauf1, 4)
           intLauf2 = intLauf2 + 1
   End If
Next
End Sub