Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

VBA: Wert einer Zelle mithilfe des Namens auslesen

Betrifft: VBA: Wert einer Zelle mithilfe des Namens auslesen von: Jan Arbus
Geschrieben am: 13.08.2014 15:31:01

Hi,

ich habe einer kompletten Spalte einen Namen gegeben und möchte jetzt im VBA-Editor auf diese Spalte bzw. diesen Namen zugreifen. Das geht meines Wissens mit Range("EigenerName").

Wie erhalte ich jetzt einen Wert einer Zelle aus "EigenerName"?

Sinngemäß anstelle von Range("A3") eher Range("EigenerName3") (ist natürlich Quatsch, aber vllt. versteht mich jemand dadurch besser.

Über Feedback würde ich mich freuen.
Vielen Dank,
Jan

  

Betrifft: AW: VBA: Wert einer Zelle mithilfe des Namens auslesen von: Daniel
Geschrieben am: 13.08.2014 15:39:11

Hi

Range("EigenerName").Cells(1, 1).Value

damit greifst du auf die Zelle in der ersten Zeile und ersten Spalte dieses Zellbereichs zu.

Aufpassen, es findet keine Logik-Kontrolle statt.
dh wenn du "EigenerName" den Zellbereich J:J zugewiesen hast, wäre ein
Range("EigenerName").Cells(1, 2).value
trotzdem möglich, in diesem Fall würde dann auf die Spalte K zugegriffen, obwohl diese gar nicht zu "EigenerName" gehört.


  

Betrifft: AW: VBA: Wert einer Zelle mithilfe des Namens auslesen von: Matze Matthias
Geschrieben am: 13.08.2014 15:43:12

Hallo Jan,
mit Range("A3").value würdest du diese Zelle DIREKT ansprechen.
Das selbe erreichst du mit Cells(3, 1).value
Der Bereichsname fürs direkte ansprechen ist da nicht nötig.

Wenn du aber alle Zellen in diesen Bereich ansprechen möchtest, wird eine For-Schleife nötig.

Dim Zelle as Long
for each Zelle in Range("EigenerName")
usw

Gruß Matze


  

Betrifft: AW: VBA: Wert einer Zelle mithilfe des Namens auslesen von: Jan Arbus
Geschrieben am: 13.08.2014 15:58:53

Hi Matze,

an sich stimmt das. Also es stimmt, ja :-) Aber ich möchte vermeiden, dass ich beim Einfügen neuer Spalten im Arbeitsblatt dann im VBA-Code per Hand alles nachrücken muss. Verstehst Du, was ich damit meine? Oder ich habe einen Denkfehler :-)


  

Betrifft: AW: VBA: Wert einer Zelle mithilfe des Namens auslesen von: Jan Arbus
Geschrieben am: 13.08.2014 15:56:55

Hi Daniel,

zum Verständnis: .Cells() bezieht sich dann also relativ auf die Range("EigenerName")?

Jan


  

Betrifft: AW: VBA: Wert einer Zelle mithilfe des Namens auslesen von: Daniel
Geschrieben am: 13.08.2014 16:01:31

ja, wenn Das .Cells auf Range folgt, dann sind die Koordinaten in Cells bezugen auf den Zellbereich der Range.

Range(...).Cells(1, 1) ist also die linke obere Zelle der Range.

Gruß Daniel


  

Betrifft: AW: VBA: Wert einer Zelle mithilfe des Namens auslesen von: Jan Arbus
Geschrieben am: 13.08.2014 16:05:06

Auch wieder was gelernt. Danke! Das kam in all den Beispiel im Web nicht rüber (für mich).

Danke :-)


  

Betrifft: AW: VBA: Wert einer Zelle mithilfe des Namens auslesen von: Ewald
Geschrieben am: 14.08.2014 00:41:16

Hallo,

die einfache Schreibweise

Range(...).Cells(1, 1)
ist fehlerhaft, sie fängt zwar mit der oberen linken Zelle des Bereichs an, verläßt aber den Bereich sowohl nach unten als auch nach rechts.

Um nur im Bereich zu bleiben sollten Variablen verwendet werden zB. x;y
Range(...).Cells(x, y)
diese müssen überwacht werden, ist x > Range(...).Rows.Count oder y > Range(...).Columns.Count darf kein Ergebnis angezeigt werden oder es muß eine Meldung kommen.

Nur so ist gewährleistet das auch nur Werte aus dem Namensbereich angezeigt werden

Gruß Ewald


  

Betrifft: Sprich den Index an ... von: Matthias L
Geschrieben am: 13.08.2014 15:42:13

Hallo

Option Explicit
Sub WertAusZelle()
 MsgBox Range("EigenerName")(3)
End Sub
Das wäre die 3.Zelle in Deinem Namensbereich der Spalte.
Evtl noch das Blatt referenzieren.

Gruß Matthias


  

Betrifft: AW: Sprich den Index an ... von: Jan Arbus
Geschrieben am: 13.08.2014 16:04:25

Der Index.. die Schreibweise habe ich gesucht. Ich vermute, dass dies mein Problem löst nach dem Einfügen neuer Spalten alle Absolut referenzierten Zellen neu Nachzu"-alphabetisieren".

Danke Matthias.


  

Betrifft: Danke für die Rückmeldung ... owT von: Matthias L
Geschrieben am: 13.08.2014 16:10:53




  

Betrifft: AW: Sprich den Index an ... von: Daniel
Geschrieben am: 13.08.2014 16:20:21

HI
wenn du den Index verwendest und dein Zellbereich hat mehrere Zeilen und mehrere Spalten, dann läuft der Index zunächsts in der selben Spalte nach rechts und springt dann in die nächste Zeile

Range(...).Index(2) ist also die Zelle in der ersten Zeile in der zweiten Spalte des Zellbereichs (Wenn die Range 2 oder mehr Spalten umfasst)

Gruß Daniel


  

Betrifft: AW: Sprich den Index an ... von: Jan Arbus
Geschrieben am: 13.08.2014 16:24:47

Verstehe. Vielen vielen Dank!

Grüße,
Jan


  

Betrifft: das war aber nicht gefragt !! von: Matthias L
Geschrieben am: 13.08.2014 18:32:56

Hallo Daniel

Das war aber nicht gefragt !!

Zitat von Jan

ich habe einer kompletten Spalte einen Namen gegeben.
Darauf habe ich geantwortet!

Das was Du hier machst, ist das Abwerten anderer Vorschläge(denn es war ja abgeschlossen)
Denn anders ist das für mich nicht zu deuten.
Schade, denn Du bist ja eigentlich ein kluges Köpfchen.
Warunm Du das jetzt brauchst ist mir schleierhaft.

Gruß Matthias


  

Betrifft: AW: das war aber nicht gefragt !! von: Daniel
Geschrieben am: 13.08.2014 18:57:35

HI Matthias
ich verstehe meinen Beitrag jetzt überhaupt nicht als Abwertung deiner Antwort, ganz im Gegenteil.
Ich gehe nur davon aus, dass Jan vielleicht in naher oder ferner Zukunft (oder irgendjemand anderes, der zu einem ähnlichen Problem recheriert und dabei diesen Tread findet) mal mit einem nicht nur 1-zeiligen oder 1-spaltigen Zellbereich arbeiten muss und dann sollte er wissen was passiert, wenn er den Einzelindex verwendet.
Weil ich deine Lösung prinzipell gut finde, habe ich sie um eine weiterführende Information ergänzt.
Gruß Daniel


  

Betrifft: ok ... dann ist ja alles gut :-) owT von: Matthias L
Geschrieben am: 13.08.2014 19:01:50




  

Betrifft: Na, dann noch 'ne 'weiterführende Info'! von: Luc:-?
Geschrieben am: 13.08.2014 19:29:43

Wird der ZellBereich zuvor in ein Array übertragen und dann mit For Each durchlaufen, ist es genau umgekehrt: erst alle Zeilen der 1., dann der 2.Spalte usw.
Gruß, Luc :-?


 

Beiträge aus den Excel-Beispielen zum Thema "VBA: Wert einer Zelle mithilfe des Namens auslesen"