Microsoft Excel

Herbers Excel/VBA-Archiv

Variable übergeben

Betrifft: Variable übergeben von: Udo Kowalleck
Geschrieben am: 08.08.2014 12:47:18

Hallo Leute,
hab mal wieder eine Anfängerfrage:
Kann ich den Wert von einem Integrierten Dialogfeld in einer Variablen festhalten und wenn ja, wie muss ich die Variable deklarieren?
Beispiel: c= Application.Dialogs(xlDialogPatterns).Show
If spalte = 20 Then Cells(zeile, spalte).Interior.Color = c
(das funkt nicht)
Bin gespannt ob es geht.
Udo

  

Betrifft: AW: Variable übergeben von: Daniel
Geschrieben am: 08.08.2014 13:31:45

Hi
nö, geht so nicht.
in c steht so nur WAHR, wenn der Anwender die Aktion ausgeführt hat und FALSCH, wenn er abgebrochen hat.

wenn du den Farbwert brauchst, kannst du ihn aus der aktiven Zelle auslesen, den wenn der Anwender diesen Dialog mit OK bestätigt, dann wird der selektierte Zellbereich so gefärbt.

oder du selektierst den Zellbereich, der gefärbt werden soll bevor du den Dialog startest

If Spalte = 20 then
Cells(zeile, spalte).Select
Application.Dialogs(xlDialogPatterns).Show
End If
Gruß Daniel


  

Betrifft: AW: Variable übergeben von: Udo Kowalleck
Geschrieben am: 08.08.2014 13:38:09

Danke für Deine Antwort. Habe ich mir fast gedacht.


  

Betrifft: Dein Kommando ist ungeeignet, ... von: Luc:-?
Geschrieben am: 08.08.2014 13:45:36

…Udo,
denn idR geben solche .Show-Methoden zwar einen Wert zurück, der ist aber ein Wahrheitswert und sagt nur aus, ob etwas ausgewählt (True) oder der Vorgang abgebrochen wurde (False). Was ausgewählt wurde, bekommst du so nicht.
Mit dem folgd BspPgm erhältst du die ZellFarbe:

Sub TestDial()
    Dim c As Long
    With Application.Dialogs(xlDialogPatterns)
        If .Show Then c = ActiveWindow.RangeSelection.Interior.Color
    End With
    Debug.Print c
End Sub
Allerdings wird dadurch die ausgewählte Zelle auch schon gefärbt. Willst du die MusterFarbe habe, heißt es .PatternColor statt nur .Color!
Gruß, Luc :-?


 

Beiträge aus den Excel-Beispielen zum Thema "Variable übergeben"