Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1348to1352
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

Kleines Lagerbuch

Kleines Lagerbuch
10.02.2014 14:42:29
Sascha
Hallo,
ich bräuchte Unstützung bei meinem kleinen Lagerbuch.
Ich bräuchte eine Funktionalität bei der die Zeilen von A bis U aus dem Tabellenblatt "Pulverbuch" ins Tabellenblatt "Buchungen" in die nächste freie Zeile kopiert werden. Dieser Copy soll bei den Zeilen ausgeführt werden welche die Spalte V gefüllt haben, dabei soll allerdings der Wert aus V den Wert in J im Tabellenblatt "Buchungen" überschreiben. Toll wäre es auch noch, wenn man den Wert aus W in das andere Tabellenblatt übernehmen könnte.
Leider bekomme ich das via Makrorecorder nicht realisiert. Es wäre schön, wenn jemannd für mich einen Ansatz hätte.
Eine Beispieldatei habe ich hier hinzugefügt:
https://www.herber.de/bbs/user/89209.xlsm
Vorab vielen Dank.
LG
Sascha

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kleines Lagerbuch
10.02.2014 17:47:43
Franc

Sub kopieren()
Dim wksPulver As Worksheet, i
Set wksPulver = Sheets("Pulverbuch")
Application.ScreenUpdating = False
For i = 3 To wksPulver.Cells(Rows.Count, 1).End(xlUp).Row
wksPulver.Range(wksPulver.Cells(i, 1), wksPulver.Cells(i, 21)).Copy
With Sheets("Buchungen")
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial Paste:=xlPasteFormats
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial Paste:=xlPasteValues
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 10) = wksPulver.Cells(i, 22).Value
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 22) = wksPulver.Cells(i, 23).Value
End With
Next
Application.CutCopyMode = False
Application.ScreenUpdating = False
End Sub

Anzeige
AW: Kleines Lagerbuch
10.02.2014 17:48:48
Franc
ich hasse es ... ^^
muss am ende natürlich
Application.ScreenUpdating = True
heißen ^^

ScreenUpdating = True ist nicht mehr nötig
10.02.2014 18:11:26
Matthias
Hallo
Excel setzt ScreenUpdating am Ende automatisch wieder auf True.
Zum Testen
Sub ScreenUpdating_test()
MsgBox Application.ScreenUpdating  'Zustand prüfen
Application.ScreenUpdating = False 'ausschalten
MsgBox "ok"
MsgBox Application.ScreenUpdating  'Zustand nochmal prüfen
End Sub
Gruß Matthias

Hi Matthias-bei mir bleibt "Falsch" ! owT
10.02.2014 18:19:51
robert

in 2007 klappt das ohne Probleme ...
10.02.2014 18:28:29
Matthias
Hallo robert
Dann hat MS das was in XL2007 ein Fortschritt war in dieser Version wohl wieder entfernt.
Kanns leider nicht in 2010 testen.
In XL2007 hab ich sogar explizit einen VBA-Fehler erzeugt. Auch dannach steht es wieder auf True
Werde es aber dann morgen in der FA unter Office2013 mal testen
und melde mich dann nach dem Test wieder.
Gruß Matthias

Anzeige
..weder 2010 noch 2013 automatisch... owT..
10.02.2014 18:39:27
robert

hast Du wirklich (mein Bsp.) getestet ? owT
10.02.2014 18:48:06
Matthias

bei jedem Neustart des Code: ScreenUpdating =True
10.02.2014 19:49:25
Matthias
Hallo robert
Habs mit Deiner Datei gerade getestet.
Genauso wie ich es beschrieben habe.
bei jedem Neustart des Code steht ScreenUpdating auf True
Gruß Matthias

Sorry, hab ich falsch verstanden...
10.02.2014 20:07:14
robert
Hi Matthias,
ich hab immer vor End Sub abgefragt und da war natürlich
Screenupdating "Falsch"
Fehlinterpretation meinerseits - Sorry :-(
Schönen Abend noch
Robert

Ich hatte schon an mir gezweifelt ...
10.02.2014 20:22:43
Matthias
Hallo
Ich hatte schon an mir gezweifelt
und nochmal so getestet ...
2 x den Code gestartet
Userbild
aber es scheint ja nun auch in 2010 so zu sein :-)
Gruß Matthias

Anzeige
AW: Ich hatte schon an mir gezweifelt ...
11.02.2014 07:45:00
Sascha
Hallo Robert und Matthias,
vielen Dank für eure Mühe. Es funktioniert wunderbar, allerdings muss der Copy nur für die Zeilen ausgeführt werden, wenn in der Spalte V ein Wert steht.
Könnt ihr mir dabei noch helfen?
LG
Sascha

AW: Ich hatte schon an mir gezweifelt ...
11.02.2014 13:54:30
Franc
das hat ich ja ganz übersehen/vergessen ^^
Sub kopieren()
Dim wksPulver As Worksheet, i
Set wksPulver = Sheets("Pulverbuch")
Application.ScreenUpdating = False
For i = 3 To wksPulver.Cells(Rows.Count, 1).End(xlUp).Row
If wksPulver.Cells(i, 22).Value  "" Then
wksPulver.Range(wksPulver.Cells(i, 1), wksPulver.Cells(i, 21)).Copy
With Sheets("Buchungen")
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial Paste:= _
xlPasteFormats
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial Paste:= _
xlPasteValues
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 10) = wksPulver.Cells(i, 22).Value
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 22) = wksPulver.Cells(i, 23).Value
End With
End If
Next
Application.CutCopyMode = False
Application.ScreenUpdating = False
End Sub

Anzeige
wieder das alte Leid ^^
12.02.2014 10:01:38
Franc
Application.ScreenUpdating = False muss natürlich auch hier am Ende zum Application.ScreenUpdating = True werden ^^

AW: wieder das alte Leid ^^
12.02.2014 13:23:30
Sascha
Hallo,
das hat mir alles sehr weitergeholfen, vielen lieben Dank.
LG
Sascha

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige