Clever-Excel-Forum

Normale Version: Syntax einer Zellformel
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich versuche gerade eine Zellformel über eine Abfrage zusammen zu basteln.

Die Syntax der Formel die funktioniert sieht folgendermaßen aus:
ActiveCell.FormulaLocal = "=Personl.XLS!Farbwert(A1)"

Wenn ich jetzt über diverse Abfragen die Zeilen - und Spaltennummer erhalte, tage ich diese in meine Formel so ein:
ActiveCell.FormulaLocal = "=Personl.XLS!Farbwert(col & Nr)"    ......das funktioniert natürlich nicht!

Leider weiß ich nicht wie ich jetzt wieder auf die "A1"-Syntax usw. komme.

Kann mir dabei bitte jemand auf die Sprünge helfen?

Vielen Dank!
Hallo!
Wenn Du unbedingt bei Deiner .Formula-Schreibweise bleiben möchtest, musst Du den Integer der Spaltennummer wieder in einen String umwandeln.
Wenn es kleine Spaltennummern sind, kann man ja wie ein Grundschüler das ABC durchgehen und per Finger zählen ...  :05:
Aber wer weiß schon, welche Buchstaben die Spalte 11111 hat, nämlich PKI?
Dies macht meine kleine UDF:

Function ColumnAsLetter(Spalte As Integer) As String
ColumnAsLetter = Cells(1, Spalte).Address(0, 0)
ColumnAsLetter = Left(ColumnAsLetter, Len(ColumnAsLetter) - 1)
End Function

Heißt für Dein Beispiel:

Sub HauRein()
Dim col As Integer, Nr As Long
col = 11111
Nr = 9876
ActiveCell.FormulaLocal = "=Personl.XLS!Farbwert(" & ColumnAsLetter(col) & Nr & ")"
End Sub

Ergibt (bei mir natürlich mit Fehler #NAME?, weil ich die Funktion nicht habe):

Da momentan die nachträgliche Deaktivierung der Smilies nicht funktioniert, der letzte Code in Code-Tags:
Code:
Sub HauRein()
Dim col As Integer, Nr As Long
col = 11111
Nr = 9876
ActiveCell.FormulaLocal = "=Personl.XLS!Farbwert(" & ColumnAsLetter(col) & Nr & ")"
End Sub
Super,

vielen Dank...so funktioniert es.
Hallo Ralf,

und warum nicht gleich direkt so? Wink

Sub HauRein()
 Dim col As Integer, Nr As Long
 col = 11111
 Nr = 9876
 ActiveCell.FormulaLocal = "=Personl.XLS!Farbwert(" & Cells(Nr, col).Address(0, 0) & ")"
End Sub

Gruß Uwe
Ist ja viel zu einfach, Uwe!  :19:
Hast natürlich Recht! Blush

Gruß Ralf
Dann wäre.....

Code:
Sub HauRein()
ActiveCell = "=Personl.XLS!Farbwert(" & [address(11111,9876)] & ")"
End Sub
Danke Euch allen...hat mir sehr weiter geholfen.