Registriert seit: 14.03.2017
Version(en): 2013
Hi,
ja genau das ist, was mir gefehlt hat.
Was ich aber nicht verstehe ist, warum -rng.Row + 5.
Ich dachte, wenn ich für rng festlege Range ("C6:C50"), fange ich bei C6 mit der 1 zu zählen und müsste dann -rng.Row + 2 schreiben, bekam aber immer den Wert leer, da ja in der Spalte C von ganz oben gezählt wird.
Das war mein Denkfehler.
Danke euch!
Grüße
Registriert seit: 14.04.2014
Version(en): 2003, 2007
18.03.2017, 22:02
(Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2017, 22:19 von atilla.)
Hallo,
unten der Code sollte das machen, was Du in der Beispieldatei vorgibst:
Code:
Sub mach()
Dim j As Long, lngZ As Long
Dim ati, att, c00
With Worksheets("XXX")
lngZ = .Cells(.Rows.Count, 4).End(xlUp).Row
ati = .Range("D11:L" & lngZ)
End With
For j = 1 To UBound(ati)
If IsNumeric(Application.Match("x", Application.Index(ati, j), 0)) Then c00 = c00 & " " & j
Next
att = Application.Index(ati, Application.Transpose(Split(Trim(c00))), [transpose(row(1:9))])
With Worksheets("MMM")
.Range("B5").CurrentRegion.ClearContents
.Range("B5").Resize(UBound(att), 9) = att
lngZ = .Cells(.Rows.Count, 2).End(xlUp).Row
.Range("D5:J" & lngZ).Name = "atika" ' rngA.Select
[atika] = [if(iserr(search("x",atika)),"",xxx!f9:l9)]
.Range("atika").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
.Columns("C:C").Delete
End With
End Sub
Ich habe Dein Beispiel für mich genutzt um einige neue Dinge, die ich vor Kurzem gelernt habe hier anzuwenden.
Deine Beipeildatei eignete sich sehr gut dazu.
Für Dich mag mein Code als Anregung dienen.
Unten Deine Beispieldatei:
Tabelle nach Bedingung zusammenfassen.xlsm (Größe: 19,82 KB / Downloads: 0)
Gruß Atilla
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
da versteh ich jetzt nicht ganz, wozu das gut sein soll. Du wärst dann doch immer in der gleichen Zeile?
Dann würde z.B. was in der art gehen:
Cells(53).Offset(0,2)
...
Cells(5,3).Offset(0,5)
...
usw.
Du bleibst damit immer in Zeile 5 und nimmst dann von C5 aus nur noch den Spaltenoffset.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo zusammen,
hmm, sollte man wirklich die Vorgehensweise des TE weiter unterstützen?
Oder sollte man ihm eindringlich davon abraten mit activate, select und offset hier etwas zusammenzubasteln?
Mein eingestellter Code wird ihn sicher zu keiner eigenständigen Lösung verhelfen, aber ihn zum Nachdenken animieren, hoffe ich.
Als Anfänger würde ich hier eine Variante mit zwei Schleifen nutzen.
Nach dem Prinzip:
Alle Zeilen von Zeile 5 bis letzte Zeile durchlaufen
und dabei alle Spalten von Spalte 6 bis Spalte 12 durchlaufen
und dabei jede Zelle auf "x" prüfen, wenn vorhanden dann in die andere Tabelle schreiben
Wo und wie geschrieben werden soll muss dann innerhalb der Schleifendurchläufe genau definiert werden.
Dabei kann man ihm dann gezielt helfen.
Gruß Atilla