Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
392to396
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
392to396
392to396
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

erste Makroausführung falsch, danach aber richtig

erste Makroausführung falsch, danach aber richtig
04.03.2004 13:47:13
Thorsten
Hallo
Mein Makro klappt eigentlich gut. Es hat nur einen Fehler:
Wenn ich die Eingabe in Zelle "Z1" (Sheet "Bestellungen" Datei "Lagerlisten chargen verschieben" [https://www.herber.de/bbs/user/4075.xls] ändere, dann wird bei der ersten Ausführung des Makros ein falscher Wert ausgegeben. Bei weiteren Ausführungen des Makros werden die richtigen Werte übergeben. "Z1" ist die Variable, mit der das MAkro suchen soll.

Sub Makro1()
' Makro1 Makro
' Makro am 11.12.2003 von   aufgezeichnet
Dim txZ1 As String, txZ2 As String
txZ1 = Sheets("Bestellungen").Range("Z1").Value
txZ2 = Sheets("Bestellungen").Range("Z2").Value
Sheets("Bestellungen").Select
Range("AA2").Select
Selection.Copy
Range("Z2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Lagerbestand").Select
Cells.Find(What:=txZ2, After:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
Cells.Find(What:="zzzz", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
Cells.Find(What:="ch00", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
Sheets("Bestellungen").Select
Cells.Find(What:=txZ1, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
Cells.Find(What:="zzz", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
Sheets("Lagerbestand").Select
Selection.Copy
Sheets("Bestellungen").Select
Selection.Insert Shift:=xlToRight
Sheets("Lagerbestand").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Sheets("Bestellungen").Select
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: erste Makroausführung falsch, danach aber richtig
06.03.2004 13:36:11
Christoph
Hi Thorsten,
Wenn du die Strings txZ1 und txZ2 vor dem Copy und Paste festlegst, dann passiert genau dieser Fehler, den du beschrieben hast.
Deshalb: erst denn neuen Wert in "Z2" eintragen und dann die Werte festlegen.
noch ein Tipp:
Du kannst auf ca. 95% der "Select" und "Activate" verzichten. Diese verzögern nur unnötig und machen den Code unübersichtlich.
Als Bsp habe ich dir den ersten Part mal umgeschrieben.
Und mit "Application.ScreenUpdating = False" am Anfang, verhinderst du,dass ständig das Bild hin und her wackelt. (auch das dient der Performance)

Sub Makro1()
Dim txZ1 As String, txZ2 As String
Application.ScreenUpdating = False
With Sheets("Bestellungen")
.Range("AA2").Copy
.Range("Z2").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End With
txZ1 = Sheets("Bestellungen").Range("Z1").Value
txZ2 = Sheets("Bestellungen").Range("Z2").Value
Sheets("Lagerbestand")'....
'...usw..
Application.ScreenUpdating = True
End Sub

Gruß
Christoph
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige