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

Datensätze in andere Tabellen kopieren

Datensätze in andere Tabellen kopieren
21.02.2022 16:45:30
Steve
Hallo Leute,
ich habe eine Datenliste in Tabelle 1, als Tabelle formatiert.
Diese liste besteht aus 20 Spalten.
In Spalte D befinden sich verschiedene Kennzahlen.
Nun möchte ich dass anhand dieser Kennzahl z.B. 3040 der
ganze Datensatz in das Tabellenblatt 3040 in die erste freie Zeile übernommen wird !
Analog die anderen Kennzahlen auch in den entsprechenden
Tabellenblätter.
Ist es auch möglich das bei änderungen der Kennzahl automatisch der wechsel in das ensprechende Tabellenblatt
vorgenommen wird ?
Ich danke Euch
Gruß Steve

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: und warum überhaupt trennen? ....
21.02.2022 16:55:42
neopa
Hallo Steve,
... ohne Trennung kannst Du z.B. sehr schnell über z.B. den Autofilter Deine Datensätze für die jeweilige Kennzahl sichten.
Wenn aber trotzdem eine Trennung vorgenommen werden soll, könnte man es mit der Power Query Funktionalität vornehmen.
Mehr dazu sieh mal hier: https://excelhero.de/power-query/power-query-ganz-einfach-erklaert/
Gruß Werner
.. , - ...
AW: und warum überhaupt trennen? ....
21.02.2022 19:50:10
Steve
Hallo Werner,
deine Frage ist nochmals aufgetaucht, ich habe sie hier beantwortet:
https://www.herber.de/forum/messages/1871916.html
Vielen Dank für dein Interesse. Mit Power Query kann ich leider nicht arbeiten, da das nicht an allen Arbeitsplätzen, die mit der Excel Datei arbeiten sollen zur Verfügung steht.
Gruß
Steve
Anzeige
AW: in jeder XL-Version ab 2016 ...
21.02.2022 20:08:16
neopa
Hallo Steve,
... steht die PQ- Funktionalität von Haus aus zur Verfügung.
Gruß Werner
.. , - ...
AW: Datensätze in andere Tabellen kopieren
21.02.2022 18:06:33
Yal
Hallo Steve,
ganz der gleiche Meinung wie Werner. Es macht selten Sinn, Daten zu zersplitten.
Jedoch ist die Aufgabe eine Grundübung ("Kata"), die man öfter machen müsste.
Prüfe die Namen des Blattes, der aktiven Tabelle und der Artikelspalte (fett markiert).
Hier wird angenomme, dass deine Daten in einem Blatt "Tabelle1", in einer aktiven Tabelle "Tabelle1" und der Spalte "Artikel" heisst.

