![]() |
|
|
Banner und Co. |
![]() |
Ads |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
![]() Neuer Benutzer |
![]() Hallo,
hier in meine Beispielmappe möchte ich Daten von Tabelle 3 (terr.assegnati e registrati) in Tabelle 4 (Gebietzuteilungkarte) zu übernehme,n in anderer Anordnung wie man dann in der Tabelle sieht. Tabelle 3 besteht aus Nr.1-106 und es wird in der jeweiligen Nr. autmatisch Name und Datum der Nrummernübernahme angezeigt. In Tabelle 4 soll dann einfach unter der Nr., der Name und Start und Enddatum der NummernÜbernahme stehen.Sollte Die Tabelle 4 unter der bestimmten Nr. voll werden(das was nicht passieren wird) wieder alles löschen unter der jeweiligen Nr. Ich habe in Tabelle 4 mit Übernahme der Daten mit der Excelformel = angefangen,aber da brauche ich ewig wen ich alle Daten übernehmen will. Es sollte automatisch gehen. Wie gehe ich vor? Programmieren kann ich kaum aber den Code teils auslesen und bissl verändern. Danke im Voraus Hier der link zur Datei:https://1drv.ms/x/s!AlLJ_d394eTxvDpGX21SEUVtS3fq Geändert von italianX (05.12.2018 um 04:21 Uhr). |
![]() |
![]() ![]() |
![]() |
#2 |
![]() MOF Meister |
![]() Bitte lade deine Datei direkt hier im Forum hoch, indem du auf den Button "Erweitert" drückst - dort findest du den Uploadbereich.
__________________ Schöne GrüßeBerni |
![]() |
![]() ![]() |
![]() |
#3 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() HAllo MisterBurns,
die Datei ist leider größer wie hier im Forum gewünscht(445kb). Werde was anderes Versuchen. |
![]() |
![]() ![]() |
![]() |
#4 |
![]() MOF Meister |
![]() Zippen?
__________________ Schöne GrüßeBerni |
![]() |
![]() ![]() |
![]() |
#5 |
![]() MOF Profi |
![]() @ Berni
Prinzipiell hast du Recht! Hier ist es aber die MS-Cloud (Excel-Online) und ich sehe das als relativ sicher an. @ TE a) Als *.xlsb speichern bringt enorm viel Einsparung, und dann noch zippen, damit die Foren-Soft das akzeptiert ... Und b) die Verbundenen Zellen werden dir gewiss noch viel Freude bereiten ... ![]() __________________ Internette GrüßeDrogist (Gut) Gefunden bei Storax: "This isn't a code writing service, you need to do some research and have a go at writing some of your own code." Ich verwende Excel 2016. Wenn du keine Angaben über deine Version gemacht hast gehe ich davon aus, dass auch du mindestens diese Version hast. ¿¿ Wer schützt mich vor den Datenschützern ?? |
![]() |
![]() ![]() |
![]() |
#6 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() @MisterBurns:Habs gezippt gehabt kam aber nur bis auf 375kb.
@Drogist:werde es Versuchen. Und Sorry für die unnötigen Beiträge.Könnt Ihr löschen bis auf das erste:-) |
![]() |
![]() ![]() |
![]() |
#7 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Habs geschafft, Bilder entfernt usw.
Hier nochmal mein Anliegen: hier in meine Beispielmappe möchte ich Daten von Tabelle 3 (terr.assegnati e registrati) in Tabelle 4 (Gebietzuteilungkarte) zu übernehme,n in anderer Anordnung wie man dann in der Tabelle sieht. Tabelle 3 besteht aus Nr.1-106 und es wird in der jeweiligen Nr. autmatisch Name und Datum der Nrummernübernahme angezeigt. In Tabelle 4 soll dann einfach unter der Nr., der Name und Start und Enddatum der NummernÜbernahme stehen.Sollte Die Tabelle 4 unter der bestimmten Nr. voll werden(das was nicht passieren wird) wieder alles löschen unter der jeweiligen Nr. Ich habe in Tabelle 4 mit Übernahme der Daten mit der Excelformel = angefangen,aber da brauche ich ewig wen ich alle Daten übernehmen will. Es sollte automatisch gehen. Wie gehe ich vor? Programmieren kann ich kaum aber den Code teils auslesen und bissl verändern. Danke im Voraus |
![]() |
![]() ![]() |
![]() |
#8 |
![]() MOF Meister |
![]() Hallo,
bei mir wird keine lesbare Excel-Datei erzeugt (Fehler unbekannt). Du brauchst aber doch auch keine riesige Datei hochzuladen; den Hinweis, xlsb statt xlsm zu verwenden, hast Du wohl übersehen. Außerdem reicht es für eine Beispiel-Datei - ein paar Zeilen und Spalten mit typischen Daten zur Verfügung zu stellen, - Angaben zur Zeilen- und Spaltenzahl zu machen, - sonstige für die Umsetzung wichtige Aspekte uns mitzuteilen. Gruß Aloys |
![]() |
![]() ![]() |
![]() |
#9 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Ok.Sorry. hier nochmal als .xlsb gepackt.
|
![]() |
![]() ![]() |
![]() |
#10 |
![]() MOF Meister |
![]() Hallo,
warum
Und kannst Du Dein Anliegen etwas konkreter beschreiben ?
Zitat: Die Tabelle 4 unter der bestimmten Nr. voll werden(das was nicht passieren wird) wieder alles löschen unter der jeweiligen Nr. Aloys |
![]() |
![]() ![]() |
![]() |
#11 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Hallo Aloys,
erstmal Danke das du dich der Sache annimmst. HIER ZU 1.Tabelle 4(Gebietszuteilungskarte) weiter Runterscrollen zeigt bis Nr.125 (125 weil ich später dann erweitern möchte aber vorerst nicht relevant). 2.Ja Textfeld,muss aber nicht so sein wenn es Schwierigkeiten macht den VBA-Code zu erstellen. 3. Wenn esauf Knopdruck gehen würde wäre optimal.Aber wenn es die Werte live übernimmt ist auch gut. Tabelle 4 unter jeweiliger Gebietszuteilungskartennr. nur löschen wenn die ganze Spalte voll mit Namen und Datum ist. 4.Nein.Komplette Übernahme des Namen´s und wenn schon ein Datum drin steht(das erste Datum wann er es geholt hat,steht sowieso gleich mit drin). z.B. in Tabelle 3 unter Nr1. wird der Name aus Spalte B,das Datum in Spalte C (wann er es genommen hat) und Datum in Spalte D(wann er es zurückgebracht hat, in Tabelle 4 unter Nr.1 übernommen(A7-> Namen,A8->Datum wann er es genommen hat, B8-> wann zurückgebracht) -Der Name wird automatisch in Tab3 eingetragen und wann er die Gebietskarte(Nummer) genommen hat.Wann er es zurück bringt dann wird das Enddatum auch automatisch eingetragen nach dem entfernen der Gebietsnr. unter Tab1.- 5.Name und Datum denn wenn einer zb. Die Nr.1 zurückgebracht hat trägt sich das Enddatum in Tab3 ein.Wenn jetzt ein andererer z.B.Name 56 Gebiet Nr.1 nimmt,trägt sich in Tab.3 in der nächstfreien Spalte unter der Nr.1 der Name und Datum wann er es genommen hat,bis er es wieder zurückbringt. Meine Aussage: „Die Tabelle 4 unter der bestimmten Nr. voll werden(das was nicht passieren wird) wieder alles löschen unter der jeweiligen Nr.“ Wird nicht voll denn Tab 3 hat 18 3er Spalten pro Gebietsnr.(mit je dann ein Name und 2 Daten). Tab.4 hat 27Zeilen pro Gebitsnr. Wo Name und drunter Daten übernommen wird. Hoffe es ist verständlich Geändert von italianX (08.12.2018 um 22:19 Uhr). |
![]() |
![]() ![]() |
![]() |
#12 |
![]() MOF Meister |
![]() Hallo,
Du schreibst zwar viel, wirfst aber damit immer neue Fragen auf. Ich habe jetzt verstanden, dass es für Dich die bessere Lösung wäre, eine Änderung für einen Namen in Deiner Tab3 sofort nach Tab 4 zu übernehmen. Als Ausgangssituation ist dann eine leere Tab 4 zugrunde zu legen. Und es ist bei jeder Änderung in Tab 3 dann wie folgt zu verfahren: 1, Bei einem neuen Namen würde in Tab 4 dann die nächste freie Position für die Gebiets-Nr verwendet. 2. Bei Änderung der Zeiten für einen in Tab 4 für das Gebiet schon vorhandenen Daten würden die vorhandenen Zeiten überschrieben. 3. änderst Du einen Namen in Tab 3, dann würde der neue Namen als neu in Tab 4 eingefügt; der alte blieb in Tab 4 enthalten 4. offen bleibt wie ein in Tab 4 vorhandener Name gelöscht werden kann Solltest Du eine andere Vorstellung haben, dann beschreibe die möglichen Fälle und wie sie umzusetzen sind. Außerdem enthält Tab 3 nicht numerische Gebiets-Nr (zB 32a), das passt m.E. nicht in Dein System. Gruß Aloys |
![]() |
![]() ![]() |
![]() |
#13 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Hallo Aloys,
ja ich kann mich halt nicht gescheid ausdrücken. zu 1.ja 2.Wenn ein Name in Tab3 erscheint,erscheint auch gleich das Datum wann er die Gebietskarte genommen hat.Wenn er die Gebietskarte(z.B. Nr1) zurückbringt erscheint dann auch dieses Datum in Tab 3.So soll es auch in Tab 4 vorgehen. 3.jaein. In Tab3 ändert sich der Name soll heißen es kommt ein neuer hinzu untere der selben Gebietsnr. nur eine Spalte weiter. 4.Vorhandene Namen in Tab 4 unter jeweiliger Gebietsnr. braucht erst dann gelöscht werden wenn die ganze Spalte bis nach unten(unter z.B. Gebietsnr.1) voll ist. 5. Ja das stimmt die Nr. mit Buchstaben kommen in Zukunft weg.daher nicht relevant.Diese werde ich dann alle in normalen Zahlen ändern. |
![]() |
![]() ![]() |
![]() |
#14 |
![]() MOF Meister |
![]() Hallo,
nachfolgend mein Code-Vorschlag zum Testen; einzufügen im Klassenmodul des Blattes "terr. assegnati e registrati". Grundlagen - Deine Beschreibung - Ziel-Tabelle anfangs leer - jede Änderung in der Quell-Tabelle führt zum Kopieren des Eingabewertes in die Ziel-Tabelle - wenn Tabelle voll ist, wird Fehlernachricht ausgegeben. Code: Option Explicit Option Base 1 Private Sub Worksheet_Change(ByVal Target As Range) Dim ws1 As Worksheet ' terr. assegnati e registrati Dim ws2 As Worksheet ' Gebietszuteilungskarte Dim r As Long ' Zeilen# ws1 Dim c As Long ' Spalten# ws1 Dim z As Long, z1 As Long, z2 As Long ' Zeilen# ws2 Dim s As Long ' Spalten# ws2 Dim nGebiet As Long ' Gebiets# Dim n As Long ' Anzahl Dim sw As Boolean ' Beschreibung ws1 Const w1_Block1 As Long = 7 ' Zeilen# erste Gebiets-Nr / erster Name Const w1_nRows As Long = 3 ' Zeilen-Offset zum nächsten Namen Const w1_nNamen As Long = 13 ' Anzahl Namen-Blöcke je Zeile Dim w1_LRow As Long ' Zeilen# letzte Gebietnummer Dim erg As Variant ' Ergebnis Match ' Beschreibung ws2 Const w2_nGebiete As Long = 5 ' Anzahl Gebiete je Gebiets-Block Const w2_nNamen As Long = 27 ' Anzahl 2-zeilige Namen-Blöcke je Gebiets-Block Dim w2_nGruppe() As Variant ' Positionen der einzelnen Gebietsblöcke w2_nGruppe = Array(7, 68, 129, 190, 251, 312, 373, 434, 495, 556, 617, 678, _ 739, 800, 861, 922, 983, 1044, 1105, 1166, 1227, 1288, 1349, 1410, 1471) ' Tab-Blätter zuordnen Set ws1 = Worksheets("terr. assegnati e registrati") Set ws2 = Worksheets("Gebietszuteilungskarte") 'ermittle ' - Position (Zeilen- und Spaltennummer) der gerade eingegebenen Namensdaten ' - zugehörige Gebiets-Nr If Target.CountLarge > 1 Then Exit Sub r = Target.Row ' Zeilen# geänderte Zelle c = Target.Column ' Spalten# geänderte Zelle With ws1 ' check, ob innerhalb des Spaltenbereichs If c = 1 Or c > w1_nNamen * 3 + 1 Then Exit Sub ' außerhalb Spaltenbereich ' check, ob innerhalb des Zeilenbereichs w1_LRow = .Cells(Rows.Count, "A").End(xlUp).Row If r < w1_Block1 Or r > w1_LRow Then Exit Sub ' außerhalb Gebietsnummer-Bereich If (r - 1) Mod 3 <> 0 Then Exit Sub ' keine Zeile mit Gebietsnummer ' ermittle Spalten# des Namens n = Int((c - 2) / 3) + 1 ' Nr des Namens in der Zeile c = (n - 1) * 3 + 2 ' check, ob Name enthalten ist If .Cells(r, c) = "" Then MsgBox "Zeile " & r & " Spalte " & c & " enthält keinen Namen !", vbExclamation Exit Sub End If ' ermittle Gebeits-Nr If Not IsNumeric(.Range("A" & r)) Then MsgBox "Gebiets-Nr in Zeile " & r & " ist nicht numerisch !", vbCritical Exit Sub End If nGebiet = .Range("A" & r) ' Gebiets-Nr End With ' Suche Namen im entsprechenden Gebietsblock in ws2 ' überschreibe bei gefundenem Namen die Zeiten, bzw ' schreibe die neuen Namensdaten an die nächste freie Stelle des Gebiets With ws2 n = Int((nGebiet - 1) / w2_nGebiete) + 1 ' Gebietsblock in ws2 z = w2_nGruppe(n) ' Zeilen# 1. Name im Gebietsblock z2 = z + (w2_nNamen - 1) * 2 ' Zeilen# letzter Name im Gebietsblock s = (nGebiet - 1) Mod w2_nGebiete + 1 ' Nr Spaltenblock (1 bis 5) s = (s - 1) * 2 + 1 erg = Application.Match(ws1.Cells(r, c), .Range(.Cells(z, s), .Cells(z2, s)), 0) If IsNumeric(erg) Then ' Name ist schon vorhanden z1 = erg + z - 1 GoSub Kopieren Else ' Name ist noch nicht vorhanden sw = False For z1 = z To z2 Step 2 If .Cells(z1, s) = "" Then GoSub Kopieren sw = True Exit For End If Next z1 If sw = False Then MsgBox "Datenübernahme nicht möglich; Gebiet " & nGebiet & "-Spalte ist voll !", vbCritical Exit Sub End If End If End With Exit Sub Kopieren: ws2.Cells(z1, s) = ws1.Cells(r, c) ws2.Cells(z1 + 1, s) = Format(ws1.Cells(r, c + 1), "dd.mm.yyyy") ws2.Cells(z1 + 1, s + 1) = Format(ws1.Cells(r, c + 2), "dd.mm.yyyy") Return End Sub Aloys |
![]() |
![]() ![]() |
![]() |
#15 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Hallo Aloys ,
Super, Danke für die Arbeit.Habs ausprobiert. Tabelle4 übernimmt Werte aus Tabelle 3 wenn ich sie manuell in Tab3 eintrage. Wenn ich aber in Tab 1 eine Eingabe mache (Name nimmt bestimmte Zahl bzw.Gebietsnr.) wird automatisch in Tab3 unter der Gebietsnr. Name und Nimm-Datum eingetragen.Diese übernimmt Tab4 nicht automatisch.Wäre es möglich das zu ändern das Tab4 auch Daten übernimmt die automatisch in Tab3 erscheinen? Danke |
![]() |
![]() ![]() |