Zitat:Ich habe schon mal programmiert, ein Grundwissen ist aufjedenfall vorhanden.
Schön das Grundwissen vorhanden ist, meine Makros sind in simpel Schreibweise und m.E. so gut erklaert das man sie verstehen kann. Würde mich freuen wenn der Thread damit gelöst ist.
Ich glaube das einfaches Grundwissen aber nicht ausreicht um so ein Makro auf Anhieb zu schreiben. Da steckt schon Erfahrung drin. Und es ist so ausgelegt das die Anzahl der Tabellen keine Rolle spielt, wie auch die Laenge der Zeilen in den einzelnen Tabellen. Die Zeilenlange wird für jede Tabelle als Einzelfall neu ermittelt.
Ich nenne das ein Universal Makro, um neue Rückfragen im Forum zu vermeiden. Im Sinne von: meine Mappe hat sich veraendert, neue Tabellen dazugekommen, was jetzt? Einen guten Programmierer juckt das nicht, der denkt dafür mit!
Rückmeldung ob es gefaellt und funktioniert waere nett.
mfg Gast 123
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • pratichsan
(15.05.2017, 13:05)Gast 123 schrieb: Einen guten Programmierer juckt das nicht, der denkt dafür mit!
Dem widerspreche ich mit aller denkbaren Deutlichkeit. Das zuvor Gesagte trifft zwar teilweise auf Antworten in Foren zu, hat aber aus meiner Sicht nichts mir "ein guter Programmierer" zu tun. Ein guter (Auftrags-) Programmierer wird solche Dinge im Vorwege abklären und nicht einen Haufen Müll produzieren, damit auf jeden Fall das darin enthalten ist, was vielleicht wegen mangelnder Beschreibung des Fragestellers einmal gebraucht wird.
Zur Klarstellung: Dass solch eine Code-Sammlung in Foren-Antworten legitim sein kann, das bestreite ich nicht. Nur hat das aus meiner Sicht keineswegs das Prädikat "Gut" verdient.
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
15.05.2017, 14:45 (Dieser Beitrag wurde zuletzt bearbeitet: 19.05.2017, 08:56 von Rabe.
Bearbeitungsgrund: Zitat auf Relevantes reduziert
)
(15.05.2017, 13:05)Gast 123 schrieb: Rückmeldung ob es gefaellt und funktioniert waere nett.
Hallo,
vielen Dank für die Makros, jedoch wird in der Spalte Quelle ein wiederholender Datensatz in einer weiteren Zeile hinzugefügt. Das Ziel ein mehrfach-auftauchender Datensatz sollte in einer Zelle gefasst werden (siehe Anhang)
Sorry, ich hatte tatsaechlich einen dummen Flüchtigkeitsfehler im Makro. Ist mir jetzt durch die Rückfrage aufgefallen. Anbei den geaenderten Do Loop Code. Diesen Teil bitte auswechseln, dann sollte es richtig klappen. Würde mich freuen.
mfg Gast 123
Code:
Do 'Wiederholschleife für Fam.Namen If rFind.Offset(0, -1) = VName And _ rFind.Offset(0, 1) = GebDat And _ rFind.Offset(0, 2) = Wohnort Then flg = rFind.Cells(1, 4).Value & ", " 'Text + "," rFind.Cells(1, 4).Value = flg & Worksheets(k).Name Exit Do 'Vorhanden = No End If Set rFind = .Columns(2).FindNext(After:=rFind) Loop Until rFind.Address = Adr1
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • pratichsan
16.05.2017, 07:46 (Dieser Beitrag wurde zuletzt bearbeitet: 19.05.2017, 08:56 von Rabe.
Bearbeitungsgrund: Zitat auf Relevantes reduziert
)
(15.05.2017, 15:33)Gast 123 schrieb: Sorry, ich hatte tatsaechlich einen dummen Flüchtigkeitsfehler im Makro. Ist mir jetzt durch die Rückfrage aufgefallen. Anbei den geaenderten Do Loop Code. Diesen Teil bitte auswechseln, dann sollte es richtig klappen. Würde mich freuen.
freut mich das dir das Makro gefaellt. Es gibt zwei Lösungen dazu. Setze entweder vor End Sub den Cursor mit Range(xx).Select auf eine bestimmte Zelle deiner Wahl. Oder merke dir nach Sub Makroxxxx mit der Variable ActivAdr = ActiveCell.Address die Zelle der aktiven Adresse und setze vor End Sub den Cursor mit Range(ActivAdr).Select wieder zurück. Ziemlich simpel, oder ??? (gewusst wie)
20.05.2017, 17:36 (Dieser Beitrag wurde zuletzt bearbeitet: 20.05.2017, 17:49 von snb.)
Ich möchte vorschlagen:
Code:
Sub M_snb() With CreateObject("scripting.dictionary") For Each it In Sheets sn = it.Cells(1).CurrentRegion.Resize(, 5) For j = 2 To UBound(sn) sn(j, 5) = it.Name .Item(sn(j, 1) & "_" & sn(j, 2) & "_" & sn(j, 3)) = Application.Index(sn, j) Next Next
Sheet1.Cells(2, 10).Resize(.Count, 5) = Application.Index(.items, 0, 0) End With End Sub