"Zeilen-Duplikat" mit Stammdaten aber ohne Bewegungsdaten
#1
Hallo und guten Morgen,
den Betreff zur formulieren war wie immer schwierig.

Ich würde gern folgendes machen: habe eine Art "Bestands-Tabelle", in der ich diverse Artikel untereinander aufliste (pro Artikel eine Zeile). Im linken Teil (arbeite mit eingefrorenen Spalten) stehen Fixdaten und im rechten Bereich trage ich den Verbrauch ab bis Bestand = Null. Die Artikel haben Chargen, und wenn eine Charge aufgebraucht ist, soll in der Zeile darunter ein neuer Artikel eingerichtet werden (mit gleichen Stammdaten, aber noch keinen Bewegungsdaten).

In den Spalten A-L habe ich "Fix-Daten", die für jedes Rohr die gleichen sind, in den Spalten danach diverse Formeln und dann kommt ab Spalte AJ der Abtrag. 

Nun meine Frage: gibt es eine Möglichkeit für ein Makro, welches mir

a) UNTER der alten ("verbrauchten") Zeile eine neue einfügt (einfügen, weil darunter durchaus noch andere Zeilen stehen) und die Daten aus den Spalten A-L aus der Zeile darüber in die neue einfügt
b) wenn möglich die Formeln aus den Spalten A-AI übernimmt
c) die bedingten Formatierungen aus den Spalten A-AI übernimmt (geht so was überhaupt per Makro?)

Wenn das zu aufwendig ist, kann ich das natürlich versuchen, über den VBA-Recorder aufzunehmen, wollte aber mal bei den Profis nachfragen Blush  
In jedem Fall Danke für die Mühe!
Viele Grüße
Klaus
Top
#2
Via VBA geht einiges, aber ganz ohne einen Ansatz ist das schwierig! Hier ist es auf jeden Fall notwendig, dass du eine Beispieldatei anfertigst!
Top
#3
Hallo Frogger,

da kümmere ich mich gern drum, bereite ich schnellstmöglich vor. 
Reiche ich nach - Danke schon mal!

Bis dahin VG
Klaus
Top
#4
So, hier nun - ziemlich vereinfacht - die Übersicht.

Wunschergebnis: die "automatisch duplizierte Zeile 8".

Die von mir so lapidar ausgewiesenen Formeln sind sehr vielschichtig (geht über Masse-, Gewichts- und Dichterechnungen). Wenn die nicht so ohne weiteres dupliziert werden können, ist das nicht tragisch, das kann auch per "runterziehen" aus der Zeile darüber stattfinden. Nice wäre es natürlich trotzdem!

Ebenso "unwichtig" - falls der Aufwand zu groß ist, sind die bedingten Formatierungen (Bsp. Bestand gleich rot, wenn UNTER NULL), auch davon habe ich so einige.

WICHTIG ist mir der vordere, gelbe Teil. Um hier nicht durch fehlende oder zu viele Leerzeichen, wahllose Groß- und Kleinschreibungen sowie überflüssige Punkte und was sonst noch so alles geht den Autofilter aufzublähen und Trefferchancen zu verringern, wäre ein exaktes Duplikat der Eigenschaften aus der Zeile darüber einfach toll!

Alles andere natürlich auch. Nochmals vielen Dank an die, die sich die Mühe machen wollen!
VG
Klaus


Angehängte Dateien
.xlsx   Material-Liste FORUM.xlsx (Größe: 13,44 KB / Downloads: 4)
Top
#5
Hallo,

wie wäre es damit:

Code:
Selection.entirerow.Insert Shift:=xlDown, CopyOrigin:=xlabove

Von Hand wird die relevante Zelle ausgewählt und der Makro über einen ShortCut gestartet.

mfg

(das Schlüsselwort "xlabove" ist geraten und kann auch nur so ähnlich sein)
Top
#6
Hallo Fennek,
schon mal vielen Dank dafür.
Kann ich das in den VBA-Editor einfach rein kopieren?
Bin da echt noch Laie, wie gehe ich damit um?
Besten Dank und Gruß
Klaus
Top
#7
Ziehe ich zurück, ich bastel gerade Smile
Top
#8
habe das Makro jetzt integriert, es wird eine Leerzeile geschaffen, aber was mache ich mit dem Schlüsselwort?

Danke Blush
Top
#9
Hallo Klaus,

füge folgenden Code in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes ein (Rechtsklick auf den Reiter Tabelle1 - Code anzeigen):
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 4 Then
Target.EntireRow.Copy
Target.EntireRow.Offset(1).Insert
Application.CutCopyMode = False
End If
End Sub
Nun kannst Du einfach per Doppelklick auf eine Zelle die ganze Zeile kopieren.

Gruß Uwe
Top
#10
Mein Lösungsansatz wäre so: 

Code:
Sub NeueZeile()

On Error GoTo ende

Dim Finden As Range


Set Finden = Columns(10).Find(0, LookIn:=xlValues)
Rows(Finden.Row + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range(Cells(Finden.Row + 1, 1), Cells(Finden.Row + 1, 10)).FillDown

MsgBox ("Es wurde eine neue Zeile" & " (Zeile" & Finden.Row + 1 & ") Eingefügt")

Exit Sub

ende:

End Sub

Man könnte das vll mit diversen Indikatoren starten...

Bitte man sehe mir nach, dass ich Anfänger bin und mein bestes versuche, aufgrund meines aktuellem Wissensstand!
Top


Gehe zu:


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