Zelle in nächste freie Zeile einfügen
#1
Hey Leute, 

Ich möchte über eine Eingabemaske Informationen zu Darlehnsverträgen, mit Hilfe von einem Makro, in ein extra Blatt kopieren. 
Das funktioniert soweit auch, jedoch kopiere ich die Informationen immer wieder in die selbe Zeile. 
Bei einer neuen Eingaben sollen die Informationen nun in die nächste freie Zeile kopiert werden. 
Dass bekomme ich leider nicht hin. 
Hat jemand eine Idee wie ich das Umsetzten kann.  Huh


Sub WertAusVertragKopieren()

  Sheets(4).Range(IngLetzteZeile + 1, 10).Value() = Sheets(2).Range("I4").Value()
  Sheets(4).Range("C186").Value() = Sheets(2).Range("I5").Value()
  Sheets(4).Range("D186").Value() = Sheets(2).Range("F5").Value()
  Sheets(4).Range("E186").Value() = Sheets(2).Range("F11").Value()
  Sheets(4).Range("F186").Value() = Sheets(2).Range("F4").Value()
  Sheets(4).Range("G186").Value() = Sheets(2).Range("F6").Value()
  Sheets(4).Range("J186").Value() = Sheets(2).Range("F7").Value()
  Sheets(4).Range("K186").Value() = Sheets(1).Range("M26").Value()
  Sheets(4).Range("L186").Value() = Sheets(2).Range("F8").Value()
  Sheets(4).Range("M186").Value() = Sheets(1).Range("M27").Value()
  Sheets(4).Range("N186").Value() = Sheets(2).Range("F11").Value()
  Sheets(4).Range("O186").Value() = Sheets(1).Range("M28").Value()
 
  ActiveWorkbook.Save
 
End Sub
Top
#2
Hallo,


Zitat:Sheets(4).Range(IngLetzteZeile + 1, 10).Value() = Sheets(2).Range("I4").Value()


in der ersten Programmzeile hast du das doch schon selbst beantwortet. Das musst du nur in allen Zeilen so machen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
Hallo, 

erstmal danke für deine Antwort. 

Bei mir kommt dann folgende Fehlermeldung:
Laufzeitfehler '1004':
Anwendungs- oder objeltdefinierter Fehler
Top
#4
Hallo,

wenn deine Variable IngLetzteZeile tatsächlich die erste leere Zeile für alle Zellen ist, die du im Code ansprichst dann:
Code:
With Sheets(4)
    .Cells(IngLetzteZeile + 1, "J") = Sheets(2).Range("I4")
    .Cells(lngLetzteZeile + 1, "C") = Sheets(2).Range("I5")
    .Cells(IngLetzteZeile + 1, "D") = Sheets(2).Range("F5")
    .Cells(IngLetzteZeile + 1, "E") = Sheets(2).Range("F11")
    .Cells(IngLetzteZeile + 1, "F") = Sheets(2).Range("F4")
    .Cells(IngLetzteZeile + 1, "G") = Sheets(2).Range("F6")
    .Cells(IngLetzteZeile + 1, "J") = Sheets(2).Range("F7")
    .Cells(IngLetzteZeile + 1, "K") = Sheets(1).Range("M26")
    .Cells(IngLetzteZeile + 1, "L") = Sheets(2).Range("F8")
    .Cells(IngLetzteZeile + 1, "M") = Sheets(1).Range("M27")
    .Cells(IngLetzteZeile + 1, "N") = Sheets(2).Range("F11")
    .Cells(IngLetzteZeile + 1, "O") = Sheets(1).Range("M28")
End With

Sollten die einzelnen Spalten unterschiedlich weit befüllt sein, dann z.B. so:
Code:
With Sheets(4)
    .Range("J" & .Cells(.Rows.Count, "J").End(xlUp).Offset(1).Row) = Sheets(2).Range("I4")
    .Range("C" & .Cells(.Rows.Count, "C").End(xlUp).Offset(1).Row) = Sheets(2).Range("I5")
    .Range("D" & .Cells(.Rows.Count, "D").End(xlUp).Offset(1).Row) = Sheets(2).Range("F5")
    .Range("E" & .Cells(.Rows.Count, "E").End(xlUp).Offset(1).Row) = Sheets(2).Range("F11")
    .Range("F" & .Cells(.Rows.Count, "F").End(xlUp).Offset(1).Row) = Sheets(2).Range("F4")
    .Range("G" & .Cells(.Rows.Count, "G").End(xlUp).Offset(1).Row) = Sheets(2).Range("F6")
    .Range("J" & .Cells(.Rows.Count, "J").End(xlUp).Offset(1).Row) = Sheets(2).Range("F7")
    .Range("K" & .Cells(.Rows.Count, "K").End(xlUp).Offset(1).Row) = Sheets(1).Range("M26")
    .Range("L" & .Cells(.Rows.Count, "L").End(xlUp).Offset(1).Row) = Sheets(2).Range("F8")
    .Range("M" & .Cells(.Rows.Count, "M").End(xlUp).Offset(1).Row) = Sheets(1).Range("M27")
    .Range("N" & .Cells(.Rows.Count, "N").End(xlUp).Offset(1).Row) = Sheets(2).Range("F11")
    .Range("O" & .Cells(.Rows.Count, "O").End(xlUp).Offset(1).Row) = Sheets(1).Range("M28")
End With

Gruß Werner
Top
#5
Hallo Werner, 

Ich will mit meiner Variable die erste leere Zeile für alle Zellen ansprechen. 
Wenn ich dein ersten Code eingebe passiert bei mir gar nichts. 
Bei den zweiten packt er jede Info aus einer Spalte in eine neue Zeile. 

Gruß
Top
#6
Hallo,



Zitat:Bei den zweiten packt er jede Info aus einer Spalte in eine neue Zeile. 


... dann mußt Du ihm auf die Finger hauen.

Aber mal im ernst, was hältst Du davon, hier eine Datei zu zeigen?
Damit wäre der Kram hochwahrscheinlich in Nullzeit erledigt.
Top
#7
Hallo Käptn, 

die Datei kann ich leider nicht Hochladen, das würde meine Arbeitgeber wohl nicht so toll finden wenn ich die Darlehnsliste offen lege ;D. 
Da muss ich wohl einfach weiter probieren.


Gruß
Top
#8
Hallo,

wie ermittelst du denn die Zeilennummer, sprich den Inhalt für die Variable IngLetzteZeile?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#9
Hallo,

dann ersetzte die Daten durch ein paar Dummy-Daten, kein Mensch braucht deine Datei mit Originaldaten.

Du postest hier ein paar Zeilen Code, völlig aus dem weiteren Code gerissen, und erwartest eine Lösung.

Wenn dein Auto kaputt ist, fährst du dann mit dem Taxi zur Werkstatt oder bringst du dein Auto dort hin?

Gruß Werner
Top
#10
Hallo Klaus-Dieter, 

ich glaube dran könnte es liegen. 
Die letzte Zeile ermittel ich so: 

Sub IngLetzteZeile()
 
  letzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
  MsgBox letzteZeile
 
End Sub


Gruß
Top


Gehe zu:


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