Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Erweiterung bestehendes Makro - Neue Spalte

Erweiterung bestehendes Makro - Neue Spalte
04.02.2014 12:26:06
Daniel
Hallo zusammen,
ich habe ein kleines Makro, dass mir zwei Tabellen zu einer neuen zusammenfügt und für das ich eine kleine Erweiterung benötige (siehe Beispieldatei: https://www.herber.de/bbs/user/89091.xlsx )
Bis Zeile 14 in der Beispieldatei seht ihr, für welche Struktur das unten angefügte Makro funktioniert.
Ab Zeile 17 seht ihr, wie das erweiterte Makro aussehen sollte:
Es ist eine neue Spalte hinzugekommen (siehe Markierung Zelle B19) und diese neue Spalte müsste in dem Ergebnis hinten ebenfalls eingefügt werden (siehe Markierung Zelle N19).
Generelles Ziel (zur Info):
Zu jeder ID steht in Spalten rechts daneben mit einem X, in welcher Thematik sich die ID befindet (Beispieldatei ab Spalte M).
Dazu müsste aus einer Liste jede Thematik ein eigene Spalte bekommen, mit dem Namen der Thematik beschriftet werden und bei der ID ein X gesetzt werden.
Merci, Daniel
Aktuelles Makro (Beispieldatei bis Zeile 14):
Sub Liste()
Dim objThema As Object, objThemaID As Object
Dim rngC As Range
Dim arr, arrKeys
Dim i As Long, j As Long
Set objThema = CreateObject("Scripting.Dictionary")
Set objThemaID = CreateObject("Scripting.Dictionary")
For Each rngC In Range(Cells(4, 8), Cells(Rows.Count, 8).End(xlUp))
objThema(rngC.Value) = 0
objThemaID(rngC.Value & "_" & rngC.Offset(, 1).Value) = 0
Next
arr = Cells(3, 1).CurrentRegion
arrKeys = objThema.keys
ReDim Preserve arr(1 To UBound(arr), 1 To objThema.Count + 4)
For i = 0 To UBound(arrKeys)
arr(1, i + 5) = arrKeys(i)
Next
For i = 2 To UBound(arr)
For j = 5 To UBound(arr, 2)
If objThemaID.exists(arr(1, j) & "_" & arr(i, 1)) Then
arr(i, j) = "x"
End If
Next
Next
Cells(3, 13).Resize(UBound(arr), UBound(arr, 2)) = arr
End Sub

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nur mal für mich
04.02.2014 14:43:36
Jack_d
müsste es hier
  For Each rngC In Range(Cells(4, 8), Cells(Rows.Count, 8).End(xlUp))

nicht heissen
For Each rngC In Range(Cells(4, 8), Cells(Rows.Count, 8).End(xlUp).row)
?
Grüße

AW: Nur mal für mich
04.02.2014 15:04:02
Daniel
Hallo Jack,
meinst du das bestehende Makro müsste für die bisherige Lösung so heissen? Keine Ahnung, das Makro hat funktioniert.
Oder meinst du, dass ich diese Zeile im Makro austauschen soll, damit die neue Spalte berücksichtigt wird?
Gruss, Daniel

AW: Nur mal für mich
04.02.2014 15:08:18
Jack_d
Nee ich hab versucht deinen Code mal nachzuvollziehen (den bestehenden)
Und bin grad da drüber gestolpert.
denn
Cells(Rows.Count, 8).End(xlUp)

gibt m.W. "0" zurück
Cells(Rows.Count, 8).End(xlUp).row

gibt die letzte Zeile zurück
aber wie gesagt kann mich irren

Anzeige
AW: Nur mal für mich
04.02.2014 15:12:00
Daniel
Die Frage gebe ich gerne an die Wissenden weiter :)
Ich kann VBA leider nur sehr begrenzt. Hast du vielleicht eine Idee wie das Makro erweitert werden müsste?
VG