Sub Liste_druchgehen()
Dim E
Dim W As Worksheet
With ThisWorkbook.Worksheets("Tabelle1").ListObjects("Tabelle1")
For Each E In .ListColumns("Artikel").DataBodyRange.Cells
Set W = SelectOrCreate(E)
E.EntireRow.Copy W.Range("A99999").End(xlUp).Offset(1)
Next
End With
End Sub
Private Function SelectOrCreate(ByVal Blattname As String) As Worksheet
Dim W As Worksheet
On Error Resume Next
Set W = Worksheets(Blattname)
If W Is Nothing Then
Set W = Worksheets.Add(After:=Worksheets(Worksheets.Count))
Worksheets("Tabelle1").Range("A1:AZ1").Copy W.Range("A1")
W.Name = Blattname
End If
Set SelectOrCreate = W
End Function
VG
Yal
Anzeige
AW: Datensätze in andere Tabellen kopieren
21.02.2022 19:45:50
Steve
Hallo,
danke erstmal für deine Antwort.
Grundsätzlich dient die Tabelle, deren Datensätze verteilt werden sollen, als Eingabeblatt für einen einen Produktionsplan um die Produktionsaufträge zu erfassen. Hier kann die jeweilige Abteilung in einer Dropdownliste auswählen, in welche Kapazität dieser Auftrag nun gelegt wird (z.B. "Abt. Fräserei", "Maschine 1" , "Maschine 2", etc.. Die Maschinen bilden nun die weiteren Tabellenblätter, in die kopiert wird, um eine Art Belegungsplan mit Zeitplanung für diese Produktionskapazität zu haben. In diesem Tabellenblatt findet also die Planung unabhängig vom Auftrag statt. Ich hoffe das ist soweit verständlich.
Ich werde morgen früh versuchen, deinen Input umzusetzen. Kenne mich allerdings mit VBA so gut wie gar nicht aus. Was wichtig dabei wäre ist eben die Eingabe in eine Tabelle aus der dann eine Spalte besagt, in welches Blatt und die dort enthaltene Tabelle in die erste freie Zeile kopiert werden soll. Wichtig wäre auch, das leere Zellen aus der Eingabe nicht als leer überschrieben werden, da in den Zieltabellen dort Formeln für den weiteren Umgang mit den Daten stehen. In der Eingabemaske sind diese Leerspalten vorhanden aber ausgeblendet.
Vielen Dank für dein Hilfe soweit :)
Gruß Steve
Anzeige
AW: Datensätze in andere Tabellen kopieren
21.02.2022 19:55:45
Steve
P.S.: Wenn ich deinen VBA Code richtig verstehe, wird aus einer Tabelle jedoch nur in das zugehörige Tabellenblatt kopiert? (Im Zielblatt befindet sich auch eine Tabelle, in die die Daten eingereiht werden sollen)
Gruß Steve
AW: Datensätze in andere Tabellen kopieren
21.02.2022 20:28:55
Yal
Hallo Steve,
die richtige Antwort bekommst Du mit de richtige Frage.
In meiner Lösung werden alle Datensätze aus der Quelle gelesen.
Wenn Du gezielt auf 3040 filtern möchtest, ist es eine leicht abweichende Frage.
Da deine Quell-Liste eine aktive Tabelle ist, könntest Du auf "3040" filtern und diese Code einsetzen:

Sub Liste_druchgehen()
Dim E
Dim W As Worksheet
With ThisWorkbook.Worksheets("Tabelle1").ListObjects("Tabelle1")
For Each E In .ListColumns("Artikel").DataBodyRange.Cells
If E.EntireRow.Visible Then
Set W = SelectOrCreate(E)
E.EntireRow.Copy W.Range("A99999").End(xlUp).Offset(1)
End If
Next
End With
End Sub
Private Function SelectOrCreate(ByVal Blattname As String) As Worksheet
Dim W As Worksheet
On Error Resume Next
Set W = Worksheets(Blattname)
If W Is Nothing Then
Set W = Worksheets.Add(After:=Worksheets(Worksheets.Count))
Worksheets("Tabelle1").Range("A1:AZ1").Copy W.Range("A1")
W.Name = Blattname
End If
Set SelectOrCreate = W
End Function
Wenn Du genau hinschaust, siehst Du die Prüfung "If E.EntireRow.Visible Then", also es werden nur die Zeilen rüberkopiert, die den Filter entsprechen und daher sichtbar sind.
sollte eine Artikelnummer kein Blatt haben, wird in aktueller Stand ein leeres Blatt hergestellt. Solltest Du aber die Kopie einer Vorlage, dann sieht es so aus:

Private Function SelectOrCreate(ByVal Blattname As String) As Worksheet
Dim W As Worksheet
On Error Resume Next
Set W = Worksheets(Blattname)
If W Is Nothing Then
Set W = Worksheets("Vorlage").Copy(After:=Worksheets(Worksheets.Count))
W.Name = Blattname
End If
Set SelectOrCreate = W
End Function
Es ist so, dass deine Vorgaben kaum ohne VBA zu erfüllen sind. Da kommst Du nicht drum, dich damit auseinander zu setzen. Aber keine falsche Scheu: es liest sich -fast- wie eine normale Sprache. Und Übung macht den Meister. Für den Rest gibt es das Forum.
VG
Yal
Anzeige
AW: Datensätze in andere Tabellen kopieren
22.02.2022 11:41:31
Steve
Guten Morgen,
ich habe den Code mal angepasst und ausgeführt.

