Clever-Excel-Forum

Normale Version: Makro - Umbuchung von einer summe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Excel Freunde

Um mein Excel Datei weiter zu Arbeiten bauch ich ein Makro wo ein Umbuchung auf ein anderes Tabellenblatt macht.

Um eine Umbuchung zu machen habe ich mir überlegt:

In zelle "D10" Steht der Name des Konto´s Wo die Umbuchung hien soll.
Es Wird 6 Konten geben:
P. Privat 1 = Privat Konto 1 <-Name des Tabellenblatt
P. Privat 2 = Privat Konto 2 <-Name des tabellenblatt
u.s.w
z.B.: Wenn in zelle D10 -> "P. Konto 1" Steht, dann soll
in der Tabelle "Privat Konto 1" in der Letzten nicht beschriebenen Zeile:
*Vom Aktuellen Tabelle I9 -> Tabelle "Privat Konto 1" In die letzte Nicht beschriebene Zelle "E" (Target, 5)
*Vom Aktuellen Tabelle J9 -> Tabelle "Privat Konto 1" In die letzte Nicht beschriebene Zelle "F" (Target, 6)
*Vom Aktuellen Tabelle J10 -> Tabelle "Privat Konto 1"In die letzte Nicht beschriebene Zelle "K" (Target, 11)
*In der Aktuellen Tabelle Soll I9 soll auch In die letzte Nicht beschriebene Zelle "E" (Target, 5)
*In der Aktuellen Tabelle Soll J9 soll auch In die letzte Nicht beschriebene Zelle "F" (Target, 6)
*In der Aktuellen Tabelle Soll J10 soll auch In die letzte Nicht beschriebene Zelle "K" (Target, 11)
*Im Aktuellen Tabelle soll zelle 'Range("I9, F10:J10").ClearContents gelöscht werden.

Die Aktivierung ist per "Schaltfläche"

Kann mir da jemand Helfen Bitte?

MfG BD
Noch ein Beispiel: würde es aber gerne mit einer Schaltfläche Starten!
Code:
Private Sub worksheet_change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("D10:E10")) Is Nothing Then Exit Sub
'ActiveSheet.Unprotect Password:="Geheim"
Select Case Target.Value

Case 0 <-Hier soll "P.Konto 1" Stehen.
   'In Tabelle "Privat Konto 1" = Cells(Target.Row, 5) = (Cells(9, 9))
   'In Tabelle "Privat konto 1" = Cells(Target.Row, 6) = (Cells(9, 10))
   'In Tabelle "Privat Konto 1" = Cells(Target.Row, 11) = (Cells(10, 10))
   'Cells(Target.Row, 5) = (Cells(9, 9))
   'Cells(Target.Row, 6) = (Cells(9, 10))
   'Cells(Target.Row, 11) = (Cells(10, 10))
   'Cells(9, 9) = ""
   'Cells(10, 6) = ""
   'Cells(10, 10) = ""
Case 1 <-Hier soll "P. Konto 2" Stehen.

Case 2 <- u.s.w.
 
End Select
'ActiveSheet.Protect Password:="Geheim", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Wie kann ich das machen, das ich um das Makro mit einer Schaltfläche zu Aktivieren?
Wie kann ich das machen, das die änderund auf einem Anderen Tabellenblatt gemacht werden?
Wie kann ich das machen, das Hinter "Case" Der name wie "P. Privat 1" wo aus Zelle D10 geholt wird?

Bitte Kann mir jemand Helfen?

MfG BD
Kann mir denn keiner Helfen?

Ich habe natürlich mal selber ein wenig Probiert, und bin zu diesem Makro gestossen:
Zitat:Sub Test_14()
Dim Umbuchung As String
Umbuchung = Range("D10")
   Select Case Umbuchung
       Case "P. Konto 1"
           Cells(Target.Row, 5) = (Cells(9, 9))
           Cells(1, 2) = ""
       Case "P. Konto 2"
           Cells(3, 5) = (Cells(1, 2))
       Case "P. Konto 3"
           Cells(4, 5) = (Cells(1, 2))
       Case "P. Konto 4"
           Cells(5, 5) = (Cells(1, 2))
       Case "G. Konto 1"
           Cells(6, 5) = (Cells(1, 2))
       Case "G. Konto 2"
           Cells(7, 5) = (Cells(1, 2))
       End Select
End Sub
Der Rot Makierte Text geht aber nicht, Wo mir sagen soll der Werd von "I9" soll in die Letzt Freie Zelle in Spalt "E" im
Bereich von ("E12:E1010").

Gibt es da eine Möglich keit?
Bitte um Hilfe!

MfG BD
Hi,

(23.03.2015, 10:24)BadDog81 schrieb: [ -> ]           Cells(Target.Row, 5) = (Cells(9, 9))
[...]
Der Rot Makierte Text geht aber nicht, Wo mir sagen soll der Werd von "I9" soll in die Letzt Freie Zelle in Spalt "E" im
Bereich von ("E12:E1010").

ich dachte seither immer, Target.Row ist die Zeile, in der der Cursor gerade steht und nicht die erste freie Zelle.
Die letzte freie Zelle ist doch gaaaaanz unten.

Tipp:
Suche mal im Forum nach dem Begriff "loLetzte", die dort gefundene Codezeile ermittelt die letzte belegte Zelle in der Spalte und dann noch +1, dann bist du in der ersten freien.
Hallo Ralf

erst mal danke für deine Antwort.
Ich habe mich mal selber versuch und einige Lösungen gefunden
aber das Makro ist noch nicht Fertig:
Code:
Public Sub Umbuchung()
Dim Umbuchung As String
'letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
A = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row + 1
B = Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row + 1
C = Sheets("Tabelle3").Cells(Rows.Count, 1).End(xlUp).Row + 1
'Die Obere Zeilen A,B,C noch einen Genauen Bereich hinzufügen z.B.: ("A2:A20")
Umbuchung = Range("D1")
   Select Case Umbuchung
       Case "P. Privat 1"
           'Beispiel bezieht Sich nur auf "P. Konto 1" und "P. Konto 2"
           Cells(A, 1) = (Cells(1, 1))
           Sheets("Tabelle2").Cells(B, 1) = (Sheets("Tabelle1").Cells(1, 1))
           Cells(A, 2) = "Umbuchung auf Konto 2"
           Sheets("Tabelle2").Cells(B, 2) = "Umbuchung von Konto 1"
           Cells(A, 3) = (Cells(1, 3))
           Sheets("Tabelle2").Cells(B, 3) = (Sheets("Tabelle1").Cells(1, 3))
           Cells(1, 1) = ""
           Cells(1, 3) = ""
       Case "P. Privat 2"
           Cells(A, 1) = (Cells(1, 1))
           Sheets("Tabelle3").Cells(C, 1) = (Sheets("Tabelle1").Cells(1, 1))
           Cells(A, 2) = "Umbuchung auf Konto 3"
           Sheets("Tabelle3").Cells(C, 2) = "Umbuchung von Konto 1"
           Cells(A, 3) = (Cells(1, 3))
           Sheets("Tabelle3").Cells(C, 3) = (Sheets("Tabelle1").Cells(1, 3))
           Cells(1, 1) = ""
           Cells(1, 3) = ""
       Case "P. Privat 3"
           'Cells(4, 5) = (Cells(1, 2))
       Case "P. Privat 4"
           'Cells(5, 5) = (Cells(1, 2))
       Case "P. Privat 5"
           'Cells(6, 5) = (Cells(1, 2))
       Case "P. Privat 6"
           'Cells(7, 5) = (Cells(1, 2))
   End Select
End Sub
Hier mal ein Beispiel.

Weitere Fragen:
* Gibt es die Möglichkeit denn Bereich A;B;C in nur einem Bestimmten Bereich ausfüchren zu Lassen?
z.B.: A2:A20
* Da ich von einem zum anderem Konto Geld Buche Müste das in dem Makro zeile abgezogen werden.
Cells(A, 3) = (Cells(1, 3)) so zu sagen Cells(A, 3) die gleich summe mit minus davor, was für möglichkeiten gibt es?

Bitte um Hilfe!
Hier noch eine Test Datei

MfG BD