Zugriff auf benamste Zelle einer anderen Mappe

Guten Morgen,

ich tue mich mal wieder schwer, Folgendes in der Hilfe zu finden:
Ich möchte in einer anderen Mappe - genauer: der ausgeblendet geöffneten PERSONL.XLS - von einer anderen Mappe aus eine Zelle ändern, etwas hinein schreiben. Dabei soll PERSONL.XLS nicht eingeblendet werden.
Bis jetzt mache ich es so:

 Set mappe = ActiveSheet
 Application.ScreenUpdating = False
 Windows("PERSONL.XLS").Activate
 [COM\_Nr] = COM\_Nr\_
 ActiveWindow.Visible = False
 mappe.Activate
 Application.ScreenUpdating = True

Das scheint mir etwas umständlich, muss doch einfacher gehen.
Wer-weiss-was?

Danke
Laika

Ich möchte in einer anderen Mappe - genauer: der ausgeblendet
geöffneten PERSONL.XLS - von einer anderen Mappe aus eine
Zelle ändern, etwas hinein schreiben. Dabei soll PERSONL.XLS
nicht eingeblendet werden.

Hallo Laika,

sorry, las das eben erst, einer von den dreien, w-w-w, ich
oder mein Browser informieren mich nicht immer über neue Anfragen
in Brettern :frowning:

Workbooks(„PERSONL.XLS“).worksheets(„Tabelle1“).range(„COM_Nr“).value=COM_Nr

Gruß
Reinhard

Danke mal wieder …
… ist ja eigentlich ganz einfach, mir ein bisschen Probieren hätte ich da auch selber drauf kommen können. Aber eine Frage in w-w-w … das unterstützt die Faulheit :wink:)

Workbooks(„PERSONL.XLS“).worksheets(„Tabelle1“).range(„COM_Nr“)
.value=COM_Nr

Man kann es übrigens auch etwas einfacher schreiben:

Workbooks("PERSONL.XLS").Worksheets("RSCOM-Defs").[COM\_Nr] = COM\_Nr

Den Namen also in eckige Klammern, wie bei Namen allgemein üblich, „Value“ ist ja immer vorbesetzt, der Klarheit halber kann/sollte man es vielleicht immer schreiben.

Gruss
Laika

Grüezi Laika

Workbooks(„PERSONL.XLS“).worksheets(„Tabelle1“).range(„COM_Nr“)
.value=COM_Nr

Workbooks(„PERSONL.XLS“).Worksheets(„RSCOM-Defs“).[COM_Nr] =
COM_Nr

Den Namen also in eckige Klammern, wie bei Namen allgemein
üblich

Es gibt hier aber einen Unterschied - die []-Klammern stehen für die VBA-Funktion Evaluate. Damit wird der Ausdruck also ausgewertet und nicht direkt angesprochen oder ausgelesen.

Das macht hier zwar keinen Unterschied - im Sinne einer stetigen und sauberen Referenzierung würde ich die []-Klammern aber nicht verwenden.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi wohl Thomas,

Es gibt hier aber einen Unterschied - die []-Klammern stehen
für die VBA-Funktion Evaluate. Damit wird der Ausdruck also
ausgewertet und nicht direkt angesprochen oder ausgelesen.

Das macht hier zwar keinen Unterschied - im Sinne einer
stetigen und sauberen Referenzierung würde ich die []-Klammern
aber nicht verwenden.

Aha - ich verwende die eckigen Klammern aber häufig. Habe da ganz gelegentlich Probleme, wohl doppelte Namen in verschiedenen Blättern einer Mappe oder gleiche Namen mit Subs oder so, genau kann ich das nicht sagen.
Egal, werde mich in Zukunft an Deine Anregung halten.

Gruessle
Laika

Value Value2 Text
„Value“ ist ja immer vorbesetzt,"

Hallo Laika,

1000-‰ig bin ich davon nicht überzeugt.
Es besteht bei Excel die Möglichkeit daß Excel mitdenkt
und dann fast immer Value benutzt.

Grundsätzlich hat ein Range-Objekt drei Eigenschaften:
Value
Text
Value2

Value2 sah ich noch nie in Codes, da weiß ich nur was in der Hilfe steht.

Was ich aber schon hatte war, daß .Value die falsche Eigenschaft war
und ich .Text nehmen mußte. ( In der FAQ:2363 ).
Hier ein Beispiel dazu aus der Vba-Hilfe zu Text:

Sub tt()
With ActiveSheet.Range(„A1“)
.Value = 1198.3
.NumberFormat = „$#,##0_);($#,##0)“
MsgBox .Value & " " & .Text
MsgBox .Value - .Text
End With
End Sub

Solange ich also nicht 1000-‰ig sicher bin daß Excel/vba
wenn ich .Value weglasse Excel/Vba dann mit .Value rechnet,
schreibe ich es hin.
Safety first :smile:

Gruß
Reinhard

Hallo Reinhard,

„Value“ ist ja immer vorbesetzt,"

Hallo Laika,

1000-‰ig bin ich davon nicht überzeugt.
Es besteht bei Excel die Möglichkeit daß Excel mitdenkt
und dann fast immer Value benutzt.

Nicht mitdenken. Das ist schlichtweg eine Standard Eigenschaft. Genauso wie zum Bsp. unter VB die Text Eigenschaft bei einer Textbox.
Standard Eigenschaften werden zumindest bei VB mit dem Schluesselwort DEFAULT festgelegt.

Grundsätzlich hat ein Range-Objekt drei Eigenschaften:
Value
Text
Value2

Value2 sah ich noch nie in Codes, da weiß ich nur was in der
Hilfe steht.

Was ich aber schon hatte war, daß .Value die falsche
Eigenschaft war
und ich .Text nehmen mußte. ( In der FAQ:2363 ).
Hier ein Beispiel dazu aus der Vba-Hilfe zu Text:

Sub tt()
With ActiveSheet.Range(„A1“)
.Value = 1198.3
.NumberFormat = „$#,##0_);($#,##0)“
MsgBox .Value & " " & .Text
MsgBox .Value - .Text
End With
End Sub

Solange ich also nicht 1000-‰ig sicher bin daß Excel/vba
wenn ich .Value weglasse Excel/Vba dann mit .Value rechnet,
schreibe ich es hin.
Safety first :smile:

Gruß
Reinhard

Gruß
Alex