If E.EntireRow.Visible Then
Bei dieser Zeile kommt Laufzeitfehler 438, Objekt unterstützt diese Eigenschaft oder Methode nicht.
Ich würde gerne ein Beispiel hochladen doch ist die Excel Datei auch auf das hierfür Wesentliche reduziert mittlerweile zu groß für einen Upload hier.
Deshalb die Datei hier:

https://www.transfernow.net/dl/excelbsp

Ich habe nochmal mit Textfeldern versucht mein Problem darzustellen, da ich wohl auch mit der bisherigen Lösung nicht das habe, was ich am Ende benötige.
Danke für eure Zeit.
Gruß
Steve
Anzeige
AW: Datensätze in andere Tabellen kopieren
22.02.2022 11:54:36
Steve
Nochwas, Datenfilter sind immer in der ausgeblendeten Zeile 16..
AW: Datensätze in andere Tabellen kopieren
22.02.2022 15:24:35
Steve
Hallo an alle,
leider ist mein Problem noch nicht gelöst. Danke schon mal allen, die sich die Zeit nehmen das zu tun.
Gruß
Steve
AW: Datensätze in andere Tabellen kopieren
22.02.2022 18:12:11
Yal
Hallo Steve,
es ist Dir aber bewusst, dass Du dich von etwas abhängig machst, was Du nicht beherrscht?
Bei der kleinste "ups-es-hat-sich-was-geändert" ist die gesamte Mühe für den Heimer...

Sub Liste_durchgehen()
Dim E
Dim W As Worksheet
Dim R As Range
With ThisWorkbook.Worksheets("Aufträge").ListObjects("Aufträge")
For Each E In .ListColumns("Spalte18").DataBodyRange.Cells.SpecialCells(xlCellTypeVisible)
Set W = SelectOrCreate(E)
Set R = W.Range("D99999").End(xlUp)
If R = "" Then Set R = R.End(xlUp).Offset(1) Else Set R = R.Offset(1)
E.EntireRow.Range("B1:F1").Copy R.EntireRow.Range("D1")
E.EntireRow.Range("I1:I1").Copy R.EntireRow.Range("K1")
E.EntireRow.Range("O1:Q1").Copy R.EntireRow.Range("Q1")
Next
End With
End Sub
Private Function SelectOrCreate(ByVal Blattname As String) As Worksheet
Dim W As Worksheet
On Error Resume Next
Set W = Worksheets(Blattname)
If W Is Nothing Then
Set W = Worksheets("Vorlage").Copy(After:=Worksheets(Worksheets.Count))
W.Name = Blattname
End If
Set SelectOrCreate = W
End Function
Ende der Auftragsverarbeitung.
VG
Yal
Anzeige
AW: Datensätze in andere Tabellen kopieren
23.02.2022 09:11:26
Steve
Hallo Yal,
gerade habe ich es noch hinbekommen aus dem hier:

With ThisWorkbook.Worksheets("Aufträge").ListObjects("Aufträge")
das hier zu machen:

With ThisWorkbook.Worksheets("Aufträge").ListObjects("Aufträge1")
An der Stelle gab es einen Laufzeitfehler. Man lernt ja immer dazu und damit habe ich für mich herausgefunden dass hier ListObjects auf die Tabelle der Fertigungsaufträge zugreift, bzw. diese einliest.Natürlich gefällt es mir nicht, von VBA abhängig zu sein, gerade im Moment sehe ich allerdings kein Land das mit Formeln hinzubekommen. Ich beschäftige mich gerade nebenbei noch mit Power Query, wo ich durch viele Abfragen und Änderungen dann auch zum gewünschten Ergebnis komme. Allerdings weiß ich gerade noch nicht, ob ich diese dann auch in der gewünschten Form in meine Tabellen ausgeben kann und das dann vielleicht auch per Knopfdruck für den Benutzer einfach ausführbar..
Zurück zu deinem VBA-Code. Den nächsten Laufzeitfehler, den ich nun habe verstehe ich nun nicht mehr so einfach.

Set R = W.Range("D99999").End(xlUp)
ergibt den Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt.
Was muss ich denn hier anpassen, bzw. worum geht es da?
Vielen Dank
und viele Grüße
Steve
Anzeige
AW: Datensätze in andere Tabellen kopieren
23.02.2022 10:15:04
Yal
Tja, das ""ups-es-hat-sich-was-geändert" kommt doch schneller als gedacht.
Es liegt an der Zeile davor:
Set W = SelectOrCreate(E)
In der Funktion SelectOrCreate wird, falls ein Artikel-Blatt nicht vorhanden, eine neue herstellt, und zwar auf dem Basis des Blatt "Vorlage".
Nun dieses Blatt "Vorlage" existiert nicht. Es sollte daher hier eine Fehler hochkommen. Aber in diese Funktion ist "On Error Resume Next", was so gut wie "ignoriere den Fehler und mache weiter" bedeutet.
Dann kommt keinen Blatt als Rückgabewert der Funktion und W zeigt auf "Nothing", der Zustand für eine Objektvariable, die auf keine Objekt zeigt (Objektvariablen "beinhalten" nicht den Objekt, sondern "zeigen" auf einem existierenden Objekt, wie z.B. "Thisworkbook". Daher die Zuweiseung mit "Set", deutsch: setze W auf ...).
Wenn man auf diesen leeren W den Range ("D99999").End(xlUp) sucht, dann kommt einen Fehler.
Entweder Du herstellst eine Vorlage, oder kopiere irgendeine Artikel-Blatt mit dem Name der gerade gefilterte Artikel. Wenn keine Vorlage, musst Du sicherstellen, dass jede Artikel der Auftragsliste eine Artikel-Blatt hat.
VG
Yal
Anzeige
AW: Datensätze in andere Tabellen kopieren
23.02.2022 15:37:23
Steve
Hallo Yal,
erstmal vielen Dank für die weitere Unterstützung!
Ich habe in der Tabelle Aufträge tatsächlich eine Änderung vollzogen, weshalb der Code so jetzt nicht mehr funktioniert hat. Ich habe vor der Artikelnummer noch 2 Spalten in die Tabelle genommen um im Power Query auf der selben Spaltenebene arbeiten zu können.
Unabhängig davon habe ich auch den von dir geschickten VBA-Code dementsprechend abgeändert und der sieht jetzt so aus:

Sub Liste_durchgehen()
Dim E
Dim W As Worksheet
Dim R As Range
With ThisWorkbook.Worksheets("Aufträge").ListObjects("Aufträge1")
For Each E In .ListColumns("Spalte19").DataBodyRange.Cells.SpecialCells(xlCellTypeVisible)
Set W = SelectOrCreate(E)
Set R = W.Range("D99999").End(xlUp)
If R = "" Then Set R = R.End(xlUp).Offset(1) Else Set R = R.Offset(1)
E.EntireRow.Range("C1:G1").Copy R.EntireRow.Range("D1")
E.EntireRow.Range("J1:J1").Copy R.EntireRow.Range("K1")
E.EntireRow.Range("N1:N1").Copy R.EntireRow.Range("O1")
E.EntireRow.Range("P1:R1").Copy R.EntireRow.Range("Q1")
Next
End With
End Sub
Private Function SelectOrCreate(ByVal Blattname As String) As Worksheet
Dim W As Worksheet
On Error Resume Next
Set W = Worksheets(Blattname)
If W Is Nothing Then
Set W = Worksheets("Vorlage").Copy(After:=Worksheets(Worksheets.Count))
W.Name = Blattname
End If
Set SelectOrCreate = W
End Function
Beim ausführen werden jetzt alle Datensätze grundsätzlich richtig verschoben. Darüber bin ich schon mal wirklich froh :) Sobald jetzt in der Spalte 19 der erste Datensatz ohne Eintrag auftaucht wird wieder Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt. generiert. Ich habe eine Vorlage angelegt, es wird auch ein neues Blatt daraus generiert. Ohne Inhalt. Und dann kommt die Fehlermeldung.
Generell sollten Datensätze, die in der Spalte 19 noch keinen Eintrag haben dann auch nicht kopiert werden.
Weiterhin hatte ich vorgesehen, dass alle kopierten Datensätze in Spalte 22 ein Vermerk darüber bekommen, dass Sie schon kopiert wurden und dies auch im Makro berücksichtigt wird. Wenn ich das Makro nämlich nochmals ausführe werden alle Datensätze wieder dupliziert unten angefügt. Allerdings ist das Blatt Aufträge als fortlaufende Eingabe zu verstehen, deren Einträge immer nur einmal in das jeweilige Tabellenblatt gelegt werden darf, d.h. das Makro müsste auch prüfen, ob in der Spalte 22 der Vermerk schon da ist, und wenn ja, nicht kopieren.
Dann ist mir zuletzt noch aufgefallen, dass es super funktioniert nur die Daten, die kopiert werden sollen, einzufügen. Allerdings wird in der Zieltabelle die Formatierung überschrieben. Die Zieltabelle enthält aber für den weiteren Umgang mit den Daten wichtige bedingte Formatierungen und auch das grundsätzliche Format der Daten, die eingefügt werden. Die bedingte Formatierung geht verloren und teilweise werden Rahmen der Aufträge-Tabelle unglücklich mit eingefügt.
Es wäre toll, diese Probleme noch zu lösen und ich denke wenn die gelöst sind werde ich auch den VBA Code dafür verstehen.
Vielen vielen Dank dir erst einmal.
Grüße
Steve
Anzeige
AW: Datensätze in andere Tabellen kopieren
23.02.2022 16:33:50
Steve
Ich habe die Datei im aktuellen Stand mit Makro hier nochmal aufbereitet:

https://www.transfernow.net/dl/excelbsp2/vUxJe4bn

Die Beschriftung mit den Textfeldern, über das, was ich brauche habe ich hier mal weggelassen. Bedingte Formatierung ist hier ziemlich in Mitleidenschaft gezogen, die werde ich am Ende wieder gerade ziehen.
Die (alte) Datei zur Erklärung des Problems nochmal hier:
(Beispiel.xlsx)

https://www.transfernow.net/dl/excelbsp3/KQ1C8puR

Mir wäre es wirklich wichtig, dass das Makro dann Datensätze mit leeren Zellen in Spalte 19 beim kopieren ignoriert und wenn auch danach wieder eine Zelle mit Eintrag kommt, die dann auch weiter in die Mappen abzulegen. Das rührt daher, dass auch in Spalte 20 und 21 eine Maschinenbelegung möglich ist, d.h. die Bauteile werden auf verschiedenen Maschinen gefertigt und müssen deshalb in verschiedene Listen. Das kommt allerdings seltener vor und dort werden deshalb auch öfter leere Zellen zu finden sein. Diese weiteren Makros könnte ich mir dann denke ich selbst zusammenbasteln, sobald das erst so funktioniert, wie ich es hier brauche.
Wenn dass so gar nicht geht müsste ich halt eine Art Geister Liste erstellen, in die alles reinfliegt, was eigentlich "leer" sein soll.
Danke Danke Danke Yal.. :)
Grüße Steve
AW: Datensätze in andere Tabellen kopieren
23.02.2022 16:42:26
Steve
Ich habe die Datei im aktuellen Stand mit Makro hier nochmal aufbereitet:

https://www.transfernow.net/dl/excelbsp2/vUxJe4bn
Die Beschriftung mit den Textfeldern, über das, was ich brauche habe ich hier mal weggelassen. Bedingte Formatierung ist hier ziemlich in Mitleidenschaft gezogen, die werde ich am Ende wieder gerade ziehen.
Die (alte) Datei zur Erklärung des Problems nochmal hier:
(Beispiel.xlsx)

https://www.transfernow.net/dl/excelbsp3/KQ1C8puR
Link funtionierte mal wieder nicht...
AW: Datensätze in andere Tabellen kopieren
23.02.2022 17:47:07
Yal
Hallo Steve,
"Sobald jetzt in "Spalte19" der erste Datensatz ohne Eintrag auftaucht wird wieder Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt. generiert"
Eigentlich sollten aktive Tabelle nur befüllte Zeilen haben. Wenn man eine neue Zeile direkt unter eine aktive Tabelle befüllt, erweitert sich alle Eigenschaften der letzte Zeile der aktive Tabelle (Drum "aktive Tabelle"). Vorläufig angelegte Zeile, die leer sind, sind im Konzept von Microsoft nicht vorgesehen.
Der Inhalt der Zelle in "Spalte19" wird die Variable "E" übergeben. Man könnte hier prüfen, ob E leer ist:

Sub Liste_durchgehen()
Dim E
Dim W As Worksheet
Dim R As Range
With ThisWorkbook.Worksheets("Aufträge").ListObjects("Aufträge1")
For Each E In .ListColumns("Spalte19").DataBodyRange.Cells.SpecialCells(xlCellTypeVisible)
If E.Value  "" Then
Set W = SelectOrCreate(E)
Set R = W.Range("D99999").End(xlUp)
If R = "" Then Set R = R.End(xlUp).Offset(1) Else Set R = R.Offset(1)
E.EntireRow.Range("C1:G1").Copy R.EntireRow.Range("D1")
E.EntireRow.Range("J1:J1").Copy R.EntireRow.Range("K1")
E.EntireRow.Range("N1:N1").Copy R.EntireRow.Range("O1")
E.EntireRow.Range("P1:R1").Copy R.EntireRow.Range("Q1")
End If
Next
End With
End Sub
"Weiterhin hatte ich vorgesehen, dass alle kopierten Datensätze in Spalte 22 ein Vermerk darüber bekommen, dass Sie schon kopiert wurden"
Dann filtere anhand diese Vermerk diese Zeilen aus, bevor das Makro angestossen wird und alles funktioniert, wie es soll.
Keine Änderung am Code notwendig. Es sei denn, man will diese Vermerk eben bei der Kopiererei setzen. Luxus.
VG
Yal
AW: Datensätze in andere Tabellen kopieren
23.02.2022 18:09:36
Steve
Hallo Yal,
"Der Inhalt der Zelle in "Spalte19" wird die Variable "E" übergeben. Man könnte hier prüfen, ob E leer ist:"
Vielen Dank für deine Lösung :)
"Es sei denn, man will diese Vermerk eben bei der Kopiererei setzen. Luxus."
Ja genau darum ging es, und darum diesen Vermerk auch beim kopieren abzufragen. Problem hier ist, das ich nicht alleiniger Nutzer dieser Liste sein werde, sondern diese von Benutzern, die weitaus weniger tief im Hintergrund des Produktionsplanes und Excel im allgemeinen stecken, benutzt werden soll. Der durchschnittliche Benutzer ist diesen Luxus gewohnt. Das ganze wäre durch das händische Filtern schon zu fehleranfällig und damit wäre Chaos vorprogrammiert.
Und dann ist noch die Frage nach meinem Problem mit dem überschreiben der vorhandenen Formatierung offen, gibt es dazu noch einen Lösungsansatz?
Vielen Dank :)
Grüße
Steve
AW: Datensätze in andere Tabellen kopieren
23.02.2022 19:33:39
Yal
Hallo Steve,
"setzen" ist nicht gleich "lesen".
Und der Chaos ist bei Excel in Multiuser-Modus von Anfang programmiert. Es gibt inzwischen gute Cloud-Lösung für einfache Datenbanken. Das ist wesentlich stabiler als Excel.
Dann die letzte Version ist wie folgt:

Sub Liste_durchgehen()
Dim wZ As Worksheet
Dim LR
Dim Artikel As Range
Dim Merker As Range
ThisWorkbook.Activate
With Worksheets("Aufträge").ListObjects("Aufträge1")
For Each LR In .ListRows
Set LR = LR.Range.EntireRow
If Not LR.Hidden Then
Set Artikel = Intersect(LR, .ListColumns("Spalte19").Range)
Set Merker = Intersect(LR, .ListColumns("Spalte22").Range)
If Merker.Value = "" Then
Set wZ = SelectOrCreate(Artikel.Value)
Set Z = wZ.Range("D99999").End(xlUp)
If Z = "" Then Set Z = Z.End(xlUp).Offset(1) Else Set Z = Z.Offset(1)
Set Z = Z.EntireRow
Z.Range("D1:H1") = LR.Range("C1:G1").Value
Z.Range("K1") = LR.Range("J1").Value
Z.Range("O1") = LR.Range("N1").Value
Z.Range("Q1:S1") = LR.Range("P1:R1").Value
Merker.Value = "ü"
Merker.Font.Name = "Wingdings"
End If
End If
Next
End With
End Sub
Ich habe "Copy" durch eine direkte Zuweisung der Werte, weil Copy zu langsam ist und auch noch komische Formatierung mitüberträgt.
Ausserdem ist die Schleife ganz anders aufgestellt, weil ich die Vorteil des Objects ListRow nutzen wollte. Bringt aber wenig, man muss trotzdem mit Intersect arbeiten (diese Anmerkungen sind eher für Leute, die per Zufall diese Lösungsweg lesen, den Du selber sehr wenig damit anfangen kannst).
Die Function SelectOrCreate ist unverändert, so wie es bei stabilen Konzept auch sein soll.
VG
Yal
AW: Datensätze in andere Tabellen kopieren
24.02.2022 08:35:22
Steve
Guten Morgen Yal,
ich habe den neuen Code heute früh gleich ausprobiert und er macht wirklich genau das, was er soll. Ich bin absolut begeistert und sehr dankbar dafür :))
Ein kleines Problem gibt es nun immernoch, sobald die Leerzelle in der Spalte 19 auftaucht wird wieder ein neues Blatt aus der Vorlage generiert. Kopiert wird wieder nichts und dann kommt der bekannte Laufzeitfehler 91. Wenn das noch funktioniert, dass dort die leeren Zellen übersprungen werden dann ist es genau das, was ich hier brauche. Es kann nämlich durchaus oft so sein dass der Maschinenführer einen später angelegten Fertigungsauftrag schon einplant und andere (davor) noch leer bleiben.
Vielen vielen Dank! Du bist mein Held.
Gruß
Steve
AW: Datensätze in andere Tabellen kopieren
24.02.2022 11:31:50
Yal
Sorry, habe es übersehen.
Andere

If Merker.Value = "" Then
in

If Merker.Value = "" And Artikel.Value  "" Then
(hättest Du fast selber drauf kommen können, oder?)
VG
Yal
AW: Datensätze in andere Tabellen kopieren
24.02.2022 14:30:08
Steve
Hallo Yal,
da hätte ich in der Tat selber drauf kommen können. Zur Umsetzung fehlt mir allerdings das Wissen um die Syntax im VBA.
Alles funktioniert jetzt für mein Verständnis perfekt so, wie es gedacht war.
Ich danke dir nochmals tausendfach auch dafür, dass ich hier einiges lernen durfte.
Danke auch für deine Zeit und Mühe :)
Viele Grüße
Steve

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige