Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1900to1904
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wie kann ich den Code anpassen?

Wie kann ich den Code anpassen?
01.10.2022 17:34:27
Maurice
Hallo,
ich habe den Code so hinbekommen das er funktioniert. Beim befüllen der Datenbank bräuchte ich ja nur die fehlenden Sachen hinzufügen.
tbl.DataBodyRange(Zeile, 11).Value = .Range("O2").Value
tbl.DataBodyRange(Zeile, 11).Value = .Range("H2").Value
tbl.DataBodyRange(Zeile, 11).Value = .Range("K2").Value
usw usw
Nur wie kann ich es machen das er mir das mit dem Datum auch immer mit rein macht in Zeile 1?
Was ich bis jetzt habe hänge ich mal mit an
Vielen Dank

Sub Laufende_Kosten_uebertragen_1()
'Tabelle einlesen
Dim tbl As ListObject
Set tbl = J_Einnahmen_Ausgaben.ListObjects(1)
Dim Zeile As Long
'Laufende Kosten anlegen
'Zeile hinzufügen
tbl.ListRows.Add
'Zeile in Variable speichern
Zeile = tbl.DataBodyRange.Rows.Count
'Datenbank befüllen
With B_Laufende_Kosten
tbl.DataBodyRange(Zeile, 5).Value = .Range("I2").Value
tbl.DataBodyRange(Zeile, 6).Value = .Range("J2").Value
tbl.DataBodyRange(Zeile, 9).Value = .Range("M2").Value
tbl.DataBodyRange(Zeile, 10).Value = .Range("N2").Value
tbl.DataBodyRange(Zeile, 11).Value = .Range("O2").Value
End With
'Navigieren zu Tabellenblatt Datenbank
J_Einnahmen_Ausgaben.Select
ActiveWindow.ScrollRow = tbl.DataBodyRange(Zeile, 1).Row
tbl.DataBodyRange(Zeile, 1).Select
'Datum eintragen
ActiveCell.Value = Date
End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie kann ich den Code anpassen?
01.10.2022 18:00:19
Yal
Hallo Maurice,
eigentlich ist ein Datum nichts anderes als ein Zahl, der entsprechend der Formatierung als Datum angezeigt wird.
Wenn die erste Spalte deiner aktive Tabelle als Datum formatiert ist, sollte alles funktionieren.
Mit der passenden Verwendung von objekte kann man den Code leichter gestalten:

Sub Laufende_Kosten_uebertragen_1()
'Laufende Kosten anlegen
Dim LO_Zeile As ListRow
'Zeile hinzufügen und befüllen
Set LO_Zeile = J_Einnahmen_Ausgaben.ListObjects(1).ListRows.Add
With LO_Zeile
.Range(1).Value = Date 'Datum eintragen
.Range(5).Value = .Range("I2").Value
.Range(6).Value = .Range("J2").Value
.Range(9).Value = .Range("M2").Value
.Range(10).Value = .Range("N2").Value
.Range(11).Value = .Range("O2").Value
End With
'Navigieren zu Tabellenblatt Datenbank
With J_Einnahmen_Ausgaben
.Activate
.ScrollRow = .Range(LO_Zeile.Address).Row
LO_Zeile.Range(1).Select
End With
End Sub
VG
Yal
Anzeige
AW: Wie kann ich den Code anpassen?
01.10.2022 18:52:21
Maurice
Der Funktioniert so leider nicht:
Fehler beim Kompilieren
Methode oder Datenobjekt nicht gefunden
Er weiß glaube ich nicht wo er die Daten herholen soll oder? B_Laufende_Kosten soll es ja sein
AW: Wie kann ich den Code anpassen?
01.10.2022 22:16:00
Yal
Hallo Maurice,
ja, da habe ich viel zu schnell gehandelt.

Sub Laufende_Kosten_uebertragen_1()
'Laufende Kosten anlegen
Dim LO_Zeile As ListRow
'Zeile hinzufügen und befüllen
Set LO_Zeile = J_Einnahmen_Ausgaben.ListObjects(1).ListRows.Add
With B_Laufende_Kosten
LO_Zeile.Range(1).Value = Date 'Datum eintragen
LO_Zeile.Range(5).Value = .Range("I2").Value
LO_Zeile.Range(6).Value = .Range("J2").Value
LO_Zeile.Range(9).Value = .Range("M2").Value
LO_Zeile.Range(10).Value = .Range("N2").Value
LO_Zeile.Range(11).Value = .Range("O2").Value
End With
'Navigieren zu Tabellenblatt Datenbank
With J_Einnahmen_Ausgaben
.Activate
.ScrollRow = .Range(LO_Zeile.Address).Row
LO_Zeile.Range(1).Select
End With
End Sub
Ich hoffe, ich habe diesmal nichts übersehen.
VG
Yal
Anzeige
AW: Wie kann ich den Code anpassen?
04.10.2022 20:19:43
Maurice
Hallo Yal,
wir kommen dahin wo wir hinwollen ;)
Fehler gibt er mir noch den gleichen und farblich hinterlegen tut er mir das ".ScrollRow =" in der Zeile .ScrollRow = .Range(LO_Zeile.Address).Row
AW: Wie kann ich den Code anpassen?
05.10.2022 14:01:34
Yal
Hmm... ja, genau: ScrollRow ist ein Eigenschaft von Activewindow, nicht von ActiveSheet.

  'Navigieren zu Tabellenblatt Datenbank
