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,...
#11
(27.11.2018, 22:38)StevenExcel schrieb: Dazu einfach zwei mal "with Ziel" erstellt. 

Allerdings klappt das so einfach wohl nicht. 

Das Posten dieses Codes klappte wohl auch nicht richtig. Undecided

Gruß Uwe
Antworten Top
#12
Zitat:Meine dropdownzellen waren zwei verbundene Zellen.
Diese konnten nicht "ge-cleart" werden.
Da siehst du mal, wie besch... verbundene Zellen sind! Verwende
Code:
Range("C3:C4").ClearContents
Range("I3").MergeArea.ClearContents
Range("I4").MergeArea.ClearContents


Zitat:Ist es möglich, ein Dropdownfeld und dessen Liste durch klick direkt zu öffnen, ohne vorher auf den Pfeil zu klicken
Ja, das geht über einen kleinen Umweg. Der Code muss in das Modul des Tabellenblatts, in dem das Dropdownfeld liegt. 
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 9 And (Target.Row = 3 Or Target.Row = 4) Then
   Application.EnableEvents = False
   Application.SendKeys ("%{Down}")
   Application.EnableEvents = True
End If
End Sub


Zitat:und die Liste direkt größer anzeigen zu lassen
Nein. Dazu müsstest du ActiveX-Dropdownlisten verwenden.


Zitat:Inwiefern müsste der code abgeändert werden, wenn Material und Maschinen auf zwei Unterschiedlichen Tabellenblättern wären?
Da meine Glaskugel gerade beim 3000-Stunden-Service ist, musst du ausnahmsweise eine neue Testmappe hochladen. Aber zu deiner Idee
Zitat:einfach zwei mal "with Ziel" erstellt.
eine kleiner Denkanstoß. Versuche mal einen Brief nach Frankfurt zu schicken, ohne Angabe einer Postleitzahl. Wo könnte dabei das Problem liegen?
Schöne Grüße
Berni
Antworten Top
#13
Habs noch mal getestet....mit folgendem code hat es funktioniert

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

Set Quelle = Sheets("Maske")
Set Ziel1 = Sheets("Maschinen")
Set Ziel2 = Sheets("Material")
Set Maschine = Ziel1.Range("B4:B7").Find(what:=Quelle.Range("I4"))
Set Material = Ziel2.Range("B4:B7").Find(what:=Quelle.Range("I3"))

'Überträgt die Werte in Tabellenblatt "Maschinen-Material"
With Ziel1
  .Cells(Maschine.Row, "C") = .Cells(Maschine.Row, "C") + Quelle.Range("E4")
 
End With

With Ziel2
  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
Antworten Top
#14
Bravo, das lob ich mir! Selbst probiert und tatsächlich zum Ziel gekommen - dabei auch noch etwas gelernt!
Da könnte sich so mancher eine Scheibe abschneiden...
Thumps_up Thumps_up Thumps_up Laola Thumps_up Thumps_up Thumps_up
Schöne Grüße
Berni
Antworten Top
#15
Nochmals vielen Lieben dank.

Werde jetzt mal nicht fragen, wie man einen Code in das Modul des Tabellenblatts, in dem das Dropdownfeld liegt, schreibt.
Das muss ich erstmal ergoogeln.

Ich habe mich, wie bereits gesagt, bisher nur mit "normalen" Tabellen und einfachen Formeln beschäftigt und bisher immer auch Spaß gehabt, neue Dinge zu lernen.

Codegeschreibe ist absolutes Neuland für mich und daher bitte ich zu entschuldigen, wenn ich nicht weiß, ob da nun ein "Sub", ein "Dim" oder ein "With" hinkommt.

Soweit habe ich nun versucht den von dir erstellten code nicht einfach nur zu übernehmen, sondern auch einigermaßen zu verstehen.
Daher kann es tatsächlich mal passieren, dass ich eine PLZ vergesse oder garnicht weiß, dass da ne PLZ hingehört.

Aber trotzdem vielen lieben dank für die Unterstützung.
Antworten Top
#16
Zitat:den von dir erstellten code nicht einfach nur zu übernehmen, sondern auch einigermaßen zu verstehen.
Was möchtest du trinken?  :28: :15:

Für deine Googlesuche empfehle ich dir die Suchworte "Excel Worksheet_Change"
Schöne Grüße
Berni
Antworten Top
#17
Vielen Dank noch mal..... Hat alles super funktioniert.??

Hatte jetzt noch zusätzlich versucht  die Tabellenblätter zu schützen, um versehentliches löschen von Zellen zu vermeiden. 
Allerdings schreibt der Code dann bspw nicht mehr in die Übersichtstabelle, wenn diese geschützt ist.

Kann man das irgendwie kombinieren (schreiben und schützen)? 
Wenn nicht, ist auch nicht schlimm, wäre jetzt absoluter Bonus gewesen  
?
Antworten Top
#18
Das ist simpel, du musst nur vor dem Schreiben den Schutz aufheben

Code:
Sub Uebertragen()
Sheets("Übersicht").Unprotect Password:="DeinPasswort"

'Hier der weitere Code

Sheets("Übersicht").Protect Password:="DeinPasswort"
End Sub


Zitat:Hat alles super funktioniert.??
Ist das eine Frage?
Schöne Grüße
Berni
Antworten Top
#19
Toll .. Danke dir. 

Das war natürlich keine Frage, :19: outsondern eine Aussage.
Antworten Top


Gehe zu:


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