Daten auf anderes Blatt verschieben
Hallo wer kann mir helfen,
mein problem ist eine Datensammlung zu erzeugen, um ein Auflistung von nur bestimmten Daten zu erhalten!
Also:
Ich fülle ein Datenblatt aus (Artikelnr.,Name, Preis, usw.)
und möchte nur bestimmte Daten (Zellen) auf ein anderes Blatt in eine Tabelle einfügen.
Nun fülle ich das gleiche Datenblatt erneut aus(Artikelnr.,Name, Preis, usw.) und möchte wieder die gleichen Zellen in die Tabelle (in die nächste freie Zeile) einfügen.
usw usw
Viel Spass bei meiner Lösung und ich bedanke mich schon mal.
Gruß
Ulle
Antwort schreiben
Antwort 1 von fedjo vom 25.01.2021, 13:02 Options
Hallo Ulle,
mit VBA dürfte das kein Problem sein.
Es fehlen für eine Lösung genauere Angaben.
Welche Daten oder Zellen sollen übertragen werden?
Vielleicht kannst du ja eine
Musterdatei hochladen.
Gruß
fedjo
Antwort 2 von Ulle-gt5 vom 25.01.2021, 13:35 Options
Hallo Fedjo,
dieses Programm an den ich arbeite kann einen schon Kopfschmerzen bereiten, nur gut das es solche wie dich gibt die einen immer wieder helfen!
Also, wie in der Musterdatei soll es ungefähr aussehen.
http://www.file-upload.net/download-1406274/Mappe1.xls.html Die Zahlen sollen die Einträgen darstellen die zu kopieren sind.
Gruß
Ulle
Antwort 3 von fedjo vom 25.01.2021, 16:25 Options
Hallo Ulle,
die Zahlen in den Zellen werden nach deinen Angaben übertragen. Die Zahle 6 (Bearbeitung) und die Zahl 7 (Bemerkungen) die ja öfter vorkommen, welche Zelle soll da übertragen werden?
Gruß
fedjo
Mappe1
Antwort 4 von Ulle-gt5 vom 25.01.2021, 17:29 Options
Hallo Fedjo,
in der Datensammlung die roten Felder müssen auch übertagen werden.
Die Bearbeitung und Bemerkungen sollen untereinander stehen!
Sorry erst im Gespräch merkt man, daß du nur weißt was ich schreibe und nicht was ich denke
Es währe auch schön, du würdest das Makro nicht auf Bt10 beziehen sondern auf das aktive Blatt, da kann ich das Makro besser kopieren
http://www.file-upload.net/download-1406920/Mappe1.xls.htmlTrotzdem schönen Sonntag
Gruß
Ulle
Antwort 5 von Ulle-gt5 vom 25.01.2021, 18:41 Options
Hallo Fedjo,
in der Datensammlung die roten Felder müssen auch übertagen werden.
Die Bearbeitung und Bemerkungen sollen untereinander stehen!
Sorry erst im Gespräch merkt man, daß du nur weißt was ich schreibe und nicht was ich denke
Es währe auch schön, du würdest das Makro nicht auf Bt10 beziehen sondern auf das aktive Blatt, da kann ich das Makro besser kopieren
http://www.file-upload.net/download-1406920/Mappe1.xls.htmlTrotzdem schönen Sonntag
Gruß
Ulle
Antwort 6 von fedjo vom 26.01.2021, 08:52 Options
Hallo Ulli,
das übertragen eines Datensatzes ist bei leeren und unterschiedlich langen Einträgen in den Spalten nicht so einfach, da man fast jede Zelle einzeln ansprechen muß.
Mit verbundenen Zellen gibt es mit VBA immer Probleme.
Die Tabelle Bt10 im Code kann einfach mit Suchen und alle Ersetzen ausgetauscht werden.
Gruß
fedjo
Daten übertragen
Antwort 7 von ulle-gt5 vom 26.01.2021, 10:06 Options
Hallo Fedjo,
es funktioniert einwandfrei, so wie ich es wollte.
Jetzt muß ich mit der Softwarefirma reden, wie sie die Daten einflegen können.Toll ist, das die Softwarefirmen mit den wir zutun haben, keinen haben der sich mit Exel auskennt.
Dafür gibts halt euch!!
Erst mal vielen Dank für deine Hilfe!!
Ach ich habe noch, ich hoffe ein kleines Problem.
Habe ein Kontrollkästchen eingefügt, wenn ich das Blatt schütze arbeitet es nicht
Zelle die sie ändern möchten ist Schreibgeschützt.
Ich habe alles in meiner Macht stehende getan!
Gruß
Ulle
Antwort 8 von fedjo vom 26.01.2021, 10:54 Options
Hallo Ulle,
in welchen Tabellenblatt ist ein Kontrollkästchen und ist schreibgeschützt?
Vielleicht reicht es ja, wenn nur alle Formeln in einem Tabellenblatt geschützt sind.
Code in das Codefenster der zu schützenden Tabelle einfügen.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'FORMEL SCHÜTZEN
Dim Zelle As Range
For Each Zelle In Target.Cells
If Zelle.HasFormula Then
ActiveSheet.Protect
Exit Sub
Else
ActiveSheet.Unprotect
End If
Next Zelle
End Sub
Gruß
fedjo
Antwort 9 von Ulle-gt5 vom 26.01.2021, 16:44 Options
Hallo Fedjo,
ich bin hoffendlich kein schwerer Junge.
Dafür das ich Neuling auf diesen Gebiet bin, will ich vielleicht schon zuviel.
Ich habe es mit Deinen Code probiert, fehlgeschlagen! (bei mir)
Mir fehlt zuviel Grundwissen um das alles zu verstehen.
Ich habe in der Datei mein Problem beschrieben, es ist nicht einfach was zu erklären, was nicht richtig ausdrücken kann.
Aber ich glaube, ich kann es Dir nur am Beispiel erklären und hoffe das es nicht stört, daß die dazugehörigen Daten nicht dabei sind (Datenbank, Kundendatei usw.)
http://www.file-upload.net/download-1409304/Mappe1.xls.html Gruß
Ulle
Antwort 10 von fedjo vom 26.01.2021, 17:50 Options
Antwort 11 von Ulle-gt5 vom 26.01.2021, 18:58 Options
Hallo Fedjo,
so weit so gut.
Wie kann ich jetzt verhindern das andere Nutzer der Tabelle, die ungeschützten Bereiche (Text,Überschriften usw.)verändern.
Vieleicht bin ich auch nur übervorsichtig?
Die schreibgeschützte Orginaltabelle kann ja niemand ändern, trotzdem würde mich das interesieren wie das geht.
Gruß
Ulle
Antwort 12 von fedjo vom 27.01.2021, 17:28 Options
Antwort 13 von Ulle-gt5 vom 27.01.2021, 20:35 Options
Hallo Fedjo,
manchmal ist die Lösung so leicht.
Ich hatte schon das Kontrollkästchen aufgegeben, werde es aber wieder einbauen.
Es gefällt mir einfach.
Mit deinen Makro habe ich jetzt einen Tag gearbeitet, es hat eine weile gedauert bis ich die Arbeitsweise erkannt habe.
Ich muß es noch etwas umbauen, bis ich die Datentabelle nutzen kann. Das bekomme ich hoffendlich alleine hin, Daß Ergebnis werde ich dir zukommen lassen.
Denn ich glaube es interesiert dich was mit Deiner hilfe so entsteht.
Noch mal schönen Dank für Deine Hilfe!!
Gruß
Ulle
Antwort 14 von Ulle-gt5 vom 23.02.2021, 17:41 Options
Hallo Fedjo oder alle Anderen die mir helfen können.
Das unten eingegebene Makro funktioniert einwandfrei!!
Ich möchte nicht "Bt1" sondern vom "aktiven Blatt" kopieren und
die Datensammlung liegt in einer anderen Mappe(Stammdaten).
Mein Wissen reicht dafür noch nicht aus, aber eine Lösung gibt es ja bestimmt für mein Problem.
Danke im vorraus.
Gruß Ulle
Sub SpeichernGIVDaten()
Application.ScreenUpdating = False
Worksheets("Bt1").Range("B57:J58").Copy 'Angebot
Sheets("DATENSAMMLUNG").Select
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column - 2) = Worksheets("Bt1").Range("C6").Value
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column - 1) = Worksheets("Bt1").Range("C5").Value
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 12) = Worksheets("Bt1").Range("E60").Value
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 2) = Worksheets("Bt1").Range("E10").Value
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 1) = Worksheets("Bt1").Range("C10").Value
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = Worksheets("Bt1").Range("G5").Value
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = Worksheets("Bt1").Range("C45").Value
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = Worksheets("Bt1").Range("C42").Value
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = Worksheets("Bt1").Range("C43").Value
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = Worksheets("Bt1").Range("C44").Value
Worksheets("Bt1").Range("B30:B40").Copy
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("C65536").End(xlUp).Select
Sheets("Bt1").Select
Application.CutCopyMode = False
End Sub
Antwort 15 von fedjo vom 24.02.2021, 17:09 Options
Hallo Ulle,
du kannst die Arbeitsmappe mit dem Code gleich am Anfag öffnen lassen (Pfad ändern)
Workbooks.Open FileName:="C:\Stammdaten.xls" 'Pfad ändern
Arbeitsmappe schliesen am Ende des Codes
Windows("Stammdaten.xls").Close SaveChanges:=True (False)
Option Explicit
Sub SpeichernGIVDaten()
Application.ScreenUpdating = False
ActiveSheet.Range("B57:J58").Copy 'Angebot
Windows("Stammdaten.xls").Activate
Sheets("Datensammlung").Select
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column - 2) = ActiveSheet.Range("C6").Value
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column - 1) = ActiveSheet.Range("C5").Value
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 12) = ActiveSheet.Range("E60").Value
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 2) = ActiveSheet.Range("E10").Value
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 1) = ActiveSheet.Range("C10").Value
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("G5").Value
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("C45").Value
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("C42").Value
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("C43").Value
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("C44").Value
ActiveSheet.Range("B30:B40").Copy
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("C65536").End(xlUp).Select
Application.CutCopyMode = False
Windows("Deine Mappe.xls").Activate 'Arbeitsmappe ändern
Sheets("Tabelle1").Select
End Sub
Antwort 16 von Ulle-gt5 vom 24.02.2021, 18:02 Options
Hallo Fedjo,
der erst Schritt funktioniert.
Option Explicit
Sub SpeichernGIVDaten()
Application.ScreenUpdating = False
ActiveSheet.Range("B57:J58").Copy 'Angebot
Windows("Stammdaten.xls").Activate
Sheets("Datensammlung").Select
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column - 2) = ActiveSheet.Range("C6").Value
Im zweiten Schritt ActiveSheet meine Datensammlung und nicht mein Kalkulationsblatt(Einzelteil)!!!!!! Also findet das Makro die zu kopierenden Zellen nicht mehr.
Die Stammdaten sind immer geöffnet, ich muss sie nicht mit dem Makro öffnen.
Gruß
Ulle
Antwort 17 von fedjo vom 24.02.2021, 19:20 Options
Hallo Ulle,
der Code sollte funktionieren, wenn du deine geöffnete Arbeitsmappen einträgst.
Gruß
fedjo
Windows("Dein Name Arbeitsmappe.xls").Activate
Antwort 18 von Ulle-gt5 vom 24.02.2021, 19:43 Options
Hallo Fedjo,
das Makro läuft ohne Fehlermeldung durch.
Ich habe alles eingetragen!!
Das Makro trägt nur die ersten Daten(ActiveSheet.Range("B57:J58").Copy 'Angebot) auf der Datensammlung ein,mehr nicht.
Fülle ich die Zellen C5;C6;E60 in der "Datensammlung" aus werden diese Daten in der Datensmmlung eingetragen, wie das Makro es sagt. Was es aber nicht sol!
Die Daten vom "Aktiven Blatt" nicht?????
Gruss
Ulle
Antwort 19 von fedjo vom 25.02.2021, 19:30 Options
Hallo Ulle,
stimmt das Makro kann so nicht mehr funktionieren.
Es braucht einen Bezug (Namen) zur Arbeismappe und der Tablle.
Gruß
fedjo
Antwort 20 von Ulle-gt5 vom 25.02.2021, 19:59 Options
Hallo Fedjo,
dieses Problem habe ich gelößt.
Ich habe mit dem Makro die Daten auf dem Orginaldatenblatt
zusammengefast und als Block in die Datensammlung geschoben.
Das Makro läuft viel schneller!!
Nur eins geht nicht, mit Makro Daten aus gesperrten Zellen kopieren. Da bleibt das Makro stehen.
Gruß
Ulle