J_Einnahmen_Ausgaben.Activate
ActiveWindow.ScrollRow = LO_Zeile.Range.Row - 5
LO_Zeile.Range(1).Select
End Sub
VG
Yal
AW: Wie kann ich den Code anpassen?
05.10.2022 15:22:09
Maurice
Ja so funktioniert es.
Jetzt hatte ich gedacht ich erweitere das und er holt mir alle 17 Zeilen rüber, aber so wie ich mir das vorgestellt habe funktioniert es nicht...

       With B_Laufende_Kosten
LO_Zeile.Range(1).Value = Date 'Datum eintragen
LO_Zeile.Range(5).Value = .Range("I2").Value
LO_Zeile.Range(6).Value = .Range("J2").Value
LO_Zeile.Range(9).Value = .Range("M2").Value
LO_Zeile.Range(10).Value = .Range("N2").Value
LO_Zeile.Range(11).Value = .Range("O2").Value
LO_Zeile.Range(1).Value = Date 'Datum eintragen
LO_Zeile.Range(5).Value = .Range("I3").Value
LO_Zeile.Range(6).Value = .Range("J3").Value
LO_Zeile.Range(9).Value = .Range("M3").Value
LO_Zeile.Range(10).Value = .Range("N3").Value
LO_Zeile.Range(11).Value = .Range("O3").Value
End With
Gibt es da eine Lösung, oder mach ich mir ein Makro mit Call fertig wo er zeile für Zeile rüber holt?

    Call Laufende_Kosten_uebertragen_1 'Macro1
Call Laufende_Kosten_uebertragen_2 'Macro2
Call Laufende_Kosten_uebertragen_3 'Macro3
Call Laufende_Kosten_uebertragen_4 'Macro4
usw usw usw

Anzeige
AW: Wie kann ich den Code anpassen?
05.10.2022 16:34:48
Yal
Hallo Maurice,
es gibt mehrere Methode, um ein Ziel- ode Quell-Zelle zu definieren:
Range("A1") , A1 ist dann die Adresse der Zelle, kann auch als zusammengesetzte Text übergeben werden: Range( "A" & Zeilnummer )
Cells (1,2) , bei dem der erste Parameter die Zeilennummer, der zweite die Spaltennummer. Wobie die Spalte auch als Buchstabe übergeben werden kann: Cells(2, "D")
Um 17 Zeilen zu übergeben, musst Du eine For-Schleife verwenden:
_ neue Zeile erzeugen
_ Werte der Quellzeile in diese Zielzeile übergeben
_ nächste
Da das Objekt LO_Zeile immer die neue Zeile annimmt, wird immer zu diese LO_Zeile hinzugefügt. Ist aber jedesmal eine neue Zeile.
Es gibnt dazu unzählige Video-Tutorials.

Sub Laufende_Kosten_uebertragen()
'Laufende Kosten anlegen
Dim LO_Zeile As ListRow
Dim i As Long
'Zeile hinzufügen und befüllen
For i = 2 To 18 '17 Zeilen von 2 bis 18
Set LO_Zeile = J_Einnahmen_Ausgaben.ListObjects(1).ListRows.Add
With B_Laufende_Kosten
LO_Zeile.Range(1).Value = Date 'Datum eintragen
LO_Zeile.Range(5).Value = .Cells(i, "I").Value
LO_Zeile.Range(6).Value = .Cells(i, "J").Value
LO_Zeile.Range(9).Value = .Cells(i, "M").Value
LO_Zeile.Range(10).Value = .Cells(i, "N").Value
LO_Zeile.Range(11).Value = .Cells(i, "O").Value
End With
Next
'Navigieren zu Tabellenblatt Datenbank
J_Einnahmen_Ausgaben.Activate
ActiveWindow.ScrollRow = LO_Zeile.Range.Row
LO_Zeile.Range(1).Select
End Sub

Was zu ändern wäre, um die Zeile 5 zu 34 (oder was auch immer) zu behandeln, ist -hoffe ich- klar.
VG
Yal
Anzeige
AW: Wie kann ich den Code anpassen?
05.10.2022 17:43:25
Maurice
Ich habe mir schon unzählige Videos angeschaut und bin damit auch schon gut weiter gekommen, nur beim kopieren nicht, zumindest nicht bei vielen Zeilen...
ändern muss ich dann das:

For i = 5 To 34 '29 Zeilen von 5 bis 34
Vielen Dank für deine Mühe!
Vielen Dank für die Rückmeldung
05.10.2022 21:22:22
Yal
Hallo Maurice,
bitte verzeihe meine "Low Level"-Erklärung. Es ist immer schwer, den Wissenstand der Fragenden einzuschätzen.
VG
Yal
AW: Wie kann ich den Code anpassen?
02.10.2022 15:36:36
snb

Sub M_snb()
With B_Laufende_Kosten
sn = Array(Date, , , , .[I2], .[J2], , , .[M2], .[N2], .[O2])
End With
With J_Einnahmen_Ausgaben.ListObjects(1).Range
.Offset(.Rows.Count).Resize(1,11) = sn
End With
End Sub

Anzeige
AW: Wie kann ich den Code anpassen?
04.10.2022 20:25:28
Maurice
Der ist sehr kurz und funktioniert wunderbar!
eine Zeile macht er so, was muss ich ändern das er mir 17 zeilen oder 25 Zeilen übernimmt?
AW: Wie kann ich den Code anpassen?
04.10.2022 20:35:50
Maurice
Der ist sehr kurz und funktioniert wunderbar!
eine Zeile macht er so, was muss ich ändern das er mir 17 zeilen oder 25 Zeilen übernimmt?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige