Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1020to1024
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funktionen verbinden

Funktionen verbinden
09.11.2008 10:03:00
Alois
Hallo,
ich habe mit meinen geringen VBA-Kenntnissen folgende Funktionen gebastelt:
Sub formatieren()
If (Range("A1").Value Range("A2").NumberFormat = "\*0########\*"
Else
Range("A2").NumberFormat = "\*########\*"
End If
End Sub



Public Function THISFORMAT(Zahl As Variant) As Variant
THISFORMAT = Zahl - 100000000
'formatieren()
End Function


Ich denke man kann ungefähr erkennen, was ich vorhabe:
ich habe in Zelle A1 eine neunstellige Zahl, die in Zelle A2 um 100000000 (und somit achtstellig wird, da keine Werte über 199999999 zu erwarten sind), deshalb habe ich in A2 die Funktion THISFORMAT eingefügt. Jetzt soll die Zeile halt nur noch die Zeile so wie in der Funktion formatieren gescriptet formatiert werden, wie muss ich das in THISFORMAT einfügen.
Wenn es einfachere Wege ohne VBA gibt wäre ich auch für diesen Hinweis dankbar, trotzdem würde mich auch die VBA-Lösung interessieren, da ich über sowas jetzt schon häufiger gestolpert bin.
Gruß
Alois

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktionen verbinden
09.11.2008 11:10:21
Alois
OK
so weit bin ich schon mal:

Public Function THISFORMAT(Zahl As Variant) As Variant
THISFORMAT = Zahl - 100000000
Call formatieren
End Function


Sub formatieren()
If (Range("A1").Value MsgBox "True"
Range("A2").NumberFormat = "\*0########\*"
Else
MsgBox "False"
Range("A2").NumberFormat = "\*########\*"
End If
End Sub


-die Funktion wird korrekt aufgerufen
-die If.Abfrage funktioniert korrekt
- nur formatiert wird nicht...
..was iss nu noch falsch?

AW: Funktionen verbinden
09.11.2008 11:15:09
Horst
Hi,
UDF in Zellen eingesetzt, können nichts formatieren, nur einen Wert liefern.
mfg Horst
Anzeige
AW: Funktionen verbinden
09.11.2008 11:44:00
Alois
ah ja,
UDF was issn das ? (nur um mal meinen Kenntnisstand zu dokumentieren)
....und soll das jetzt heissen, daß das gar nicht geht, das kann ich jetzt erst einmal nicht glauben.
Offensichtlich scheint es sich ja um eine bewusste Beschränkung zu handeln, gibt es dafür einen Grund?
AW: Funktionen verbinden
09.11.2008 12:01:00
Daniel
Hi
naja, normale Formeln können das ja auch nicht, deswegen hat man das für die UDFs, die wie normale Formeln verwendet werden, so übernommen.
ne möglichkeit wäre allerdings, schon innerhalb deiner THISFORMAT-Funktion das Ergebnis in das richtige Format zu bringen. Allerdings ist der Rückgabewert dann keine Zahl mehr, sondern ein TExt, mit dem du nicht mehr weiterrechnen kannst, so etwa in dem Schema:

Public Function THISFORMAT(Zahl As Variant) As Variant
if Zahl > 10000000 then
THISFORMAT = Format(Zahl - 10000000; "00000")
else
THISFORMAT = Format(Zahl - 10000000; "##.###")
end if
End Function


(Zahlenwerte und Formatangaben bitte noch an deine Wünsche anpassen)
Gruß, Daniel

Anzeige
AW: Funktionen verbinden
09.11.2008 12:56:00
Alois
Ja so gehts,
ich benötige die Daten so formatiert für den Druck von scanbaren Etiketten, dazu habe ich einen die zweite Zeile mit einer Barcode-Schriftart formatiert. Um die Daten aber für 'unsere' Scanner lesbar zu machen muss die Zahlenlänge zwingend achtstellig und jeweils ein Sternchen voran und dahintergestellt werden.
Rechnen brauch isch also nicht mehr...
Also ein grosses Danke und einen schönen Sonntag noch
Alois

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige