Anzeige
Archiv - Navigation
952to956
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
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Inputboxabfrage für Dezimalstellen/ Abbrechen

Inputboxabfrage für Dezimalstellen/ Abbrechen
18.02.2008 18:20:00
Andreas
Hallo Herber Fans,
ich habe es geschafft, über die Inputbox den User zu fragen, wie viele Dezimalstellen er in seinen Pivot Datenfeldern haben möchte. Problem ist nun, daß die application.inputbox offensichtlich das „Abbrechen“ der Eingabe über den entsprechenden Button und die Eingabe einer „0“ gleichsetzt. Wenn „0“ eingegeben wird, soll es 0 Dezimalstellen geben. Wenn der User Abbricht, dann raus aus dem Makro und alle Dezimalstellen so lassen, wie sie sind. Der Errorhandler funktioniert nicht so wie er sollte. Was ist zu tun, damit 0 und abbrechen sauber auseinander gehalten werden. Das muß doch möglich sein. Eine „0“ ist schließlich auch eine Eingabe und nicht per se ein Fehlerwert a la „False“

Sub formatPivot(pvtable As PivotTable)
Dim pvField As PivotField, dezmal As Long, digits As String
On Error GoTo ERRORHANDLER
dezmal = Application.InputBox("Enter digits:" & vbLf & "Abort will leave Pivot Formatting.", " _
Digits", 2, Type:=1)        'Inputbox mit Type 1 laesst nur Zahlen als Eingabe zu.
'        If dezmal = False Then Exit 

Sub                                                     'Ich fange alles global über den  _
Errorhandler ab
If dezmal = 0 Then
digits = "#,##0"
Else: digits = "#,##0." & Application.WorksheetFunction.Rept(0, dezmal)
End If
For Each pvField In pvtable.DataFields
pvField.NumberFormat = digits
Next
ERRORHANDLER:
End Sub


Zweite Frage: Ist mein Konstrukt für die Dezimalstellenermittlung so OK? Ich habe es mir komplett selber ausgedacht und nicht so recht sicher, ob das das Optimum ist oder ob es eine passendere Funktion/ Weg gibt, auf den ich nicht gekommen bin.
Dank und Gruß, Andreas Hanisch

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inputboxabfrage für Dezimalstellen/ Abbrechen
18.02.2008 18:42:00
MichaV
Hallo,


Dim eingabe
Dim dezmal As Long
eingabe = Application.InputBox("Enter digits:" & vbLf & "Abort will leave Pivot Formatting.", " Digits ", 2, Type:=1)        'Inputbox mit Type 1 laesst nur Zahlen als Eingabe zu."
If TypeName(eingabe) = "Boolean" Then
    MsgBox "Abbrechen gedrückt"
Else
    dezmal = eingabe
End If


Gruß- Micha
PS: Rückmeldung wäre nett.

Anzeige
AW: Inputboxabfrage für Dezimalstellen/ Abbrechen
18.02.2008 18:43:00
Daniel
Hi
dazu gibt es die leider nicht dokumentierte Funktion StrPtr(a)
dh wenn in

a = inputbox("Eingabe")


abgebrochen wurde, dann ist


StrPtr(a) = 0


ansonsten ist


StrPtr(a) = 2208348 


(oder ein anderer Wert 0) , auch wenn nichts eingegeben wurde und trotzdem OK gedrückt wurde.
Gruß Daniel

AW: Inputboxabfrage für Dezimalstellen/ Abbrechen
18.02.2008 18:47:00
Erich
Hallo Andreas,
oder so:

Sub formatPivot(pvtable As PivotTable)
Dim pvField As PivotField, strFmt As String, varInp ' as Variant
varInp = Application.InputBox("Enter strFmt:" & vbLf _
& "Abort will leave Pivot Formatting.", "strFmt ", 2, Type:=1)
'Inputbox mit Type 1 laesst nur Zahlen als Eingabe zu."
If VarType(varInp) = vbBoolean Then Exit Sub
If varInp = 0 Then
strFmt = "#,##0"
Else
strFmt = "#,##0." & String(varInp, "0")
End If
For Each pvField In pvtable.DataFields
pvField.NumberFormat = strFmt
Next
End Sub

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

Anzeige
AW: Inputboxabfrage für Dezimalstellen/ Abbrechen
18.02.2008 19:14:00
Andreas
Hallo MichaV, Daniel und Erich G.,
wow, Danke! Das habe ich auch selten erlebt... daß in so kurzer Zeit gleich drei sehr gute und kompetente Antworten gegeben wurden...
Eure Vorschläge funktionieren allesamt - habe sie gerade getestet. Ich werde mich heute wohl noch etwas mehr mit den Möglichkeiten von "Boolean" in einem solchen Fall befassen. Auch Daniels Hinweis zur Funktion "StrPtr" werde ich vertiefen.
Vielen Dank Euch Dreien und noch einen schönen Abend.
Viele Grüße,
Andreas aus Berlin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige