MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 05.12.2018, 04:15   #1
italianX
Neuer Benutzer
Neuer Benutzer
Strahlen VBA - Übernahme Daten aus Tabelle3 in Tabell4 in anderer Anordnung

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).
italianX ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.12.2018, 07:36   #2
MisterBurns
MOF Koryphäe
MOF Koryphäe
Standard

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üße
Berni
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.12.2018, 16:10   #3
italianX
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

HAllo MisterBurns,
die Datei ist leider größer wie hier im Forum gewünscht(445kb).
Werde was anderes Versuchen.
italianX ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.12.2018, 19:33   #4
MisterBurns
MOF Koryphäe
MOF Koryphäe
Standard

Zippen?

__________________

Schöne Grüße
Berni
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.12.2018, 19:43   #5
Drogist
MOF Profi
MOF Profi
Standard

@ 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üße
Drogist

(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 ??
Drogist ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.12.2018, 07:45   #6
italianX
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

@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:-)
italianX ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.12.2018, 10:16   #7
italianX
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

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
Angehängte Dateien
Dateityp: zip Testdatei V2.zip (191,4 KB, 5x aufgerufen)
italianX ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.12.2018, 12:49   #8
aloys78
MOF Meister
MOF Meister
Standard

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
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.12.2018, 13:25   #9
italianX
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Ok.Sorry. hier nochmal als .xlsb gepackt.
Angehängte Dateien
Dateityp: zip Testdatei V2.zip (118,7 KB, 5x aufgerufen)
italianX ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.12.2018, 11:24   #10
aloys78
MOF Meister
MOF Meister
Standard

Hallo,

warum
  • zeigt Tabelle 4 statt 106 Spaltengruppen nur 5 an ?
  • sind diese Nummern als Textfelder definiert ?

Und kannst Du Dein Anliegen etwas konkreter beschreiben ?
  • Sind auf Knopfdruck alle Daten aus Tabelle 3 nach Tabelle 4 zu kopieren
    (zuvor werden vorhandene Inhalte in Tabelle4 gelöscht)
  • Oder geht es nur um die Übernahme von gerade geänderten Daten eines Namens ?
  • Wird dabei nur das Datum oder auch der Name geändert ?
Und was bedeutet denn diese Aussage ?

Zitat:

Die Tabelle 4 unter der bestimmten Nr. voll werden(das was nicht passieren wird) wieder alles löschen unter der jeweiligen Nr.

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.12.2018, 22:17   #11
italianX
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

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).
italianX ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.12.2018, 11:08   #12
aloys78
MOF Meister
MOF Meister
Standard

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
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.12.2018, 21:27   #13
italianX
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

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.
italianX ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.12.2018, 18:33   #14
aloys78
MOF Meister
MOF Meister
Standard

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
Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.12.2018, 01:51   #15
italianX
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

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
italianX ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.