Kezdőlap › Fórumok › Excel programozás › Application.Inputbox – beolvasás másik munkafüzetről › Hozzászólás: Application.Inputbox – beolvasás másik munkafüzetről
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