Button einfügen, Werte in anderer Mappe aufadieren,...
#11
(27.11.2018, 23: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
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
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
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
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.
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
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  
?
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
Top
#19
Toll .. Danke dir. 

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


Gehe zu:


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