Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1664to1668
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

SelectionChange u Datenbereiche teilen

SelectionChange u Datenbereiche teilen
21.12.2018 15:55:54
Michael
Hallo Allerseits
Mit eurer freundlichen Hilfe wird es hoffentlich gelingen zwei Probleme in meinen Mappen zu beseitigen.
Problem 1) Das auf splitten von Daten-Bereichen auf zwei andere Mappen
Problem 2) SelectionChange(ByVal Target As Range)
Dort bekomme ich die Meldung: Funktion zu groß.
Ich habe 3 Beispielmappen raufgeladen, in der Mappe Bezirk_Komplett befindet sich eine genaue Beschreibung meines Anliegens.
https://www.herber.de/bbs/user/126264.xlsm
https://www.herber.de/bbs/user/126265.xlsm
https://www.herber.de/bbs/user/126266.xlsm
Viele Grüße an alle freundlichen Helfer
Michael

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SelectionChange u Datenbereiche teilen
21.12.2018 16:28:37
onur
Ich lade bestimmt nicht 3 Mappen herunter, nur um zu erfahren, was du überhaupt möchtest.
Abgesehen davon: Welche Mappe "Bezirk_Komplett" hiess, weiss niemand ausser dir, da beim Upload die Dateinamen verloren gehen.
AW: SelectionChange u Datenbereiche teilen
21.12.2018 18:09:16
Michael
Hallo onur
Ich habe 3 Mappen raufgeladen, damit die Probleme gut ersichtlich sind. Es geht ja auch um 3 verschiedene Mappen. Da die Mappen nur eine geringe Größe haben, sehe ich darin auch keinen besonders großen Aufwand.
Das die Namen der Mappen abgeändert werden, habe ich leider nicht bedacht. Sorry. Aber jeder der die Mappen herunter läd, wird das auch so erkennen. Die Daten in den Mappen bleiben ja schließlich erhalten.
Eine kurzer umriss meiner Anliegen, steht hinter Problem 1 + 2
Natürlich hätte ich auch schon in der Beschreibung der Probleme einen Seitenfüllenden Sermon zum Besten geben können, habe es aber unterlassen.
Und zum schluß noch die Frage: Wenn dir mein Anliegen zu dusselig oder zu aufwendig ist, warum hast du dann überhaubt geantwortet? Ich hatte ghofft hier auf Hilfsbereite Leute zu stoßen und nicht auf welche die einen mit überflüssigen Antworten anblaffen.
Wünsche dir aber trotzdem schöne Feiertage
Michael
Anzeige
AW: SelectionChange u Datenbereiche teilen
21.12.2018 18:30:17
onur
Ich habe nicht behauptet, dein Anliegen wäre zu dusselig oder zu aufwendig, da ich ja nicht weiss, was überhaupt dein Anliegen ist.#
Normalerweise kommt HIER die allgemeine Problembeschreibung und die genauere Beschreibung/Erläuterung kann dann in der Datei vermerkt sein.
Aber so wie DU vorgehst, MUSS man erst die drei Dateien runterladen, um überhaupt entscheiden zu können, ob man helfen kann oder will. Und dazu haben wohl nicht viele Leute Lust, wir sind ja nicht auf einer Schnitzeljagd.
Wenn Du als Hilfesuchender auch noch dich beleidigt fühlst und meinen TIP als überflüssig betrachtest, solltest du vieleicht einen Auftragsprogramierer einschalten, den kannst du dann "zurechtweisen" so oft du willst, denn du bezahlst ihn ja dafür.
Wenn du aber meine (oder Anderer aus dem Forum) kostenlose Hilfe möchtest, solltest du nicht so pampige antworten geben.
Anzeige
AW: SelectionChange u Datenbereiche teilen
21.12.2018 23:39:34
Michael
Hallo onur
Es tut mir Leid, das meine Rückmeldung heftiger angegekommen ist als beabsichtigt war. Deine Antwort ist mir wohl in den falschen Rachen gerutscht. Ich empfand sie als "Angriff" bzw. anblaffen.
Entschuldigung!
Falls es noch von Interesse sein sollte, versuche ich nun die Probleme genauer zu Beschreiben.
In der 126264.xlsm befindet sich ein Reiter Verteilung mit 26 untereinander stehenden Tabellen- Abschitten. Jeder Abschnitt umfasst 17*32= 544 Felder (Total also 14144) In den Feldern können Zahlen eingetragen sein.
Diese Tabellen sollen in zwei getrennten Mappen wiedergegeben werden. 126265.xlsm (Bezik_A) und 126266.xlsm (Bezirk_B)
Beide Mappen sind gleich aufgebaut und "Bezirk_Komplett" sehr ähnlich, alt nur um die hälfte kürzer.(17*17 Felder)
Da aus der Quellmappe auch eine gelb unterlegte Zeile mit übertragen werden soll, handelt es sich also um, teilweise, nicht zusammenhängende Bereiche, die kopiert und eingefügt werden sollen.
Zum zweien Problem:
In jeder der drei Mappen befindet sich im Blattcode eine SelectionChange(ByVal Target As Range) Funktion die folgenden Befehl enthält: "If Target.Cells.Address = "$S$7" Then Range("B44").Select"
Dieser Befehl kommt in den kleineren Tabellen 442 mal vor. Nur in der Mappe mit den großen Tabellen gibt es davon 832 Befehle, und excel findet das das ca.130 zuviel sind. Die Befehle für die letzten 4 Tabellen musste ich ausklammern.
Meine Frage dazu: kann man das anders schreiben, um die Befehle über die ganzen Tabellen zu erhalten.
Ich hoffe das das ausführlich genug war, um sich meine Probleme vorstellen zu können.
Mit freundlichem Gruß
Michael
Anzeige
AW: SelectionChange u Datenbereiche teilen
22.12.2018 01:21:31
onur
Kein Problem!
zu 2)
statt der über 900 Zeilen:
If Target.Cells.Address = "$S$7" Then Range("B44").Select
If Target.Cells.Address = "$S$8" Then Range("B45").Select
If Target.Cells.Address = "$S$9" Then Range("B46").Select
If Target.Cells.Address = "$S$10" Then Range("B47").Select
If Target.Cells.Address = "$S$11" Then Range("B48").Select
If Target.Cells.Address = "$S$12" Then Range("B49").Select
If Target.Cells.Address = "$S$13" Then Range("B50").Select
If Target.Cells.Address = "$S$14" Then Range("B51").Select
If Target.Cells.Address = "$S$15" Then Range("B52").Select
If Target.Cells.Address = "$S$16" Then Range("B53").Select
If Target.Cells.Address = "$S$926" Then Range("B963").Select

kannst du auch NUR:
If Target.Column=19 and Target.Row >=7 and Target.Row 

schreiben.
Anzeige
AW: SelectionChange u Datenbereiche teilen
22.12.2018 02:00:22
Michael
Ein Einzeiler, ich fasse es nicht. Und funktioniert auch noch wunderbar. Ich mag garnicht daran denken, wie lange ich gebraucht habe um die ganzen Sprünge einzeln einzugeben.
Ganz große Klasse, recht vielen Dank dafür.
Wünsche eine angenehme Nachtruhe
Gruß
Michael
AW: SelectionChange u Datenbereiche teilen
22.12.2018 11:45:49
Hajo_zi
Warum Offen, das konnte ich nicht lesen?

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: SelectionChange u Datenbereiche teilen
22.12.2018 14:21:01
Michael
Es gab noch keine Anregungen/Empfehlungen zu der Frage: Problem 1) Daten in die anderen Mappen übertragen.
Problem 2) Wurde von onur super gelöst.
Gruß
Michael
Anzeige
AW: SelectionChange u Datenbereiche teilen
26.12.2018 21:20:40
Piet
Hallo Michael
ich habe den Thread gelesen und gehe mal auf das 1. Problem ein. Das Kopieren in Bezirk A+B.
Aus deiner Aufgabenstellung wurde ich nicht ganz schlau, weil sich da m.E. Bereiche überschneiden?
Hier (Verteilung) B6:R21 kopieren und in Mappe Bezirk_A (Verteilung) B6:R21 als Werte einfügen
Hier (Verteilung) B6:R6 und B22:R38 kopieren und in Mappe Bezirk_A (Verteilung) B6:R23 als Werte einfügen

Im Beispiel findest du drei neue Module, das 3. Modul als Test Modul um Offset Bereiche zu testen. Wir kopieren die ganze Tabelle nicht indem man 25 Makros schreibt für jeden einzelnen Range Bereich. Wir definineren Bereich die sich stufenweise wiederholen indem wir den Next Block über Offset auswaehlen. Dieses Verfahren über For Next und Offset dürfte dir wahrscheinlich neu sein.
Es ist mir zuviel Aufwand das ganze Makro für dich au schreiben. Wenn du das System aber verstanden hast schreibst du es selbst, und das sogar Professionell! Man muss das System der For Next Schleife mit Offset nur erst mal verstehen.
Wir verzichten beim kopieren alle auf Select, haengen ".Copy" ellegant an Rang dran! Zum Testen ob Kopierbereich und Einfügebereich stimmen benutze ich aber auch Select, um mir die Bereich optisch anzusehen. Aber nur in der Entwickungsphase des Makros!
Also, hier eine Beispieldatei zum spielen. Sum Testen kannst du die Orişginal Daten in zwei Beispiel Dateien für Bezirk A+B laden, und dann solange im Beispiel testen und kopieren bis es klappt. Bitte erst dann das Makro ins Original übernehmen. So zerstörst du dir beim Entwickeln keine Originaldaten!! Das ist sonst GROSSER Mist!!
Wenn es dir hilft kannst du den Thread ja schliessen, kein Haeckchen mehr setzen.
mfg Piet
https://www.herber.de/bbs/user/126322.xlsm
Anzeige
AW: SelectionChange u Datenbereiche teilen
27.12.2018 18:27:12
Michael
Hallo Piet
Vielen Dank dafür das du dich für mein Anliegen Interessierst.
Habe deine Mappe mit den neuen Modulen ausprobiert. Habe auch "fast" verstanden was du geschrieben hast. Module1 habe ich angepasst und funktioniert auch.
Const WBzA = "Bezirk_A.xlsm"    'Hier eure Datei Namen angeben
Const WBzB = "Bezirk_B.xlsm"    'für Bezirk A + Bezirk B
'1)Hier (Verteilung) B6:R21 kopieren und in Mappe Bezirk_A (Verteilung) B6:R21 als Werte einfü _
gen
'Sorry. Schreibfehler in Zeile 2) Statt Bezirk_A sollte es Bezirk_B sein
'2)Hier (Verteilung) B6:R6 und B22:R38  kopieren und in Mappe Bezirk_B (Verteilung) B6:R23 als  _
Werte einfügen
'Dann
'3)Hier (Verteilung) B43:R58 kopieren und in Mappe Bezirk_A (Verteilung) B28:R43 als Werte einfü _
gen
'Sorry. Schreibfehler in Zeile 4) Statt Bezirk_A sollte es Bezirk_B sein
'4)Hier (Verteilung) B43:R43 und B59:R75  kopieren und in Mappe Bezirk_B (Verteilung) B28:R45  _
als Werte einfügen
Sub Daten_verteilen()
Dim BezA As Object
Dim BezB As Object
'Arb.Mappen A+B als Objekte zuweisen
Set BezA = Workbooks(WBzA).Worksheets("Verteilung")
Set BezB = Workbooks(WBzB).Worksheets("Verteilung")
With ThisWorkbook.Worksheets("Verteilung")
'** alle Bereiche mit "." davor beziehen sich auf die With Tabelle!!
'1. Korrekte Aufteilung für die erste Quell-Tabelle auf die beiden Ziele
'Bezirk_A
.Range("B6:R21").Copy  'in Master kopieren, als Werte einfügen
BezA.Range("B6:R21").PasteSpecial xlPasteValues
'Bezirk_B
.Range("B6:R6").Copy  'in Master kopieren, als Werte einfügen
BezB.Range("B6:R6").PasteSpecial xlPasteValues
.Range("B22:R38").Copy  'in Master kopieren, als Werte einfügen
BezB.Range("B7:R23").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End With
End Sub
Module2+3 bekomme ich aber nicht zum Laufen. Da wäre noch ein wenig Hilfe willkommen.
Module2
Laufzeitfehler '91':
Objektvariable oder With-Blockvariable nicht festgelegt
Gelbe Debug Zeile: BezA.Range("B6:R21").Offset(j * 37, 0).PasteSpecial xlPasteValues
******************************************************************************
Module3
Fehler beim Kompilieren:
Variable nicht definiert
Gelbe Debug Zeile: Sub Quelle_Offset_Test_zumDaten_kopieren()
Das "j" ist Markiert
******************************************************************************
Kannst du da nochmals drüberschauen?
Viele Grüße
Michael
Anzeige
AW: SelectionChange u Datenbereiche teilen
27.12.2018 18:41:31
onur
Dim BezA As Object?
Nicht als Worksheet oder Variant?
AW: SelectionChange u Datenbereiche teilen
27.12.2018 18:46:26
onur

Sub Quelle_Offset_Test_zumDaten_kopieren()
Dim j
'For Next zum Offset testen ob er stimmt!!
For j = 0 To 24  'für 24 Tabellen Bereiche
If .Range("B6").Offset(j * 37, 0) = "" Then Exit For
.Range("B6:R21").Offset(j * 37, 0).Select
Selection.Copy
If j > 20 Then MsgBox Selection.Address(0, 0)
Next j
End Sub

AW: SelectionChange u Datenbereiche teilen
27.12.2018 18:56:37
onur
Wenn du statt
Sheets("XYZ").Range(
.Range(

benutzt, musst du auch vorher
With ...

und später
End With

benutzen.
Anzeige
AW: SelectionChange u Datenbereiche teilen
27.12.2018 22:24:39
Michael
Hallo onur
Vielen Dank für deine Tips. Ich habe mir jetzt aus allen Fragmenten einen Code zusammengestellt. Einzeln laufen beide "Mappen" zufrieden stellend. Nur wenn ich versuche Bezirk_A + Bezirk_B in einem Makro durchlaufen zu lassen, kommt Murks bei raus. Hast du einen Tip, wie ich den Code ohne Murks zum Laufen bringe. Irgenwie fehlt mir der Übergang von A und B.
Const WBzA = "Bezirk_A.xlsm"    'Hier die Datei Namen angeben
Const WBzB = "Bezirk_B.xlsm"    'für Bezirk A + Bezirk B
Sub Daten_verteilen()
Dim BezA As Object
Dim BezB As Object
Dim j
'Arb.Mappen A+B als Objekte zuweisen
Set BezA = Workbooks(WBzA).Worksheets("Verteilung")
Set BezB = Workbooks(WBzB).Worksheets("Verteilung")
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Verteilung")
For j = 0 To 25  'für 26 Tabellen Bereiche
'Bezirk_A funktioniert wenn Bezirk_B heraus Kommentiert ist
Range("B6:R21").Offset(j * 37, 0).Copy
BezA.Range("B6:R21").Offset(j * 22, 0).PasteSpecial xlPasteValues
Next j
'Bezirk_B funktioniert wenn Bezirk_A heraus Kommentiert ist
'       Range("B6:R6").Offset(j * 37, 0).Copy
'       BezB.Range("B6:R6").Offset(j * 22, 0).PasteSpecial xlPasteValues
'       Range("B22:R38").Offset(j * 37, 0).Copy
'       BezB.Range("B7:R23").Offset(j * 22, 0).PasteSpecial xlPasteValues
'    Next j
End With
Application.ScreenUpdating = True
End Sub
Viele Grüße
Michael
Anzeige
AW: SelectionChange u Datenbereiche teilen
27.12.2018 22:33:37
onur
Versuch das:
Sub Daten_verteilen()
Dim BezA As Object
Dim BezB As Object
Dim j
'Arb.Mappen A+B als Objekte zuweisen
Set BezA = Workbooks(WBzA).Worksheets("Verteilung")
Set BezB = Workbooks(WBzB).Worksheets("Verteilung")
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Verteilung")
For j = 0 To 25  'für 26 Tabellen Bereiche
'Bezirk_A funktioniert wenn Bezirk_B heraus Kommentiert ist
Range("B6:R21").Offset(j * 37, 0).Copy
BezA.Range("B6:R21").Offset(j * 22, 0).PasteSpecial xlPasteValues
Next j
For j = 0 To 25  'für 26 Tabellen Bereiche
'Bezirk_B funktioniert wenn Bezirk_A heraus Kommentiert ist
Range("B6:R6").Offset(j * 37, 0).Copy
BezB.Range("B6:R6").Offset(j * 22, 0).PasteSpecial xlPasteValues
Range("B22:R38").Offset(j * 37, 0).Copy
BezB.Range("B7:R23").Offset(j * 22, 0).PasteSpecial xlPasteValues
Next j
End With
Application.ScreenUpdating = True
End Sub
Fehlt hier nicht ein Punkt vor Range?
Range("B6:R21").Offset(j * 37, 0).Copy

AW: SelectionChange u Datenbereiche teilen
27.12.2018 23:56:07
Michael
Hallo onur
Danke, nun funktioniert es super.
Recht herzlichen Dank dafür.
Wünsche einen guten Rutsch ins neue Jahr
Prosit

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige