Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel Tabelle umformatieren
#1
Hallo liebe Leute, habe folgendes Problem. Ich habe ein Tabelle bekommen die in etwa so aussieht.

Adresse: / Teststrasse
Telefon: / Testnummer
Adresse: / Teststrasse
Telefon: / Testnummer
Adresse: / Teststrasse
Telefon: / Testnummer

Also in A immer was es ist und in B dann den Wert dazu... Jetzt dürfte klar sein, dass das nicht ganz übersichtlich ist...

Daher wäre mir lieber ich hätte es so

Adresse:        /    Telefon
Teststrasse    /    Testnummer
Teststrasse    /     Testnummer
usw.

Ne Idee ? Bin leider mit ner Pivottabelle da nicht weitergekommen aber vielleicht war ich auch einfach zu doof :D
Antworten Top
#2
Hi,

schreib in C1 die Ziffer 1 und in C2 die Ziffer 2.

Nun markierst Du C1 und C2 und ziehst die Zellen am Anfasser mit gedrückter rechter Maustaste so weit nach unten wie nötig und wählst im daraufhin erscheinenden Kontextmenü "Zellen kopieren".

Dann setzt Du den Filter auf Spalte C, filterst auf 1 und kopierst die sichtbaren Zellen in Spalte A eines neuen Tabellenblatts.

Anschliessend Filter auf 2 und in Spalte B im neuen Blatt kopieren ...
Überlegen macht überlegen
Gruss aus dem schönen Hunsrück
_______ Klaus-Martin _______
Antworten Top
#3
(14.04.2015, 15:35)Kl@us-M. schrieb: Hi,

schreib in C1 die Ziffer 1 und in C2 die Ziffer 2.

Nun markierst Du C1 und C2 und ziehst die Zellen am Anfasser mit gedrückter rechter Maustaste so weit nach unten wie nötig und wählst im daraufhin erscheinenden Kontextmenü "Zellen kopieren".

Dann setzt Du den Filter auf Spalte C, filterst auf 1 und kopierst die sichtbaren Zellen in Spalte A eines neuen Tabellenblatts.

Anschliessend Filter auf 2 und in Spalte B im neuen Blatt kopieren ...

Das ist leider nicht die "optimale" "richtige" Lösung...

Habe es vielleicht auch nicht genau genug beschrieben.

Die Tabelle ist sehr unterschiedlich und nicht linear.

Sprich in A steht immer Was es ist zb. Firma / Anschrift / Telefon / Email und in B steht dann immer der Wert also der Name oder strasse etc.

Die Datensätze sind einfach stumpf untereinander geschrieben und manche Datensätz haben mehr oder weniger Daten sprich manche haben Fax manche keinen...

Also Tabelle sieht in etwa so aus:

A                         
Firma
Adresse
Tel
Mail

Firma
Adresse
Tel
Fax
Mail

Firma
Adresse
Tel
Homepage

und dann in B der Wert...

Ideen ?
Antworten Top
#4
Hi,

warum hast Du das nicht gleich geschrieben?

Ausserdem schreibst Du jetzt "Also Tabelle sieht in etwa so aus". Daran stört mich das "in etwa", weil weder ich noch wahrscheinlich die meisten guten Seelen hier im clever-excel-forum Lust und Laune haben, Deine Mappe nachzubauen.

Ich fürchte, das gibt wieder ein Stochern im Nebel, weil zudem einige Dinge ungeklärt sind: Kannst / darfst / willst Du VBA einsetzen? Wie oft muss die Tabelle bearbeitet werden (regelmässig oder einmalig)?

Kannst Du die Mappe (ggf. anonymisiert, aber mit allen relevanten und möglicherweise vorkommenden Datensätzen) mal hier ins Forum hochladen (Anleitung zum Hochladen siehe hier)?
Überlegen macht überlegen
Gruss aus dem schönen Hunsrück
_______ Klaus-Martin _______
Antworten Top
#5
Hallo,

teste mal folgendes Makro:

Code:
Sub vCardsZuListe()
 Dim lngQ As Long, lngZeile As Long, lngSpalte As Long
 Dim varQ As Variant, varZ As Variant
 
 Range("D1").CurrentRegion = ""
 Range("A1:B1").Copy
 Range("A1").Insert xlDown
 Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)).AdvancedFilter _
         Action:=xlFilterCopy, CopyToRange:=Range("D1"), Unique:=True
 Rows(1).Delete
 Columns(4).SpecialCells(xlCellTypeConstants).Copy
 Range("E1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
 Columns(4).Delete
 varQ = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 2).Value
 varZ = Range("D1").CurrentRegion.Resize(UBound(varQ)).Value
 lngZeile = 2
 For lngQ = 1 To UBound(varQ)
   If varQ(lngQ, 1) = "" Then
     lngZeile = lngZeile + 1
   Else
     For lngSpalte = 1 To UBound(varZ, 2)
       If varZ(1, lngSpalte) = varQ(lngQ, 1) Then
         varZ(lngZeile, lngSpalte) = varQ(lngQ, 2)
         Exit For
       End If
     Next lngSpalte
   End If
 Next lngQ
 Range("D1").Resize(lngZeile, UBound(varZ, 2)).Value = varZ
End Sub

Gruß Uwe
Antworten Top
#6
Moin Uwe,

sehr schöne Lösung     Thumps_up     Laola     Thumps_up
Überlegen macht überlegen
Gruss aus dem schönen Hunsrück
_______ Klaus-Martin _______
Antworten Top
#7
(16.04.2015, 07:52)Kl@us-M. schrieb: Moin Uwe,

sehr schöne Lösung     Thumps_up     Laola      Thumps_up

Ja in der Tat, hat sie mir auch bei einem Teil der Tabelle helfen können aber nicht bei allen Teilen.

Darf ich die Tabelle einfach mal hier dranhängen und ihr scheucht euch das nochmal an. Bin am verzweifeln !


Bei einem Bundesland hat es perfekt geklappt bei den anderen nicht so...


Angehängte Dateien
.xlsx   Liste Komplett.xlsx (Größe: 178,49 KB / Downloads: 5)
Antworten Top
#8
Hallo,

Du musst dafür sorgen, dass die Liste in A1 beginnt!
Verbundene Zellen in Spalte A werden jetzt berücksichtigt:

Code:
Sub vCardsZuListe()
Dim lngQ As Long, lngZeile As Long
Dim lngSpalte As Long, lngLetzteSpalte As Long
Dim varQ As Variant, varZ As Variant

Range("D1").CurrentRegion.EntireColumn = ""
Range("A1:B1").Copy
Range("A1").Insert xlDown
Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)).AdvancedFilter _
        Action:=xlFilterCopy, CopyToRange:=Range("D1"), Unique:=True
Rows(1).Delete
Columns(4).SpecialCells(xlCellTypeConstants).Copy
Range("E1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Columns(4).Delete
varQ = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 2).Value
varZ = Range("D1").CurrentRegion.Resize(UBound(varQ)).Value
lngZeile = 2
For lngQ = 1 To UBound(varQ)
  If varQ(lngQ, 1) = "" Then
     If varQ(lngQ, 2) <> "" Then
       If lngLetzteSpalte > 0 Then
         varZ(lngZeile, lngLetzteSpalte) = varZ(lngZeile, lngLetzteSpalte) & vbNewLine & varQ(lngQ, 2)
       End If
     Else
       If varQ(lngQ - 1, 2) <> "" Then
         lngZeile = lngZeile + 1
       End If
     End If
  Else
    lngLetzteSpalte = 0
    For lngSpalte = 1 To UBound(varZ, 2)
      If varZ(1, lngSpalte) = varQ(lngQ, 1) Then
        varZ(lngZeile, lngSpalte) = varQ(lngQ, 2)
        lngLetzteSpalte = lngSpalte
        Exit For
      End If
    Next lngSpalte
  End If
Next lngQ
Range("D1").Resize(lngZeile, UBound(varZ, 2)).Value = varZ
End Sub

Gruß Uwe
Antworten Top
#9
(18.05.2015, 11:28)Kuwer schrieb: Hallo, Du musst dafür sorgen, dass die Liste in A1 beginnt! Verbundene Zellen in Spalte A werden jetzt berücksichtigt: 
Danke Uwe, wow funktioniert super. Super Forum hier. Sagt mal bescheid wenn das mit der Vereinsgründung durch ist und richtet ein Spendenkonto ein, dann bin ich der erste der euch unterstüzt ;)
Antworten Top
#10
Hi,


Zitat:Sagt mal bescheid wenn das mit der Vereinsgründung durch ist und richtet ein Spendenkonto ein, dann bin ich der erste der euch unterstüzt

da musst du nicht bis zur Vereinsgründung warten ;)
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste