28.11.2018, 00:48
(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.
Gruß Uwe
(27.11.2018, 22:38)StevenExcel schrieb: [ -> ]Dazu einfach zwei mal "with Ziel" erstellt.
Allerdings klappt das so einfach wohl nicht.
Zitat:Meine dropdownzellen waren zwei verbundene Zellen.Da siehst du mal, wie besch... verbundene Zellen sind! Verwende
Diese konnten nicht "ge-cleart" werden.
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 klickenJa, das geht über einen kleinen Umweg. Der Code muss in das Modul des Tabellenblatts, in dem das Dropdownfeld liegt.
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 lassenNein. 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?
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
Zitat:den von dir erstellten code nicht einfach nur zu übernehmen, sondern auch einigermaßen zu verstehen.Was möchtest du trinken? :28: :15:
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?