AW: Nur mal für mich
04.02.2014 15:12:13
Daniel
Die Frage gebe ich gerne an die Wissenden weiter :)
Ich kann VBA leider nur sehr begrenzt. Hast du vielleicht eine Idee wie das Makro erweitert werden müsste?
VG

.row
05.02.2014 13:32:53
Klaus
Hallo Jack,
in diesem Makro steht das aber innerhalb einer RANGE Anweisung:
Range(Cells(4, 8), Cells(Rows.Count, 8).End(xlUp))
Wenn Spalte H bis Zeile 17 beschrieben ist, dann ist Cells(Rows.Count, 8).End(xlUp) eben die Zelle H17. Das kannst du auch ausprobieren, indem du in Zelle H1048576 die Tastenkombi STRG+UP drückst, oder im Direktfenster mal Cells(Rows.Count, 8).End(xlUp).select ausprobierst.
Range(Cells(4, 8), Cells(Rows.Count, 8).End(xlUp))
löst also auf nach
Range(Cells(4, 8), Range("H17"))
das löst auf nach
Range(Range("H4"), Range("H17"))
und das wird natürlich zum korrekten
Range("H4:H17")
Mit .ROW bekommst du halt die Zeilennummer direkt statt der Zellenadresse heraus, was ja in den allermeisten Fällen auch sinnvoller ist. Nur hier halt nicht :-) mit .Row sähe es ja so aus:
Range(Cells(4, 8), Cells(Rows.Count, 8).End(xlUp).row)
löst auf nach
Range(Cells(4, 8), 17) 'Zeile 17
löst auf nach ... nix, da das eine fehlerhafte Range-Angabe wäre!
Daniel,
zum Thema kann ich nix sagen! Aber ich stelle den Beitrag wieder auf offen.
Grüße,
Klaus M.vdT.

Anzeige
Danke KLaus
07.02.2014 10:03:20
Jack_d
..für die Ausführliche Antwort.
.. wieder was dazu gelernt.. in der Hoffnung das ich es nicht gleich wieder vergesse :-D

AW: Danke KLaus
07.02.2014 18:07:38
Hajo_Zi
warum offen?

Weil die Frage des TE nicht beantwortet owT
08.02.2014 09:17:55
Jack_D
Ohne weiteren Text

AW: Weil die Frage des TE nicht beantwortet owT
08.02.2014 10:11:27
Hajo_Zi
Hallo Jack,
in seinem Beitrag der als offen markiert war Stand
..für die Ausführliche Antwort.
.. wieder was dazu gelernt.. in der Hoffnung das ich es nicht gleich wieder vergesse :-D

Ich konnte da nicht raus lesen was offen ist. Soll ich jetzt erst alle Beiträge lesen um festzustellen was offen ist?
Ich mache das nicht und ich vermute es gibt da viele die es nicht machen.
Gruß Hajo

Anzeige
Frage des TE nicht beantwortet
10.02.2014 15:12:51
Jack_d
Deswegen hab ich den ja als offen markiert, damit man erkennt das die Frage des TE nicht beantwortet ist.
Es tut mir leid das ich darauf nicht explizit verwiesen hab.
-.-#

AW: Erweiterung bestehendes Makro - Neue Spalte
06.02.2014 08:54:19
Daniel
Hallo zusammen,
hab selbst versucht das Makro anzupassen, habe es aber nicht hinbekommen.
Kann jemand behilflich sein?
Danke und Gruss
Daniel

AW: Erweiterung bestehendes Makro - Neue Spalte
08.02.2014 10:29:52
Daniel
Bitte nur den ersten, ursprünglichen Post von mir beachten für die Lösung der Frage.
Der erste Thread ging um die pers. Fortbildung und Verständnisfragen zum bisherigen Makro von Jack.
Merci und schönen Samstag
Daniel

Anzeige
AW: Erweiterung bestehendes Makro - Neue Spalte
08.02.2014 11:16:30
Daniel
Geschlossen aufgrund Verwirrungen und nochmal neu eröffnet. Hoffe das ist ok.
Merci, Daniel

157 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige