Telefonszámunk: 1-472-0679

Application.Inputbox – beolvasás másik munkafüzetről

Kezdőlap Fórumok Excel programozás Application.Inputbox – beolvasás másik munkafüzetről

2 bejegyzés megtekintése - 1-2 / 2
  • Szerző
    Bejegyzés
  • #1660
    ferenczycs
    Felhasználó

      Szia Imi,

      a segítséged szeretném kérni:
      Hogy lehet az Application.Inputbox esetén másik munkafüzetből beolvasni a Range típusú változót?

      Amit szeretnék: makróban egy képletet használok, és nem szeretném abbahagyni a makrófutást, hanem a függvény argumentumait Inputboxszal adatnám meg.

      Itt tartok:

      Dim ertek_d As Range
      Set ertek_d = Application.InputBox(prompt:=”Honnan írjam be az értéket?”, Type:=8)

      De az érték egy másik munkafüzetben van, és nem hagy átlépni. Kivéve, ha „bedrótozom” a nevét, és .Active-val előtte átlépek bele. De nem mindig ugyanúgy hívják a munkafüzetet, ezért nem drótoznám be.

      Köszönöm a segítséget!
      Csilla

      #1661
      horvimi
      Adminisztrátor

        Szia Csilla!

        Még nem csináltam ilyet, de utánanéztem.
        Csak arra találtam megoldást, hogy másik munkalapról hogy lehet választani, illetve kijelölni. Úgy tűnik, hogy másik munkafüzetből nem enged választani, állandóan visszadob az aktuális munkafüzetbe.

        Egy kicsit módosítottam, hogy ne legyen benne goto, és ha semmit nem választunk, akkorne történjen semmi.

        Sub proba()
        Dim ThisArea As Range
        
        On Error Resume Next
        Set ThisArea = Application.InputBox(prompt:="Select a range...", _
        Title:="Select a range in a different worksheet", Type:=8)
        If Not ThisArea Is Nothing Then
            'ide jon, amit akkor kell csinalni, ha valasztott valamit
            ThisArea.Parent.Parent.Activate
            ThisArea.Parent.Activate
            ThisArea.Select
        End If
        On Error GoTo 0
        End Sub

        Ahol találtam:
        http://www.vbaexpress.com/forum/showthread.php?21137-Solved-Inputbox-method-to-pick-a-range-in-another-workbook

        Mit csinál:
        – A ThisArea az Inputbox-al kijelölt terület
        ThisArea.parent a kijelölt terület munkalapjának (szülője) neve
        ThisArea.Parent.Parent A munkafüzet, ahonnan választottad.

        Tehát belép a kijelölt tartomány munkafüzetébe és munkalapjába, és kijelöli a kiválasztott tartományt.

        Másik munkafüzet
        Ehhez egy speciális UserForm-ot kell készíteni, ahol először munkafüzetet választasz, és utána külön tartományt a refEdit vezérlővel. A megoldást itt találod:
        http://stackoverflow.com/questions/18125650/vba-dialog-box-to-select-range-in-different-workbook

        Figyelem!
        A párbeszéd kirakása előtt meg kell jegyezni, hogy melyik munkafüzet az aktív, mert ez azzal trükközik, hogy aktívvá teszi a megadott munkafüzetet, majd ott enged választani. A választás után, a Form bezárását kövbetően vissza kell menni az eredetileg aktív munkafüzetbe.

        Sok sikert,

        Imre

        • A hozzászólás módosításra került: 9 years, 4 months telt el-horvimi.
        • A hozzászólás módosításra került: 9 years, 3 months telt el-horvimi.
        • A hozzászólás módosításra került: 9 years, 3 months telt el-horvimi.
        • A hozzászólás módosításra került: 9 years, 3 months telt el-horvimi.
      2 bejegyzés megtekintése - 1-2 / 2
      • Be kell jelentkezni a hozzászóláshoz.