Syntax einer Zellformel
#1
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!
Top
#2
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):

Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#3
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • sharky51
Top
#4
Super,

vielen Dank...so funktioniert es.
Top
#5
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • sharky51
Top
#6
Ist ja viel zu einfach, Uwe!  :19:
Hast natürlich Recht! Blush

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#7
Dann wäre.....

Code:
Sub HauRein()
ActiveCell = "=Personl.XLS!Farbwert(" & [address(11111,9876)] & ")"
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • sharky51
Top
#8
Danke Euch allen...hat mir sehr weiter geholfen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste