Excel/VBA Zellbezug aus Zelle verwenden

Hallo!
Möchte in einem Excel-Makro etwa folgendes machen (lassen):

  • in Blatt System/Zelle A1 steht „Daten!C5“
  • in Blatt System/Zelle A2 steht „Daten!C6“
  • in Blatt System/Zelle B1 steht 0
  • in Blatt System/Zelle B2 steht 1
  • in Blatt System/Zelle A3 steht „Ausgabe!B8“
  • in Blatt Daten/Zelle C5 steht „Frankfurt“
  • in Blatt Daten/Zelle C6 steht „Hessen“

Das Makro soll

  • erstmal die o.g. Adressen lesen
  • anhand der Adressen auf die Daten zugreifen können
  • in Ausgabe!B8 den Text „Frankfurt Hessen“ ablegen
  • wobei Frankfurt nicht, Hessen dagegen schon kursiv ist

Mit Trial und Error (Makro aufzeichnen usw) kann man da recht weit kommen…

Was ich nicht kapiert habe, wie kann man VBA dazu bringen,
die Inhalte einer Zelle (z. B. Daten!C5) als Adresse zu verwenden
und damit eben im Beispiel „Frankfurt“ zu finden?

Wer hat dazu Tips/Beispiele?

Oder zumindest einen Suchbegriff für die FAQ hier oder Google allgemein?

DANKE cu Kai

Möchte in einem Excel-Makro etwa folgendes machen (lassen):

  • in Blatt System/Zelle A1 steht „Daten!C5“
  • in Blatt System/Zelle A2 steht „Daten!C6“
  • in Blatt System/Zelle B1 steht 0
  • in Blatt System/Zelle B2 steht 1
  • in Blatt System/Zelle A3 steht „Ausgabe!B8“
  • in Blatt Daten/Zelle C5 steht „Frankfurt“
  • in Blatt Daten/Zelle C6 steht „Hessen“

Das Makro soll

  • erstmal die o.g. Adressen lesen
  • anhand der Adressen auf die Daten zugreifen können
  • in Ausgabe!B8 den Text „Frankfurt Hessen“ ablegen
  • wobei Frankfurt nicht, Hessen dagegen schon kursiv ist

Moin Kai,

Option Explicit
'
Sub Eintragen()
Dim Ziel As Range, Quelle1 As Range, Quelle2 As Range
Set Quelle1 = Adr(Worksheets("System").Range("a1").Value)
Set Quelle2 = Adr(Worksheets("System").Range("a2").Value)
Set Ziel = Adr(Worksheets("System").Range("a3").Value)
Ziel.Value = Quelle1.Value & " " & Quelle2.Value
Ziel.Font.FontStyle = "Standard"
With Ziel.Characters(Start:=Len(Quelle1.Value) + 2, Length:=Len(Quelle2.Value)).Font
 .FontStyle = "Kursiv"
End With
End Sub
'
Function Adr(ByVal Wert As String) As Range
Dim W
W = Split(Wert, "!")
Set Adr = Worksheets(W(0)).Range(W(1))
End Function

Gruß
Reinhard

Hallo Reinhard!

Moin Kai,

Option Explicit

Sub Eintragen()

End Function

DANKE für die rasche und komplette Antwort!!
werd ich morgen gleich mal testen… :smile:
cu Kai