Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA

Модерирует : ShIvADeSt

ShIvADeSt (23-04-2007 01:59): http://forum.ru-board.com/topic.cgi?forum=33&topic=8273  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

RUSmafia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
 
Обсуждаем вопросы только по Excel VBA
(программирование макросов, скриптов, пользовательских функций и т.п.).
Приветствуются ссылки на ресурсы и справочную литературу по теме.
 
Вопросы по работе с MS Excel, не относящиеся к программированию, задаем в теме Excel FAQ

 
Обратите внимание, этот топик для помощи в изучении и использовании VBA. Посему запросы типа "Напишите мне такой-то макрос, я VBA не знаю и знать не хочу" не приветствуются.
Древняя мудрость: "Накорми голодного рыбой и он погибнет, научи его ловить рыбу и ты спасешь его."(R)
 
Информация общего характера:
  • Список соответствия имен функций в английской и русской версиях Excel
  • Описание Microsoft Excel File Format
     
    Рекомендации:
    Если у Вас есть проблема, не решаемая стандартными средствами Excel (об этом можно уточнить здесь) или требующая автоматизации, попробуйте для начала записать макрос самим Excel через меню Сервис (Tools) - Макрос (Macro) - Начать запись (Record New Macro). Подробнее здесь. В большинстве случаев получившийся код (Сервис-Макрос-Макросы-Изменить) Вас не удовлетворит, но подскажет, какие объекты-методы-свойства использовать.  
    Другой Ваш помощник - Просмотр объектов (Object Browser). Ну и встроення помощь (F1), естественно.
     
    Если Вы в тупике, покажите Ваш код (или часть кода) здесь.  Если вылазит ошибка, цитируйте ее полностью. Если код слишком большой, используйте тeг [more].
    Используйте отладчик - Breakpoints (F9), Watches (Shift-F9), Steps (F8 и др.) Сильно облегчает поиск ошибок.

     
    Рекомендуется к прочтению:
  • Первые шаги с Excel VBA
  • Excel VBA: Приёмы программирования
  • WinApi. Лекция из курса "Основы офисного программирования и язык VBA" (для продвинутых)
  • Daily Dose of Excel (eng.) - тематический блог: советы по работе с Excel и прочие материалы
  • Excel Macros & Excel VBA Code Tips, Tricks (eng.) - советы, трюки и уловки
  • Mr. Excel (forum) (eng.) - весьма оживленный форум по Excel&VBA.
     
    Родственные топики:
  • Вопросы по работе с MS Excel - Excel FAQ - часть 1, часть 2
  • Технические проблемы с MS Office 2003 или Office XP.
  • Word VBA все вопросы по Word VBA туда
  • Access все вопросы по программированию в Access туда
  • Книжульки по VBA - книги по программированию с использованием VBA
     
    Конкретные вопросы:
    Форма-заставка
    Как запустить макрос при изменении положения курсора или значения ячейки
  • Пример 1
  • Пример 2
  • Пример 3 (проверка области)
  • Пример 4
  • Пример 5
    Зацикливание в функции Change или SelectionChange
     
    Ранжирование без пробелов (макрос включает функции сортировки массива и удаления дубликатов, работает и в Excel 2007)
  • под Office 97
     
    Добавление в главное меню своего пункта, ассоциированного с макросом
    Создание ярлыка на рабочем столе
    Снятие защиты листа при забытом пароле
    Смена раскладки клавиатуры
    Скролл формы колесом прокрутки мыши
    Оптимизация кода по быстродействию использованием массивов

  • Всего записей: 556 | Зарегистр. 31-07-2002 | Отправлено: 21:40 14-10-2004 | Исправлено: lucky_Luk, 20:44 13-04-2007
    AndreyIVN



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не подскажете, как сделать так, чтобы для аргументов пользовательских функций отображалось описание, как это сделано для встроенных функций?
     
    Единственное что я нашел, как отображать описание всей функции в целом - в обозревателе объектов - свойства функции - description, и то, почему-то это описание появляется только после экспортирования модуля в файл .bas и последующем его импорте обратно в проект (в файле .bas появляется строка типа - Attribute Имя_функции.VB_Description = "Описание функции")
    Все эксперименты с этой строкой (попытки подставлять имена аргументов вместо имени функции и т.п.) успехом не увенчались.
     
    .

    Всего записей: 25 | Зарегистр. 28-09-2005 | Отправлено: 03:24 31-12-2006
    vzbzdnov



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    С Новым Годом! С Новым Багом!
    Ну не может Билли нормальный софт выпускать! Наверное, с генами что-то не то.
    Имел нормальный работающий динамический 3D Pie chart, строящийся в VB macro. Всего 7 секторов, показывающих только проценты (в сумме 100%) и скрывающих сами суммы.
    После апгрейта на 2007 - оппа! Новогодний подарок! Чарт стал показывать и суммы и проценты! Мало того - все проценты вдруг стали либо 0, либо 1, либо 2! Так, что о суммарных 100% и речи нет.  
    Код SeriesCollection(1).ApplyDataLabels ShowPercentage := True почему-то уже не работает, хотя Help говорит, что должен.
    В новой версии, чтобы заработало, пришлось сделать так SeriesCollection(1).ApplyDataLabels Type := xlDataLabelsShowPercent. Тогда всё верно.
    Клёво, а? Пожизненная работа обеспечена. Каждый раз редактировать макро. Спасибо Билли за совместимость!
     
    Для желающих поэксперементировать. Проверьте сей код в разных версиях EXCEL. Может, я чё-то недопонимаю??  
    Sub AddPieChart()
    Dim ch As ChartObject
    Set ch = Worksheets("Sheet2").ChartObjects.Add(10, 10, 210,210)
    With ch.Chart
    .SetSourceData Source:=Sheets("Sheet1").Range("A1:C7"), PlotBy:=xlColumns
    .ChartType = xl3DPie
      With .SeriesCollection(1)
        .XValues = Sheets("Sheet1").Range("A1:A7")
        .ApplyDataLabels ShowPercentage:=True
      End With
    End With
    End Sub
     
    "Sheet1":
    1101    Product1    $2,197.99
    1102    Product2    $5,731.24
    1103    Product3    $9,613.70
    1104    Product4    $6,053.07
    1105    Product5    $6,177.96
    1106    Product6    $3,700.14
    1107    Product7    $3,765.61
     
     
     
    Добавлено:
    Захотелось мне чегой-то высказать Microsoft-у своё фэ по поводу обнаруженного бага. Провёл быстрый поиск и выяснил офигенную вещь - оказывается, Microsoft не принимает bug reports!!
    Вот здесь можно прочитать, как мелкософт содрал с чела $35 за то, чтобы принять от него bug report!!
     
     
    Добавлено:
    Требуется в английском EXCELe сохранить worksheet с русским текстом в файл, чтобы в файле получился оттабулированный текст, т.е. чтоб все строчки в колонках чётко начинались в одних и тех же позициях.
     Не нашёл, как такое сделать, поэтому сначала сцепил все колонки построчно в одну выравнивая текст дополнительными пробелами и эту одну широченную колонку пытаюсь сохранить в файл. Делаю следующие манипуляции
    ActiveWorkbook.SaveAs FileName:="MyFile.txt",  FileFormat:=xlUnicodeText, CreateBackup:=False
    В результате в файле имеем красиво оттабулированный текст, только .... он в двойных кавычках... Такое вот безобразие.. Приходится потом файл вручную редактировать и удалять кавычки.
    Как упростить процедуру, или, если такое низзя, то как сохранить в файл, чтоб было без кавычек?


    ----------
    |^^^пиво^^\\|""\\_,_
    |___________||___|__|)
    (@)(@)""*|(@)(@)**(@)

    Всего записей: 3970 | Зарегистр. 27-03-2002 | Отправлено: 06:37 03-01-2007 | Исправлено: vzbzdnov, 21:30 07-01-2007
    giash



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    to The okk
    Приветствую! C новым!
     
    "Почему бы и нет. Пиши название файла в отдельной ячейке, а на листе все формулы, ссылающиеся на лист, пиши в виде: =ДВССЫЛ(ячейка с названием) & нужная ячейка этого листа.  
    Например:  
    У нас есть файлы 1.xls, 2.xls и 3.xls. Нам нужно в файле 1.xls сделать ссылки на третий лист второй книги, потом заменить в ссылках вторую книгу на третью.  
    В отдельной ячейке (например, A1) любого (например, третьего) листа первой книги создаем ссылку на третий лист второй книги: [2.xls]Лист3! (БЕЗ знака "=")  
    А формулы в первой книге пишем в виде: =ДВССЫЛ(A1 & "ячейка_листа"), где A1 - ячейка со ссылкой на книгу, ячейка_листа - адрес ячейкй в указанной книге.  
    Вот, собственно, и все. Теперь достаточно изменить адрес в ячейке A1 на [3.xls]Лист3!, чтобы адреса во всех ссылках поменялись."
     
    Еще раз спасибо за подсказку, проверил все работает. Однако, слишком много неудобств при работе с этой функцией, напр., файл на который мы ссылаемся должен быть обязательно отркрыт, да и запись с названием книги - первой части ссылки, требует дополнительного редактирования. Мне то ничего, но вот моим сотрудницам, которым уже за 50-т разобраться во всем этом будет не легко. Исходя из этого нет ли иного решения данной проблемы?
    Заранее благодарен за помощь
    С уважением

    Всего записей: 10 | Зарегистр. 18-12-2006 | Отправлено: 13:14 03-01-2007 | Исправлено: giash, 13:34 03-01-2007
    Anton T

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    The okk

    Цитата:

    Код:
     
    Sub Calling()
    Call SplitNum(Cells(1, 1))
    End Sub
     

    Я знаю, это А1.  
    По одному выборку: Call SplitNum(ActiveWindow.RangeSelection) , а все выделение:

    Код:
     
    Sub UF()
    Dim aa As Range
    For Each aa In ActiveWindow.RangeSelection
        If Application.CountA(aa) = 0 Then
            MsgBox "Выделение пустое."
            Exit Sub
        End If
        Call SplitNum(aa)
    Next
    End Sub
     

    В строке пустой текст, то выдает Выделение пустое, то выделить все число разделяют все. А если текстовой(не числовой) выдает ошибку: Invalid procedure call or argument. Желтые строки:     FirstNum = CInt(Left(BaseNum, InStr(1, BaseNum, "/") - 1))

    Всего записей: 325 | Зарегистр. 12-04-2006 | Отправлено: 13:30 03-01-2007
    crewgehr

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    to SERGE_BLIZNUK
    Спасибо!
    Прекрасный макрос. Я почему-то уперся именно в ячейки и совсем не подумал, что удобнее реализовать данный код с помощью столбцов )))
     
    По поводу foolproof. Я думаю можно вписать строку типа selection и потом всю селекцию в резервный файлик )) А лучше вообще без foolproof ))

    Всего записей: 6 | Зарегистр. 19-12-2006 | Отправлено: 16:38 03-01-2007
    Anton T

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    The okk
    Уже все, добавил On error goto eee:
    Все ок.

    Всего записей: 325 | Зарегистр. 12-04-2006 | Отправлено: 20:45 03-01-2007
    razhev



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите плиз, а то ни как не выходит.
    Сижу я в общем в Экселе и экспортирую таблицы в Ворд.
    после экспорта хочу пробежаться по всем таблицам и сделать им  
    авторазмер по ширине. вот делаю так.
    Все классно только авторазмер не пашет
    таблицу выдиляет по таблицам бежит а по ширине ровнять не ровняет
    Где грабли ?
     
     
    For Each aTable In DocWord.Tables
        aTable.Select
        aTable.AutoFitBehavior (wdAutoFitWindow)
    Next aTable
     
    Добавлено:
    Спасибки всем уже разобрался из Excel надо делать так
     
     
    For Each aTable In DocWord.Tables  
        aTable.Select  
        aTable.AutoFitBehavior (1)  
    Next aTable
     
    вместо wdAutoFitWindow ставим 1

    Всего записей: 13 | Зарегистр. 11-01-2003 | Отправлено: 15:16 04-01-2007
    AleLuk



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Использую в ячейке формулу для получения данных через DDE.
    В этой ячейке данные авоматически меняются - тут все нормально.
    Но как мне выполнить автоматически код при изменении данной ячейки?
     
    Worksheet_Change пробовал - не пашет. Здесь код выполняется токо когда ячейки изменяешь вручную.
     
    Помогите плиз.

    Всего записей: 12 | Зарегистр. 14-03-2005 | Отправлено: 11:58 05-01-2007
    giash



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите, пожалуйста!
    В Excel-файле смежные ячейки связаны следующим образом когда в ячейке А1 записывается сумма (А1<>0), тогда в ячейке B1 проставляется дата (TODAY), т.е. я это сделал применив ЕСЛИ(A1<>0;TODAY();"") для того, чтобы мои сотрудницы не отвлекались на проставление дат, т.к. когда они это делали самостоятельно в графе дата записывалось все что угодно кроме числа. Проблема же заключается в следующем при новом открытии файл обновляется и в ячейках дат появляется текущая дата. Нельзя ли сделать так, чтобы при закрытии файла те ячейки в которых дата проставлена запоминались как значения, а те которые пока еще пусты оставались бы как есть.
    Очень надеюсь на вашу помощь
    Спасибо

    Всего записей: 10 | Зарегистр. 18-12-2006 | Отправлено: 12:22 05-01-2007
    Anton T

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Мне нужен сделать правильные сортировки по числовому с конца до начальную.
    Смотри рисунки, сейчас не порядок, как обычный:
       
    сортировал по числовому, но не порядок до конца номеры:
       
    а вот должна выглядить правильная сортировка:
       

    Всего записей: 325 | Зарегистр. 12-04-2006 | Отправлено: 13:23 05-01-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    giash
    Цитата:
    А1<>0), тогда в ячейке B1 проставляется дата (TODAY), т.е. я это сделал применив ЕСЛИ(A1<>0;TODAY();"") для того, чтобы мои сотрудницы не отвлекались на проставление дат

    ну, раз вы написали в теме VBA - значит получите программку:
    Код:
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    For Each r In Target.Rows
      MyRow = r.Row
      If (r.Column = 1) And (MyRow > 0) _
                And (Not IsEmpty(Cells(MyRow, 1))) Then
        If IsEmpty(Cells(MyRow, 2)) Then
          Cells(MyRow, 2).Value = Date$
        End If
      End If
    Next
    Application.EnableEvents = True
    End Sub
     

     
    Anton T
    Цитата:
    правильные сортировки по числовому с конца до начальную
    вы ошибаетесь - этот стобец у вас НЕ числовой (для доказательства попробуйте значение использовать в формуле и умножить на что-нибудь...) Это строка. И сортируется по правилам работы со строками. Решение, например такое - можно так - с помощью формулы разложить этот столбец на два числовых - до знака / и после знака и сортировать уже по ним...
     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 13:54 05-01-2007
    giash



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ну, раз вы написали в теме VBA - значит получите программку - огромное спасибо
    ну, раз вы творите добрые дела, то объясните, мне дураку, как ее запустить и я от вас отстану
    С Уважением

    Всего записей: 10 | Зарегистр. 18-12-2006 | Отправлено: 15:47 05-01-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    giash
    Цитата:
    раз вы написали в теме VBA - значит получите программку
    правильно понимаете ;-))
    Запускаете Excel, открываете вашу таблицу,  
    нажимаете Alt-F11 (тоже самое "Сервис" / "Макросы" / "Редактор Visual Basic")
    Слева будет Project - двойной щелчок на "Лист1" - справа откроется окно скриптов (модулей) для этого листа. Туда вставляете код. всё - можно закрывать окно visual Basic'а и сохранять ваш Excel файл.  
    Если по коду нужны комментарии - спрашивайте - поясню.

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 21:26 05-01-2007
    alin



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всех с Рождеством!
    Помогите, пожалуйста, советом.
    Имеется рабочий лист, который формируется на каждый день путем копирования старого листа и удаления из таблиц данных (кроме формул). На листе имеются ToggleButton*, которые вставляют формулы в ячейки (по необходимости). Как сделать, чтобы при формировании нового листа эти кнопки имели вид ToggleButton*.Value = False?
    Заранее благодарю.

    Всего записей: 683 | Зарегистр. 05-08-2004 | Отправлено: 07:56 07-01-2007
    NPC



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    попрошу внимания господа, снова нужна ваша помощь. нужен макрос
    нужно из таблицы
    20061221    105929    30917    7779    0    250    02    100%    -75    -    3091-7 МО,Любер,Котельники,Яничкин пр. 2
    (каждое значение, отдельный столбец, 3091-7 МО,Любер,Котельники,Яничкин пр. 2 в одном)
    и таких очень много строчек идущих вниз.
    1. скопировать значения 30917, 7779, 3091-7 МО,Любер,Котельники,Яничкин пр. 2 в отдельную книгу
    2. далее в новой книге у 30917 перевести в шеснатеричный формат, так же и 7779, потом объеденить в однин столбец, и дописать 25002, должно получится в столбеце А:  78C51E6325002, а в столбце Б 3091-7 МО,Любер,Котельники,Яничкин пр. 2
    всех с Рождеством!!

    Всего записей: 8943 | Зарегистр. 17-02-2005 | Отправлено: 13:56 07-01-2007
    giash



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    to:SERGE_BLIZNUK
    С рождеством!  
    Огромное вам спасибо! По-моему, все слава Богу! Но помятуя ваши слова:"Если по коду нужны комментарии - спрашивайте - поясню.", оставляю за собой право обратиться за помощью.
    С уважением

    Всего записей: 10 | Зарегистр. 18-12-2006 | Отправлено: 10:04 08-01-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    giash
    Спасибо за поздравление! Хотелось бы всех читателей поздравить с прошедшим светлым праздником Рождества Христова!
    Цитата:
    оставляю за собой право обратиться за помощью.  
    Так всегда пожалуйста. На самом деле, профи (мы все их знаем, поэтому поимённо не буду указывать!) вероятно на рождественнских каникулах - поэтому я тут в роли дежурного ;-)))
     
     
    Добавлено:
    NPC
    обратите внимания на константы - номера столбцов и имя книги/листа заданы в макросе - измените по вкусу, если нужно.

    Код:
     
    Sub MoveDataToSheet2()
      ColumnOfDigit1 = 3 ' константа - номер столбца с первым числом
      ColumnOfDigit2 = 4 ' константа - номер столбца со вторым числом
      ColumnOfMainText = 9 ' константа - номер столбца с текстом
      Row1 = ActiveSheet.UsedRange.Row
      Row2 = Row1 + ActiveSheet.UsedRange.Rows.Count - 1
      For i = Row1 To Row2
        Workbooks("Книга2").Worksheets("Лист1").Cells(i, 1).Value = _
             Hex(Cells(i, ColumnOfDigit1).Value) + Hex(Cells(i, ColumnOfDigit2).Value) + "25002"
        Workbooks("Книга2").Worksheets("Лист1").Cells(i, 2).Value = _
             Cells(i, ColumnOfMainText).Value
      Next i
    End Sub
     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 20:11 08-01-2007 | Исправлено: SERGE_BLIZNUK, 20:52 08-01-2007
    The okk



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уфф... отлично отдохнул - теперь и поработать не грех
    Всех с прошедшими праздниками!
     
    Нашел в сети книгу Дэна Эпплмана про API. Надо будет почитать на досуге.
     
    Добавлено:
    В VBA, оказывается, скрыта часть модуля, где задается его описание, сочетание клавиш для вызова и прочие атрибуты (Attribute).
     
    Интересно, а какие вообще атрибуты VBA унаследовал от VB? Где-нибудь есть список? А то в обжект броузере не нашел.

    Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 07:46 09-01-2007
    ZORRO2005



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Друзья есть такая задача:
    Есть столбец F c наименованиями месяцев
    (месяцы могут повторяться 1 и более раз)
    В столбце G данные каждого месяца
    В столбце A я делаю раскрывающийся список месяцев
    (Данные->Проверка..Список)
    В столбце B мне нужно тоже раскрывающийся список,
    но только со значениями,которые соответствуют каждому месяцу.
    То есть если я выбираю месяц февраль то в столбце B должны быть только значения 10,20,30 а не 10,20,30,100,200...
    Мне нужно как на картинке
     


    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 15:33 09-01-2007
    The okk



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZORRO2005
    Ну, задача вроде ясна. Попробую сегодня сделать, если время будет (и если кто-нибудь раньше не ответит ). А для чего столбец D? Он тут тоже как-то задействован?

    Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 16:05 09-01-2007 | Исправлено: The okk, 16:06 09-01-2007
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA
    ShIvADeSt (23-04-2007 01:59): http://forum.ru-board.com/topic.cgi?forum=33&topic=8273


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru