Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Button einfügen, Werte in anderer Mappe aufadieren,...
#1
Hallo liebe Gemeinde  


Ich habe schon immer gerne "einfache" Tabellen mit Formeln erstellt, stehe derzeit aber vor Neuland und einem kleinen Problem. Vielleicht kann euer gesammeltes Wissen mich etwas voran treiben. 

Zur Erklärung:
In einer "Eingabemaske" sollen in zwei Zeilen Werte eingegeben werden. (Bsp A1 = 90min, A2 = 5 Stck) 
Zwei weiter Zeilen sind Auswahllisten (Bsp C1 = Maschine A-F, C2 = Material A-F). Die Auswahlliste befindet sich in Mappe2. 

Soweit bin ich gekommen. ?

Nun wäre es schön, wenn es einen Button gäbe, mit welchem... 

a) die eingegebene Zeit hinter der jeweiligen Maschine in Mappe 2 aufadiert wird 
b) die eingegebene Stückzahl hinter dem jeweiligen Material in Mappe 2 abgezogen wird 
c) Bonus..... Alle gemachten Eingaben in Mappe 3 in Reihe zur Übersicht aufgelistet werden. 
d) alle gemachten Eingaben werden "gelöscht" 

Ich hoffe ich konnte das einigermaßen verständlich erklären. Falls eine testdatei benötigt wird, kann ich diese später gerne nachreichen. 

Lg
Antwortento top
#2
ja bitte eine Beispiel Datei
Antwortento top
#3
Hallo,

zuerst mal musst du dir die korrekte Nomenklatur in Excel bewusst machen, sonst wird das nix.
1. Es gibt keine "Zeile A1", sondern eine Zelle A1 und eine Zeile 1
2. Du schreibst von "Mappe2". Eine Mappe ist eine komplette Exceldatei, bestehend aus einem oder mehreren Tabellenblättern. Ich vermute, dass hier Tabellenblätter gemeint sind.

Und ja, Beispielmappe (keine Bilder!) sind notwendig dafür. Falls tatsächlich mehrere Mappen (=Dateien) gemeint sein sollten, dann natürlich entsprechend viele Beispielmappen.
Schöne Grüße
Berni
Antwortento top
#4
Anbei die Testdatei.
Rot unterlegte Zellen in Mappe "Maske" sind Eingabefelder.
Grün unterlegte Zellen in Mappe "Material-Maschinen" sollen durch Button "beeinflusst werden".

.xlsx   Testdatei.xlsx (Größe: 12,74 KB / Downloads: 5)
Antwortento top
#5
(27.11.2018, 13:16)MisterBurns schrieb: Hallo,

zuerst mal musst du dir die korrekte Nomenklatur in Excel bewusst machen, sonst wird das nix.
1. Es gibt keine "Zeile A1", sondern eine Zelle A1 und eine Zeile 1
2. Du schreibst von "Mappe2". Eine Mappe ist eine komplette Exceldatei, bestehend aus einem oder mehreren Tabellenblättern. Ich vermute, dass hier Tabellenblätter gemeint sind.

Und ja, Beispielmappe (keine Bilder!) sind notwendig dafür. Falls tatsächlich mehrere Mappen (=Dateien) gemeint sein sollten, dann natürlich entsprechend viele Beispielmappen.

Hallo.

Tatsächlich ist mir bewusst, dass es sich um Zellen handelt. Da wird wohl die Autokorrektur am Handy zugeschlagen haben.
Mit Mappen meinte ich in der Tat die Tabellenblätter. Hatte beim schreiben am Handy kein Excel vor mir und ich hätte schwören können, die heißen "Mappen".
Aber tatsächlich heißen diese Tabellen.

Ich hoffe ich konnte die Ungereimtheiten etwas aufklären.

LG
Antwortento top
#6
Alles klar, dieser Code sollte dein Problem lösen.

Code:
Sub Uebertragen()
Dim Material As Range, Maschine As Range
Dim Quelle As Worksheet, Ziel As Worksheet
Dim freieZeile As Long

Set Quelle = Sheets("Maske")
Set Ziel = Sheets("Maschinen-Material")
Set Maschine = Ziel.Range("B4:B7").Find(what:=Quelle.Range("I4"))
Set Material = Ziel.Range("B11:B14").Find(what:=Quelle.Range("I3"))

'Überträgt die Werte in Tabellenblatt "Maschinen-Material"
With Ziel
   .Cells(Maschine.Row, "C") = .Cells(Maschine.Row, "C") + Quelle.Range("C4")
   If .Cells(Material.Row, "D") = "" Then
       .Cells(Material.Row, "D") = .Cells(Material.Row, "C") - Quelle.Range("C3")
   Else
       .Cells(Material.Row, "D") = .Cells(Material.Row, "D") - Quelle.Range("C3")
   End If
End With


'Überträgt die Werte in Tabellenblatt "Übersicht"
With Sheets("Übersicht")
   freieZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
   .Range("A" & freieZeile) = Quelle.Range("I3")
   .Range("B" & freieZeile) = Quelle.Range("I4")
   .Range("C" & freieZeile) = Quelle.Range("C3")
   .Range("D" & freieZeile) = Quelle.Range("C4")
End With


'Löscht die Eingaben auf Tabellenblatt "Maske"
Quelle.Range("C3:C4, I3:I4").ClearContents

End Sub

Die Frage ist nur, was soll passieren wenn die Menge 0 erreicht ist?
Schöne Grüße
Berni
[-] Folgende(r) 1 Benutzer sagt Danke an MisterBurns für diesen Beitrag:
  • StevenExcel
Antwortento top
#7
Zitat:Alles klar, dieser Code sollte dein Problem lösen.

Vielen vielen lieben Dank für deine Hilfestellung.

Hab den Code mal getestet.

Zeit und Menge werden soweit übertragen.
Bei Materialmenge wird auch super subtrahiert.
Bei der Maschienenzeit kann allerdings nur jede Maschine einmal übertragen werden.
Wird eine Maschine ein zweites mal benutzt kommt eine Fehlermeldung:

Laufzeitfehler `13:
Typen unverträglich

Auflistung in der Übersicht klappt perfekt

Löschen aller Eingaben ebenfalls.


Zitat:Die Frage ist nur, was soll passieren wenn die Menge 0 erreicht ist?
Im Grunde soll mir das nur als Übersicht dienen....Welches Material geht zu neige.
Bei Neubeschaffung von Material wäre für mich ein händisches "nullen" kein Problem.
Antwortento top
#8
Der Fehler kommt deshalb, weil (zumindest in deiner Beispieldatei) die Zeit in Wahrheit Text ist. Formatiere die Zelle als Zeit im Format hh:mm und (ganz wichtig) doppelklicke in die Zelle und drücke dann Enter. Nun sollte es tatsächlich ein Zahlenwert sein (ja, auch eine Zeitangabe in Excel ist letztlich nur eine Zahl).

Da ich davon ausgehe, dass die Stunden über 24 hinaus addiert werden sollen, formatiere die Zeit-Zellen im Zielblatt im Format [hh]:mm
Schöne Grüße
Berni
Antwortento top
#9
Top....das war es.

Konnte es sogar schon in die eigentliche Tabelle einarbeiten.
Super.

Das einzige das nicht funktionierte:
Meine dropdownzellen waren zwei verbundene Zellen.
Diese konnten nicht "ge-cleart" werden.

Wenn ich die Verbindung der Zellen nun aufhebe, funktioniert es.....allerdings ist mir das Dropdownfeld nun zu klein.
Verbreitern kann ich es nicht, da die Zellen darunter sonst zu groß wären.


Ist es möglich, ein Dropdownfeld und dessen Liste durch klick direkt zu öffnen, ohne vorher auf den Pfeil zu klicken und die Liste direkt größer anzeigen zu lassen?


LG


Edit: Inwiefern müsste der code abgeändert werden, wenn Material und Maschinen auf zwei Unterschiedlichen Tabellenblättern wären?
Antwortento top
#10
Hab nun versucht laienhaft den obigen Code selbst zu splitten um maschinen und Material in zwei unterschiedliche Tabellen zu übertragen.

Dazu einfach zwei mal "with Ziel" erstellt. 

Allerdings klappt das so einfach wohl nicht. 
Könnte mir jemand dazu noch mal auf die Sprünge helfen?
Lg
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste