Страницы: 1
RSS
Макрос курса валют, вместо ячейки выдает данные в всплывающем окне
 
доброго времени.
У меня есть макрос курса валют. Он работает и все хорошо. Но! Он работает от кнопки и курс выдает в мsgвoxе. А мне необходимо, чтобы курс валюты и дата выводились в ячейках. Знаний не хватает, чтоб это прописать, отчего и прошу помощи уважаемых форумчан.
 
Посмотрите здесь: http://excelvba.ru/code/CurrencyRate
С уважением,
Федор/Все_просто
 
так это он и есть. Вторая часть макроса, который выводит курсы у меня решительно не работает. И так и сяк ковырялся, ни хрена. От кнопки тоже не фурычит. Возможно руки у меня кривые
 
могу предложить такое решение  
 
Класс!!
А можно без кнопки? На открытие книги? Или это в принципе невозможно? Дело в том, что к курсу привязаны прайсы, и я не уверен, что двоечник-манагер постоянно будет жмакать кнопку.

Через это "Private Sub Worksheet_Activate" можно?
Изменено: Иван Амелин - 28.04.2015 12:38:02
 
макрос вставил в модуль на открытие книги
 
Огромное человеческое спасибо!
(шепотом) ...а где здесь нужно указать в какой лист вставлен макрос? У меня несколько листов в прайсе...
Изменено: Иван Амелин - 05.05.2015 14:33:24
 
Названия листов я не прописывал. макрос активируется на активный лист при открытии книги. Если нужно по каким то конкретным листам. То в модуле ЭТА КНИГА лежит макрос, там пропишите названия нужных Вам листов.  
 
Спс.
Я чего спрашивал, я просто не знаю, как правильно это сделать ))) Если, есть возможность, подскажите, плз
 
Ну, никак не получается у меня! Помогите пожалуйста при открытии книги в конкретный лист курсы валют запихнуть.
Сделал так, выдается ошибка:
Код
Private Sub Workbook_Open()

Application.ScreenUpdating = False

    Sheets("Курс валют").Range("B4").Value = "нет"
    Sheets("Курс валют").Range("B5").Value = "нет"
    Sheets("Курс валют").Range("A6", "D50").Select
'    Rows("10:50").Select
    Selection.Delete Shift:=xlUp
    
    Application.Cursor = xlWait
    Set xmldoc = CreateObject("msxml2.DOMDocument.6.0")
    xmldoc.async = False
    url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" & ActiveSheet.Range("A1")
  
'       загружаем документ по url
        If Not xmldoc.Load(url_request) = True Then
        MsgBox ("Документ не загружен")
        Application.Cursor = xlDefault
        Exit Sub
        End If
        Set NodeList = xmldoc.SelectNodes("ValCurs")
        Set xmlNode = NodeList.Item(0).CloneNode(True)
        
'           ищем атрибут с датой документа (будет найден последний документ от заданной даты)
            Set node_attr = xmlNode.Attributes(0)
            XDate = node_attr.Value
            Set NodeList = xmldoc.SelectNodes("*/Valute")
    
'               осуществляем цикл по валютам и ищем нужную валюту
                For iIndex = 0 To NodeList.Length - 1
                Set xmlNode = NodeList.Item(iIndex).CloneNode(True)
                Set node_attr = xmlNode.Attributes(0)
                Sheets("Курс валют").Cells(iIndex + 6, "A") = iIndex + 1
                Sheets("Курс валют").Cells(iIndex + 6, "B") = xmlNode.ChildNodes(3).Text
                Sheets("Курс валют").Cells(iIndex + 6, "C") = node_attr.Value
                Sheets("Курс валют").Cells(iIndex + 6, "D") = CDbl(xmlNode.ChildNodes(4).Text)
    
            Next
            Set xmldoc = Nothing
            Application.Cursor = xlDefault

    Range("B4").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],R6C2:R90C6,3,0)"
    Range("B5").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],R6C2:R90C6,3,0)"
    Application.ScreenUpdating = True
End Sub

Страницы: 1
Наверх