VBA & InputBox

0

Witam,

moje pytanie dotyczy okna InputBox, mozna je wywolac poprzez wpisanie samego polecenia w kodzie, chcialem natomiast sie dowiedziec czy istanieje mozliwosc utworzenia IB na zasadzie przeciagnij i upusc a tym samym wprowadzic prompt, title, default w oknie gdzie musimy tylko uzupelnic puste pole.

Nastepnie moje pytanie to jak mozna w IB wykonac kilka wierszy np (a chce zrobic taki wybor konkretnie w IB):

"
Wybierz pozycje:

1 pozycja1
2 pozycja2
"

Dodatkowo jezeli wybiore pozycje np pozycja1 wtedy przycisk z korego uruchomilem IB zmienia kolor na innym i tutaj nie wiem jak na button1 ktory wywolal IB wymusic zmiane koloru przycisku na inna oraz zmiane kolory czcionki na inny.

Z gory dziekuje i pozdrawiam
pytajnik

0

W czym to piszesz, dla jakich aplikacji: ACcess, Excel, Word?

Z kodu VBa wywlojesz input boxa poprzez wpisanie inputbox(parametry)

0

Pisze to dla Excela.

0

Jezeli chcesz wpisać linie w IB to napisz przy łączeniu tekstu inputboxa znak końca lini
np.:

tekst = "wybierz: " & vbNewLine & "a - opcja 1" & vbNewLine & _
          "b - opcja 2"

Co do automatycznego wpisywania danych do IB to po prostu zczytaj je z pól w których są wypełnione np.:

Inputbox(tekst,zmienna1,zmienna2)

A jak zmienić kolor przycisku to nie wiem czy przycisk masz na formularzu czy arkuszu, ale ustaw programowo własciwość BackColor i po kłopocie

0

dziekuje za dotychczasowe odpowiedzi.

co do koloru przycisku,
przycisk utworzylem w arkuszu , w okienku wlasciwosci nadalem kolor ciemny szary,
teraz po jego naisnieciu pojawia sie IB, w polu wpisuje np 1 i akceptuje to, jako wynik ma mi to dac zmiane koloru szarego przycisku na czerwony.

0

witam,

zmiane koloru zrobilem na If`ie i commandbutton2.backcolor = color.

mam jednak pytanie jak moge wymusic aby w przypadku podania innej mozliwosci niz sugerowana pojawial sie komunikat "zle" - przycisk OK, a rezygnowal przy "Cancel"

ja zrobilem to tak:

If zmienna = 1 Then commandbutton2.backcolor = czerowny
ElseIf zmienna = 2 Then commandbutton2.backcolor = zieolony
Elseif zmienna <> 1 and amienna <> 2 MsgBox("zle")
End If

jezeli wpisze cos innego niz 1/2 to mam msgbox jednak jest problem -
ten msgbox pojawia sie takze przy nacisnieciu klawisza "cancel"

jak to mozge rozgraniczyc ??

Pozdrawiam

0
pytajnik napisał(a)

witam,
If zmienna = 1 Then commandbutton2.backcolor = czerowny
ElseIf zmienna = 2 Then commandbutton2.backcolor = zieolony
Elseif zmienna <> 1 and amienna <> 2 MsgBox("zle")
End If

Jeżeli użytkownik wcisnął Cancel to długość zwróconej zmiennej jest równa 0
Więc najprościej to chyba tak

IF LEN(zmienna) > 0 THEN
    Select Case zmienna
        Case "1":
            Commandbutton2.backcolor = czerowny
        Case "2":
            Commandbutton2.backcolor = zielony
        Case Else
            MsgBox("zle")
ELSE
    MsgBox "Wcisnieto cancel"
END IF
0

Dziekuje, faktycznie dziala, tylko znowu pojawia sie male ale,

jezeli uzytkownik pozostawi puste pole to wtedy Len(zmienna) = 0 i nacisniecie OK da taki sam wynik jak Cancel.

Pozdrawiam

0

To raczej nie problem, przecież nie musisz informować użytkownika o anulowaniu czynności skoro nacisnął cancel lub nie wpisał nic to nie powinien niczego oczekiwać...

0

faktycznie tak mozna do tego podejsc :), ale nie ma to jak sobie kompliowac zycie i np wymyslic ze jak bedzie puste pole i "ok" to pokrzyczymy osobe ze nawet nic nie wpisala :).

dlatego tez o taka mozliwosc sie zapytalem.

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1