Supportnet / Forum / Tabellenkalkulation
formelfehler oder doch excel schuld ? :-(
Frage
hi @ all
ich kopiere mit diesem Befehl:
[code]
ZeiterfassungKonverter.DieseArbeitsmappe.Sheets(1).UsedRange.Copy
.UsedRange.PasteSpecial Operation:=xlPasteSpecialOperationAdd
[/code]
von einer excel tabelle in eine andere datei
nun folgendes problem
in den zellen die er kopiert, stehen nur formeln ... diese kopiert er allerdings nicht 1 zu 1 sondern so ...
[code]
Original:
=WENN(Zeiterfassung!$A$2="20";"Thomas Hühn";WENN(Zeiterfassung!$A$2="21";"Enrico Geppert";WENN(Zeiterfassung!$A$2="22";"Rene Rühl";WENN(Zeiterfassung!$A$2="23";"Klaus Giest";WENN(Zeiterfassung!$A$2="24";"Gerry Breitbarth";WENN(Zeiterfassung!$A$2="25";"Steffen Allstedt";WENN(Zeiterfassung!$A$2="26";"Andreas Beck";WENN(Zeiterfassung!$A$2="27";"Rene Engelhardt";A3))))))))
Nach kopieren:
=[b]0+([/b]WENN(Zeiterfassung!$A$2="20";"Thomas Hühn";WENN(Zeiterfassung!$A$2="21";"Enrico Geppert";WENN(Zeiterfassung!$A$2="22";"Rene Rühl";WENN(Zeiterfassung!$A$2="23";"Klaus Giest";WENN(Zeiterfassung!$A$2="24";"Gerry Breitbarth";WENN(Zeiterfassung!$A$2="25";"Steffen Allstedt";WENN(Zeiterfassung!$A$2="26";"Andreas Beck";WENN(Zeiterfassung!$A$2="27";"Rene Engelhardt";A3))))))))[b])[/b]
[/code]
Der unterschied ist [b]FETT[/b] geschrieben
mache ich an dem ort wo es hinkopiert wurde die 0+ ... weg, dann funktioniert die formel, lasse ich es stehen kommt +WERT raus ...
Mache ich beim kopieren was falsch? ich weiß echt nicht weiter...
schonma danke für eure mühe
mfg
sp
Antwort 1 von Arno_Nym
User schuld.
Excel macht doch genau das, was du ihm sagst:
"xlPasteSpecialOperationAdd"
Und das heißt nun mal "addieren".
Arno
Excel macht doch genau das, was du ihm sagst:
"xlPasteSpecialOperationAdd"
Und das heißt nun mal "addieren".
Arno
Antwort 2 von Arno_Nym
Nachtrag:
Und natürlich kommt dann besagter Fehler zustande, denn "0 + eine Zeichenfolge" geht schlecht.
Arno
Und natürlich kommt dann besagter Fehler zustande, denn "0 + eine Zeichenfolge" geht schlecht.
Arno
Antwort 3 von SoftwareProjekt
erstmal danke für die antwort
und wie muss dann der befehl heißen das er es nur kopiert ß
danke
sp
und wie muss dann der befehl heißen das er es nur kopiert ß
danke
sp
Antwort 4 von SoftwareProjekt
ahhh
wenn ich Add in None ändere funktioniert mein Script
trotzdem, danke für die Mühe ...
mfg
sp
PS: funktioniert alles
wenn ich Add in None ändere funktioniert mein Script
trotzdem, danke für die Mühe ...
mfg
sp
PS: funktioniert alles
Antwort 5 von CaroS
Hallo sp,
ganz einfach: Excel-VBA-Hilfe zum Thema "PasteSpecial-Methode" aufrufen, Liste der XlPasteType-Werte anzeigen lassen, durchlesen, aussuchen, fertig!
____________________________________________________________________
PasteSpecial-Methode
PasteSpecial-Methode, wie sie auf das Range-Objekt angewendet wird.
Fügt ein Range-Objekt aus der Zwischenablage in den angegebenen Bereich ein.
Ausdruck.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
Ausdruck Erforderlich. Ein Ausdruck, der ein Range-Objekt zurückgibt.
Paste Optionaler XlPasteType-Wert. Der Teil des Bereichs, der eingefügt werden soll.
XlPasteType kann eine der folgenden XlPasteType-Konstanten sein.
xlPasteAll Standard
xlPasteAllExceptBorders
xlPasteColumnWidths
xlPasteComments
xlPasteFormats
xlPasteFormulas
xlPasteFormulasAndNumberFormats
xlPasteValidation
xlPasteValues
xlPasteValuesAndNumberFormats
Operation Optionaler XlPasteSpecialOperation-Wert. Die Einfügeoperation.
XlPasteSpecialOperation kann eine der folgenden XlPasteSpecialOperation-Konstanten sein.
xlPasteSpecialOperationAdd
xlPasteSpecialOperationDivide
xlPasteSpecialOperationMultiply
xlPasteSpecialOperationNone Standard
xlPasteSpecialOperationSubtract
SkipBlanks Optionaler Variant-Wert. True, wenn leere Zellen im Bereich in der Zwischenablage nicht in den Zielbereich eingefügt werden. Der Standardwert ist False.
Transpose Optionaler Variant-Wert. True, wenn Zeilen und Spalten beim Einfügen eines Bereichs vertauscht werden. Der Standardwert ist False.
____________________________________________________________________
Dein Befehl muss also wahrscheinlich
ZeiterfassungKonverter.DieseArbeitsmappe.Sheets(1).UsedRange.Copy
.UsedRange.PasteSpecial Paste:=xlPasteFormulas
oder
ZeiterfassungKonverter.DieseArbeitsmappe.Sheets(1).UsedRange.Copy
.UsedRange.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats
lauten und die Option Operation:=... kannst Du völlig weglassen, wenn Du nichts "operieren" willst. Manchmal kann Excel so einfach sein!
Gruß,
CaroS
ganz einfach: Excel-VBA-Hilfe zum Thema "PasteSpecial-Methode" aufrufen, Liste der XlPasteType-Werte anzeigen lassen, durchlesen, aussuchen, fertig!
____________________________________________________________________
PasteSpecial-Methode
PasteSpecial-Methode, wie sie auf das Range-Objekt angewendet wird.
Fügt ein Range-Objekt aus der Zwischenablage in den angegebenen Bereich ein.
Ausdruck.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
Ausdruck Erforderlich. Ein Ausdruck, der ein Range-Objekt zurückgibt.
Paste Optionaler XlPasteType-Wert. Der Teil des Bereichs, der eingefügt werden soll.
XlPasteType kann eine der folgenden XlPasteType-Konstanten sein.
xlPasteAll Standard
xlPasteAllExceptBorders
xlPasteColumnWidths
xlPasteComments
xlPasteFormats
xlPasteFormulas
xlPasteFormulasAndNumberFormats
xlPasteValidation
xlPasteValues
xlPasteValuesAndNumberFormats
Operation Optionaler XlPasteSpecialOperation-Wert. Die Einfügeoperation.
XlPasteSpecialOperation kann eine der folgenden XlPasteSpecialOperation-Konstanten sein.
xlPasteSpecialOperationAdd
xlPasteSpecialOperationDivide
xlPasteSpecialOperationMultiply
xlPasteSpecialOperationNone Standard
xlPasteSpecialOperationSubtract
SkipBlanks Optionaler Variant-Wert. True, wenn leere Zellen im Bereich in der Zwischenablage nicht in den Zielbereich eingefügt werden. Der Standardwert ist False.
Transpose Optionaler Variant-Wert. True, wenn Zeilen und Spalten beim Einfügen eines Bereichs vertauscht werden. Der Standardwert ist False.
____________________________________________________________________
Dein Befehl muss also wahrscheinlich
ZeiterfassungKonverter.DieseArbeitsmappe.Sheets(1).UsedRange.Copy
.UsedRange.PasteSpecial Paste:=xlPasteFormulas
oder
ZeiterfassungKonverter.DieseArbeitsmappe.Sheets(1).UsedRange.Copy
.UsedRange.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats
lauten und die Option Operation:=... kannst Du völlig weglassen, wenn Du nichts "operieren" willst. Manchmal kann Excel so einfach sein!
Gruß,
CaroS