Zavrieť

Porady

VBA excel - Colordialog

Dobrý deň.

Poradí mi niketo ako získam nejakú informásiu o farbe (napr vo formate long) z vyvolaného Colordialogu?

Myslim takymto posobom : " Application.Dialogs(xlDialogColorPalette).Show "

Ked to dam len samotné hlási chybu a neviem to priradit do nejakej premennej...

V podstate mi principialne ide o to že chcem v určitom momente v kode vyvolat tento dialog zvolit farbu a priradit ju napr. fontu alebo pozadiu bunky ... a nemožem sa dostat ku kriteriam farby.

...ďakujem...
Pravidlá a tipy
  • Každý móže napísať len 1 odpoveď. Neskor mozete svoju odpoveď vylepšiť.
  • Odpoveď má priniesť riešenie na otázku, vyvarujte sa hodnotenia otázky.
  • Odpoveď má byť viac o faktoch ako o názoroch.
Dalšie pravidla a tipy
    Ak potrebujete v otázke niečo upresniť, najskôr sa spýtajte na podrobnosti.
    Koncept slúži na uloženie rozpracovanej odpovede, koncept sa zobrazuje len Vám, až kým ho nezverejníte.
    Ak máte podobnú otázku, založte Novú otázku alebo Súvisiacu otázku.
    ❤ Buďte priateľskí ❤
    Sme súčasťou jednej komunity, ktorá si chce vzájomne pomáhať, rozdieľnosť je vítaná ak neubližuje!
    Usporiadať podľa času

    PaloPa je offline (nepripojený) PaloPa

    PaloPa
    Idem od konca.

    1) Ad RGB.
    Ak si vo VBA oselektuješ názov fn RGB a potom stlačíš F1, zobrazí sa ti ako sa fn používa. Farebná škála sa zadáva priamo ako čísla:
    Code:
    Me.Controls("TextBox" & i).BackColor = RGB(255, i * 50, i * 10) 
    '(RED, GREEN, BLUE)
    resp. spôsobom pomenovaných argumentov:
    Code:
    Me.Controls("TextBox" & 6 - i).BackColor = _ 
    RGB(red:=255, green:=i * 50, blue:=i * 10)
    Odkazovanie na jednotlivé objekty UserFormu možno cez ich názvy cez Controls.

    2) ad xlDialogColorPalette
    Tento dialóg slúži na zmenu celej farebnej palety aktuálneho zošita (mrkni si pripojený príklad)

    3) Ofarbenie bunky

    Jednoduchá zmena pozadia cez VBA sa dá cez Interior a ColorIndex.
    Stačí keď si dáš odchytenie makra, veľa ti napovie Excel sám (potom stačí F1)

    Code:
    With Selection.Interior
            .ColorIndex = 8
     End With
    Ak však chceš volať formátovací dialóg, tak treba volať iný, pre pozadie je to konkrétne: xlDialogPatterns

    Ostatné sú tieto:
    Code:
    ''xlDialogFormatNumber
    ''xlDialogAlignment
    ''xlDialogFormatFont
    ''xlDialogBorder
    ''xlDialogPatterns
    ''xlDialogCellProtection
    Celý zoznam zabudovaných dialógov, ako ich volať s parametrom .. si môžeš pozrieť aj tu:
    Excel - volanie zabudovaných dialógov

    Palo
    Naposledy upravil PaloPa : 29.10.10 at 14:32

    DVX je offline (nepripojený) DVX

    DVX
    No kedže som stravil cely den prehladavanim webu a nič ... tak som sa pustil do vytvorenia sukromnej palety vo forme "userform" ...

    ... teraz potrebujem poradit ako sa da sfunkčnit takyto princip :

    For I = 1 To 5
    UserForm1.Image(I).BackColor = RGB(RED, GREEN, BLUE)
    Next I
    nechce mi to zobrat to " Image(I) " ako sa to robí vo vba? (takto to šlo v c++)

    DVX je offline (nepripojený) DVX

    DVX
    Tak tomu vravím komplexná odpoved...

    Velká vďaka PaloPa ... s týmto už dokážem tvorit dalej...

    ... pochopil som všetko len drobnosť, ako je to myslene "počet kopii" ?

    With dlg
    .Show ' , , , 1 'pocet kopii
    End With
    ===============================

    Jáj to patrí k tomu "print dialogu" ...

    Super velmi pekne dakujem..!
    Naposledy upravil DVX : 31.10.10 at 19:20

    VBA excel - Colordialog

    Porady, ktoré by vás mohli zaujímať

    Prihláste sa a sledujte len tie Porady, ktoré Vás zaujímajú.