2.4k Aufrufe
Gefragt in Tabellenkalkulation von
Servus,

Ich habe mich eingelesen und auch einige Vorschläge probiert, jedoch bin ich noch kein Excel Genie.
Deshalb versuche ich mein Problem zu schildern.

Auf Tabellenblatt1 habe ich eine unsortierte Liste in Spalte A mit 8 Begriffen die über ein Dropdown Menü wählbar sind. In Spalte B habe ich dazu eine Beschreibung. Beispiel: "Benchmark"(Spalte A) "Gabelfederung beim Wettbewerb besser"(Spalte B).
Ich habe auf Tabellenblatt 2 mir die Werte in Spalte A zurecht gemacht.
Nun würde ich gerne ein Makro oder Button einfügen, der dort wiederrum in der Nachbarszeile der Begriffe die Beschreibung einfügt und auch gleichzeitig die Zeilen ergänzt.
ich hatte dies im Moment über eine Array Formel gelöst:

=WENNFEHLER(INDEX(Tabelle1!$B$2:B154;KGRÖSSTE((Tabelle1!$A$2:A154=PPT!$B$4)*(ZEILE(Tabelle1!$A$2:A154)-1);ZÄHLENWENN(Tabelle1!$A$2:A154;PPT!$B$4)+1-ZEILE(Tabelle1!A2)));"Stop")

Doch dort muss ich immer eine Zelle einfügen und die Formel kopieren.
Was nicht ganz so tragisch ist. Doch wollte ich fragen ob es eine bessere Möglichkeit gibt die dies auch automatisch macht.


Mit freundlichen Grüßen,
Cklax

12 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

lade doch mal eine Beispieldatei auf einen Hoster deiner Wahl hoch und poste den Link hier. Zeige in der Datei auch mal auf, wie das Ergebnis aussehen sollte.

Gruß

M.O.
0 Punkte
Beantwortet von
Servus,

Hier mal zwei Bilder zum zeigen was ich meine.
Ich hoffe das hilft.

Tabllenblatt 1:
http://fs2.directupload.net/images/150918/t5crvxhm.jpg

Tabellenblatt 2:
http://fs2.directupload.net/images/150918/rme5pc48.jpg

Gruß
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo,
M.O. meinte eine Beispieldatei, keine Bilder.
Die Datei kannst hier uploaden und den Link ins Forum stellen.

Gruß

fedjo
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

eine Testdatei wäre wirklich besser. Aber ich habe noch eine Frage zu deinen Bildern: Muss die Reihenfolge in der zweiten Tabelle (Benchmark, Studien ...) eingehalten werden?

Gruß

M.O.
0 Punkte
Beantwortet von
Servus,

Werde nachher noch eine Datei hochladen. Sitze gerade bei der Arbeit.
Und zu der Frage. Nein die Reihenfolge kann beliebig sein.

Gruß und danke
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

ich habe mal anhand deiner Bilder ein Makro gebastelt. Das Makro gehört in ein Standard-Modul deiner Arbeitsmappe.

Sub auswertung()

Dim strQuellblatt As String
Dim strZielblatt As String
Dim lnglzq As Long
Dim lnglzz As Long
Dim lngZeile As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'Namen für Quell- und Zielblatt festlegen
strQuellblatt = "Tabelle1"
strZielblatt = ActiveSheet.Name 'Name des Arbeitsblattes aus dem das Makro gestartet wird

'letzte Zeile in Spalte A auf Quellblatt ermitteln
lnglzq = ThisWorkbook.Worksheets(strQuellblatt).Cells(Rows.Count, 1).End(xlUp).Row

'letzte Zeile in Spalte B auf Zielblatt ermitteln
lnglzz = ThisWorkbook.Worksheets(strZielblatt).Cells(Rows.Count, 2).End(xlUp).Row

'Daten im Zielblatt ab Zeile 2 löschen
With ThisWorkbook.Worksheets(strZielblatt)
.Range(.Cells(2, 1), .Cells(lnglzz, 2)).ClearContents
End With

'Daten aus Quellblatt in Zielblatt kopieren
With ThisWorkbook.Worksheets(strQuellblatt)
.Range(.Cells(2, 1), .Cells(lnglzq, 2)).Copy
End With
'nur Inhalte einfügen
ThisWorkbook.Worksheets(strZielblatt).Cells(2, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

'eingefügte Tabelle sortieren
With ThisWorkbook.Worksheets(strZielblatt)
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range(.Cells(2, 1), .Cells(lnglzq, 1) _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range(.Cells(2, 2), .Cells(lnglzq, 2) _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SetRange Range(.Cells(2, 1), .Cells(lnglzq, 2))
.Sort.Header = xlGuess
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End With

'Mehrfacheinträge in Spalte A löschen und leere Zeile zwischen verschiedenen Gruppen einfügen

For lngZeile = lnglzq To 3 Step -1
If ThisWorkbook.Worksheets(strZielblatt).Cells(lngZeile, 1) = ThisWorkbook.Worksheets(strZielblatt).Cells(lngZeile - 1, 1) Then
ThisWorkbook.Worksheets(strZielblatt).Cells(lngZeile, 1).ClearContents
Else
ThisWorkbook.Worksheets(strZielblatt).Rows(lngZeile).Insert Shift:=xlDown
End If
Next lngZeile

ThisWorkbook.Worksheets(strZielblatt).Cells(2, 1).Select

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub


Weise deinem Button in Tabellenblatt2 das Makro zu. Probiere das aber erst mal in deiner Testdatei aus.

Gruß

M.O.
0 Punkte
Beantwortet von
Servus M.O.,

Danke schonmal für deine Antwort.
Hier der Link für eine Probe Datei: http://www.xup.in/dl,79704372/test_v3.xlsx/

Jetzt habe ich leider folgenden Fehler:

"strQuellblatt = "Input"
strZielblatt = ActiveSheet.Name
lnglzq = ThisWorkbook.Worksheets(strQuellblatt).Cells(Rows.Count, 1).End(xlUp).Row"

Laufzeitfehler 9. Ich weiss ich muss das Quell und Zielblatt, sowie den Bereich anpassen. Leider reicht da gerade mein Verständnis nicht mehr aus um darauf zu kommen.

Beste Grüße,
Cklax
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Cklax,

ich werde mir das mal heute abend ansehen.

Gruß

M.O.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

die fehler sind eindeutig

erste zeile erstes gänsefüschen ist zuviel
dritte zeile letztes gänsefüschen ist zuviel

gruss nighty
0 Punkte
Beantwortet von
Servus Nighty,

Die Gänsefüßchen habe ich nur so reinkopiert damit man sieht wo der Text anfängt, hätte ich glaube ich nicht machen sollen :D
Im Code stehen die nicht drin.

Beste Grüße,
Cklax
...