Clever-Excel-Forum

Normale Version: Vba hört auf zu arbeiten in anderem Workbook
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi leute,

ich kopier per VBA eine Tabelle ganz einfach in ein neu geöffnetes Workbook. Danach würde ich gerne eine Suchen-Ersetzen noch starten um ein paar nervende #NV los zu werden. Das makro wir komplett ausgeführt, leider sucht und ersetzt er mir nicht... er überpringt es einfach

worin liegt der fehlen?

Code:
Sheets("Pr00").Range("A1:H86,K1:K86").Copy
Set wkbMappe = Workbooks.Add

wkbMappe.Activate

Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ActiveSheet.Range("I2:I86").Replace What:="#NV", Replacement:=" ", LookAt:=xlPart, SearchOrder:=xlByRows

Workbooks("PR00 vers 1.0 DE.xlsm").Activate
Danke für die Hilfe :)
Hallo,

Du solltest immer voll referenzieren, ausserdem solltest Du nicht durch " " sonder "" ersetzten lassen. Dass kann sonst später zu Problemen führen.
Probiere es mal so:
Code:
   Workbooks("QuellWkb").Sheets("Pr00").Range("A1:H86,K1:K86").Copy
   With Workbooks.Add
       .Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
       .Range("I2:I86").Replace What:="#NV", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows
   End With
   Workbooks("PR00 vers 1.0 DE.xlsm").Activate
Übrigens irritieren mich deine Ranges ein wenig. Aber wie deine Tabelle aussieht, weißt nur Du ;)
Hallo,

das Verhalten ist doch ganz normal! Wenn Du das Workbook wechselst, wird der VBA-Code im alten Workbook "abgebrochen" und der im neuen ausgeführt, da dort aber keiner ist, wird VBA beendet.
Entweder entfernst Du Deine #NV vor dem Kopieren oder du musst im neuen Workbook die entsprechende Routine starten.
Mit etwas Trrick kannst du aus dem alten Workbook heraus auch das neue Workbook bearbeiten, du darfst aber dabei nicht die Workbooks wechseln.
Danke erstmal, nun bringt er mir bei dieser Zeile
Code:
.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 Objekt unterstützt diese Eigenschaft oder Methode nicht
hab da gleich noch ne Frage, mein hauptframe ist VBmodeless... d.h. es wird mir über alle Excel Tabelle angezeigt. Gibt es auch ein Mode, dass "modeless" ist, jedoch nur in der Datei in der sich das Userframe befindet?
Danke
Auch Hallo,

hier fehlt doch noch das Worksheet.

Code:
.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Hallo Glausius,

ok, das wusste ich nicht, sorry bin Anfänger. Ja, mit einer anderen Linie mach ich das bereits mit einer Hilfspalte, wollte aber dieses mal darauf verzichten.
Hi Steffl, ok, keine Fehlermeldung, aber die #NV sind noch da :(
Hallo,

hast Du berücksichtigt, dass auch in der zweiten Codezeile das Worksheet dazugehört?

Code:
.Worksheets(1).Range("I2:I86").Replace What:="#NV", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows
jap :D
Du kannst das auch in das With-Statement direkt mit aufnehmen. Das hatte ich leider vergessen

With Workbooks.Add().Sheets(1)

Für alles weitere müsste man deine Tabelle kennen.
Seiten: 1 2