Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel in VBA

Formel in VBA
06.10.2008 11:46:00
steffen
Hallo,
ich komme mal wieder nicht mit meiner Formel in VBA zurecht.
Activesheet.Range("A4").Formula = "=INDIRECT(""Tabelle1!B"" &" & x + 1 & ")"; Formel gehört zu einem anderen Tabellenblatt
Das Problem besteht im Namen "Tabelle1". Da dieser Blattname steht's anders lautet, benötige ich eine Möglichkeit, das die Formel unabhägig vom Blattnamen funzt.
Ich dachte mir, den Blattnamen von Tabelle1 auszulesen und diesen dann in die Formel zu integrieren.
Start=Tabelle1.Name
Aber wie passe ich nun Start in die Formel rein?
Viele Grüße
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in VBA
06.10.2008 11:53:00
Mac4
Hallo Steffen,
versuchs mal so:
"=INDIRECT('" & Start & "'!B" & x + 1 & ")"
Marc
noch nicht ganz...
06.10.2008 12:16:33
steffen
Hallo Marc,
so richtig funzt es noch nicht. Bekomme stehts #Bezug - Fehler angezeigt.
bei
Activesheet.Range("A4").Formula = "=INDIRECT(""Tabelle1!B"" &" & x + 1 & ")"
steht in A4 die Formel: =INDIREKT("Tabelle1!B" &309)
und der Text aus Tabelle1 B309 wird angezeigt
bei
Activesheet.Range("A4").Formula ="=INDIRECT('" & Start & "'!B" & x + 1 & ")"
steht in A4 die Formel: =INDIREKT(Startseite!B309)
es wird #Bezug - Fehler angezeigt
irgendwo hakt es noch.
Viele Grüße
Anzeige
AW: noch nicht ganz...
06.10.2008 12:27:00
Mac4
Hallo Steffen,
dann weise der Variabelen Start ihren Wert so zu:
Start=Sheets("Tabelle1").Name
Marc
AW: noch nicht ganz...
06.10.2008 12:32:27
Daniel
Hi
sorry, aber das ist Nonsense, Denk mal genauer drüber nach.
Gruß, Daniel
AW: Formel in VBA
06.10.2008 12:29:00
Daniel
Hi
so müsste es gehen:
"=INDIRECT(""" & Start & "!B"" &" & x + 1 & ")"
Gruß, Daniel
Anzeige
AW: Formel in VBA
06.10.2008 13:05:00
Tino
Hallo,
ohne jetzt den Grund für diesen Code zu hinterfragen, hier mal ein Beispiel.
Sub test()
Dim X As Long
Dim NameTabelle As String
  X = 1
NameTabelle = """" & Sheets(2).Name & "!B""&" & "" & X + 1
ActiveSheet.Range("A4").Formula = "=INDIRECT(" & NameTabelle & ")"
End Sub


Setze Deinen Wert für die Formel in eine Stringvariable, mit F8 gehst du den Code Zeilenweise durch. Beim überfahren der Variable mit der Maus, wird Dier der aktuelle Wert der Variable angezeigt, so kannst du besser erkennen wo noch Fehler enthalten sind.
Oder gibt dir den Wert mit Debug.Print NameTabelle im Direktfenster aus, da kannst du auch alles nachvollziehen.
Gruß Tino

Anzeige
Boah...
06.10.2008 13:35:57
steffen
bin mal wider schwer beeindruckt über die schnelle Hilfe und das geballte Wissen hier...
Konnte meine Formel nun so anpassen, dass es passt.
Dank an Euch.
Gruß Steffen
AW: Boah...
06.10.2008 14:22:11
Erich
Hallo Steffen,
da du die Formel mit VBA einträgst, brauchst du vielleicht gar kein "Indirect",
die viel einfachere Formel in Zeile 7 könnte schon ausreichen. Aber vielleicht ist auch die Formel in Zeile 5 geschickter.
Jedenfalls sollte der (ja variable) Blattname in einfache Hochkommata eingeschlossen werden,
damit Leerzeichen im Blattnamen keine Probleme machen.
 A
1xyz
2xyz
3xyz
4 
5xyz
6 
7xyz

Formeln der Tabelle
ZelleFormel
A1=INDIREKT("'Bla bla'!B"&2)
A2=INDIREKT("'Bla bla'!B"&2)
A3=INDIREKT("'Bla bla'!B"&2)
A5=INDIREKT("'Bla bla'!B2")
A7='Bla bla'!B2

Die Formeln wurden damit geschrieben:

Option Explicit
Sub tst2()
Dim x As Long
Dim NameTabelle As String
x = 1
With ActiveSheet.Columns(1)
.Cells(1).Formula = "=INDIRECT(""'Bla bla'!B""&" & x + 1 & ")"
.Cells(2).Formula = "=INDIRECT(""'" & Sheets(2).Name & "'!B""&" & x + 1 & ")"
NameTabelle = """'" & Sheets(2).Name & "'!B""&" & x + 1
.Cells(3).Formula = "=INDIRECT(" & NameTabelle & ")"
.Cells(5).Formula = "=INDIRECT(""'" & Sheets(2).Name & "'!B" & x + 1 & """)"
.Cells(7).Formula = "='" & Sheets(2).Name & "'!B" & x + 1
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige