Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Программно растянуть умную таблицу до конечных данных - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Программно растянуть умную таблицу до конечных данных (Формулы/Formulas)
Программно растянуть умную таблицу до конечных данных
Сергей13 Дата: Среда, 27.02.2019, 21:00 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте.
С помощью макрорекордера записал код сжатия контейнера умной таблицы до одной ячейки
[vba]
Код
ActiveSheet.ListObjects("Таблица1").Resize Range("$A$2") 'Сжать таблицу
[/vba]
Подскажите каким образом (не ссылаясь на фиксированный диапазон) можно растянуть таблицу дабы она захватила границы конечных данных?
[vba]
Код
ActiveSheet.ListObjects("Таблица1").Resize Range("?") 'Растянуть таблицу до границ конечных данных.
[/vba]


Сообщение отредактировал Сергей13 - Среда, 27.02.2019, 23:04
 
Ответить
СообщениеЗдравствуйте.
С помощью макрорекордера записал код сжатия контейнера умной таблицы до одной ячейки
[vba]
Код
ActiveSheet.ListObjects("Таблица1").Resize Range("$A$2") 'Сжать таблицу
[/vba]
Подскажите каким образом (не ссылаясь на фиксированный диапазон) можно растянуть таблицу дабы она захватила границы конечных данных?
[vba]
Код
ActiveSheet.ListObjects("Таблица1").Resize Range("?") 'Растянуть таблицу до границ конечных данных.
[/vba]

Автор - Сергей13
Дата добавления - 27.02.2019 в 21:00
Nic70y Дата: Среда, 27.02.2019, 21:16 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация: 2272 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
u = Cells(Rows.Count, "a").End(xlUp).Row
[/vba]это последняя строка столбца A,
это все, что я могу сказать без файла примера...


ЮMoney 41001841029809
 
Ответить
Сообщение[vba]
Код
u = Cells(Rows.Count, "a").End(xlUp).Row
[/vba]это последняя строка столбца A,
это все, что я могу сказать без файла примера...

Автор - Nic70y
Дата добавления - 27.02.2019 в 21:16
Сергей13 Дата: Среда, 27.02.2019, 21:32 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Nic70y, Момент.
 
Ответить
СообщениеNic70y, Момент.

Автор - Сергей13
Дата добавления - 27.02.2019 в 21:32
Сергей13 Дата: Среда, 27.02.2019, 21:43 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Nic70y, Тестовый пример с макросом сжатия
К сообщению приложен файл: 5578857.xlsm (16.1 Kb)
 
Ответить
СообщениеNic70y, Тестовый пример с макросом сжатия

Автор - Сергей13
Дата добавления - 27.02.2019 в 21:43
Nic70y Дата: Среда, 27.02.2019, 22:21 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация: 2272 ±
Замечаний: 0% ±

Excel 2010
ну, если наскоряк, то как-то так
[vba]
Код
Sub Макрос2()
    u_1 = Cells(Rows.Count, "b").End(xlUp).Row
    u_2 = Cells(Rows.Count, "c").End(xlUp).Row
    u_3 = Cells(Rows.Count, "d").End(xlUp).Row
    u_4 = Application.Max(u_1, u_2, u_3) + 1
    ActiveSheet.ListObjects("Таблица1").Resize Range("a1:a" & u_4)
End Sub
[/vba]

[p.s.]извиняюсь за апдэйты, глюки каие-то с файлом были[/p.s.]
К сообщению приложен файл: 1973710-1-.xlsm (16.3 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 27.02.2019, 22:27
 
Ответить
Сообщениену, если наскоряк, то как-то так
[vba]
Код
Sub Макрос2()
    u_1 = Cells(Rows.Count, "b").End(xlUp).Row
    u_2 = Cells(Rows.Count, "c").End(xlUp).Row
    u_3 = Cells(Rows.Count, "d").End(xlUp).Row
    u_4 = Application.Max(u_1, u_2, u_3) + 1
    ActiveSheet.ListObjects("Таблица1").Resize Range("a1:a" & u_4)
End Sub
[/vba]

[p.s.]извиняюсь за апдэйты, глюки каие-то с файлом были[/p.s.]

Автор - Nic70y
Дата добавления - 27.02.2019 в 22:21
Сергей13 Дата: Среда, 27.02.2019, 22:43 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Nic70y, По идеи необходимо захватить весь диапазон с данными, через макрорекордер это должно быть так, как показано в следующем примере.

Но захват в моем примере происходит путем фиксированного диапазона "$A$1:$D$10" прописанного в коде Макроса2.
Вопрос – как произвести захват данных не ссылаясь на фиксированный диапазон?
Ну типа захват в области конечной заполненной строки и конечного столбца (заголовка).
К сообщению приложен файл: 9136312.xlsm (17.5 Kb)


Сообщение отредактировал Сергей13 - Четверг, 28.02.2019, 01:19
 
Ответить
СообщениеNic70y, По идеи необходимо захватить весь диапазон с данными, через макрорекордер это должно быть так, как показано в следующем примере.

Но захват в моем примере происходит путем фиксированного диапазона "$A$1:$D$10" прописанного в коде Макроса2.
Вопрос – как произвести захват данных не ссылаясь на фиксированный диапазон?
Ну типа захват в области конечной заполненной строки и конечного столбца (заголовка).

Автор - Сергей13
Дата добавления - 27.02.2019 в 22:43
Nic70y Дата: Четверг, 28.02.2019, 14:58 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация: 2272 ±
Замечаний: 0% ±

Excel 2010
ну такое в голову пришло, мож криво, но работает
[vba]
Код
Sub Макрос2()
    u_1 = Cells(1, Columns.Count).End(xlToLeft).Column
    u_3 = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To u_1
        u_2 = Cells(Rows.Count, i).End(xlUp).Row
        If u_2 > Cells(Rows.Count, i - 1).End(xlUp).Row Then u_3 = u_2
    Next
    ActiveSheet.ListObjects("Таблица1").Resize Range(Cells(1, 1), Cells(u_3 + 1, u_1))
End Sub
[/vba]


ЮMoney 41001841029809
 
Ответить
Сообщениену такое в голову пришло, мож криво, но работает
[vba]
Код
Sub Макрос2()
    u_1 = Cells(1, Columns.Count).End(xlToLeft).Column
    u_3 = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To u_1
        u_2 = Cells(Rows.Count, i).End(xlUp).Row
        If u_2 > Cells(Rows.Count, i - 1).End(xlUp).Row Then u_3 = u_2
    Next
    ActiveSheet.ListObjects("Таблица1").Resize Range(Cells(1, 1), Cells(u_3 + 1, u_1))
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 28.02.2019 в 14:58
krosav4ig Дата: Четверг, 28.02.2019, 16:25 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Sub Макрос1()

    With [Таблица1].ListObject
        .Resize .Range.Resize(2, 1)
    End With

End Sub

Sub Макрос2()
    
    With [Таблица1].ListObject.Range.CurrentRegion
        .ListObject.Resize .Resize(.Rows.Count - IsEmpty(.Cells(2, 1)))
    End With
    
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 28.02.2019, 23:34
 
Ответить
Сообщение[vba]
Код
Sub Макрос1()

    With [Таблица1].ListObject
        .Resize .Range.Resize(2, 1)
    End With

End Sub

Sub Макрос2()
    
    With [Таблица1].ListObject.Range.CurrentRegion
        .ListObject.Resize .Resize(.Rows.Count - IsEmpty(.Cells(2, 1)))
    End With
    
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 28.02.2019 в 16:25
Сергей13 Дата: Четверг, 28.02.2019, 23:25 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Nic70y, Смысл всего этого, это независимая сортировка столбцов.
Для этого нужно после вводы данных под любым столбцом, динамической таблицы, произвести последовательную сортировку столбцов, отсюда следует что перед сортировкой необходимо временно убрать таблицу, а после сортировки захватить все данные.
Все это в одном коде.
Ваш код как бы рабочий, но захват данных, в зависимости от того где были введены данные, происходит не корректно, то есть не полный захват данных.
Для полного понимания создал файл из представленных кодов (Вашего и krosav4ig и кода сортировки). Для теста введите данные в ячейку 9I и выполните код кнопкой, захват будет не полный.
К сообщению приложен файл: 7427512.xlsm (21.6 Kb)
 
Ответить
СообщениеNic70y, Смысл всего этого, это независимая сортировка столбцов.
Для этого нужно после вводы данных под любым столбцом, динамической таблицы, произвести последовательную сортировку столбцов, отсюда следует что перед сортировкой необходимо временно убрать таблицу, а после сортировки захватить все данные.
Все это в одном коде.
Ваш код как бы рабочий, но захват данных, в зависимости от того где были введены данные, происходит не корректно, то есть не полный захват данных.
Для полного понимания создал файл из представленных кодов (Вашего и krosav4ig и кода сортировки). Для теста введите данные в ячейку 9I и выполните код кнопкой, захват будет не полный.

Автор - Сергей13
Дата добавления - 28.02.2019 в 23:25
Сергей13 Дата: Четверг, 28.02.2019, 23:28 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, Для работы Вашего кода необходимо минимум две заполненные строки, иначе выдает ошибку, в последствии код работает, но независимо от количества заполненных строк не захватывает две последние строки с данными.
 
Ответить
Сообщениеkrosav4ig, Для работы Вашего кода необходимо минимум две заполненные строки, иначе выдает ошибку, в последствии код работает, но независимо от количества заполненных строк не захватывает две последние строки с данными.

Автор - Сергей13
Дата добавления - 28.02.2019 в 23:28
krosav4ig Дата: Четверг, 28.02.2019, 23:36 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Цитата Сергей13, 28.02.2019 в 23:28, в сообщении № 10 ()
не захватывает две последние строки с данными

Исправил, + с - перепутал


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Цитата Сергей13, 28.02.2019 в 23:28, в сообщении № 10 ()
не захватывает две последние строки с данными

Исправил, + с - перепутал

Автор - krosav4ig
Дата добавления - 28.02.2019 в 23:36
krosav4ig Дата: Пятница, 01.03.2019, 01:27 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Sub sortirovka() 'Раскрытие таблицы
    Dim b As Boolean, r As Range, col as range
    With [Таблица1].ListObject
        Set r = .Range.CurrentRegion
        For Each col In r.Columns
            If col.Column = r.Column Then
                .Resize col.Next.Resize(2)
            ElseIf Not b Then
                b = True
                .Resize r.Resize(2, 2)
                .Resize r.Resize(2, 1)
            End If
            With Intersect(.Parent.UsedRange, col.EntireColumn)
                .sort .Cells(1), xlAscending, Header:=1
            End With
        Next
        .Resize r.Resize(r.Rows.Count - IsEmpty(r.Cells(2, 1)))
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 01.03.2019, 03:05
 
Ответить
Сообщение[vba]
Код
Sub sortirovka() 'Раскрытие таблицы
    Dim b As Boolean, r As Range, col as range
    With [Таблица1].ListObject
        Set r = .Range.CurrentRegion
        For Each col In r.Columns
            If col.Column = r.Column Then
                .Resize col.Next.Resize(2)
            ElseIf Not b Then
                b = True
                .Resize r.Resize(2, 2)
                .Resize r.Resize(2, 1)
            End If
            With Intersect(.Parent.UsedRange, col.EntireColumn)
                .sort .Cells(1), xlAscending, Header:=1
            End With
        Next
        .Resize r.Resize(r.Rows.Count - IsEmpty(r.Cells(2, 1)))
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 01.03.2019 в 01:27
Сергей13 Дата: Пятница, 01.03.2019, 02:17 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, Да… Это кардинально меняет ранее задуманное.
Но у меня во всех рабочих листах Option Explicit который ругается на col, в строке For Each col In r.Columns, Это можно исправить?
А также есть такой нюанс, при выполнении кода захват идет под конечное значение строки, повторный ввод данных и выполнение кода добавляет пустую строку, то есть идет некое чередование. Это так задумано?


Сообщение отредактировал Сергей13 - Пятница, 01.03.2019, 02:32
 
Ответить
Сообщениеkrosav4ig, Да… Это кардинально меняет ранее задуманное.
Но у меня во всех рабочих листах Option Explicit который ругается на col, в строке For Each col In r.Columns, Это можно исправить?
А также есть такой нюанс, при выполнении кода захват идет под конечное значение строки, повторный ввод данных и выполнение кода добавляет пустую строку, то есть идет некое чередование. Это так задумано?

Автор - Сергей13
Дата добавления - 01.03.2019 в 02:17
krosav4ig Дата: Пятница, 01.03.2019, 03:07 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Цитата Сергей13, 01.03.2019 в 02:17, в сообщении № 13 ()
Это можно исправить

добавить определение переменной
col as range
Цитата Сергей13, 01.03.2019 в 02:17, в сообщении № 13 ()
Это так задумано?
Это так получилось :)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Цитата Сергей13, 01.03.2019 в 02:17, в сообщении № 13 ()
Это можно исправить

добавить определение переменной
col as range
Цитата Сергей13, 01.03.2019 в 02:17, в сообщении № 13 ()
Это так задумано?
Это так получилось :)

Автор - krosav4ig
Дата добавления - 01.03.2019 в 03:07
krosav4ig Дата: Пятница, 01.03.2019, 08:10 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Sub sortirovka() 'Раскрытие таблицы
    Dim r As Range, i&, j&, v As Variant, arr() As Variant
    With [Таблица1].ListObject
        With .Range.CurrentRegion
            If .Rows.Count < 2 Then Exit Sub
            ReDim Preserve arr(1 To .Rows.Count - 1, 1 To .Columns.Count)
            For j = 1 To .Columns.Count
                For Each r In .Columns(j)
                    i = 1
                    For Each v In BubbleSort(Intersect(r, r.Offset(1)).Value)
                        arr(i, j) = v
                        i = i + 1
            Next v, r, j
            Intersect(.Offset(1), .Cells).ClearContents
            .Cells(2, 1).Resize(i - 1, j - 1) = arr
        End With
        .Resize .Range.CurrentRegion
    End With
End Sub
Function BubbleSort(v As Variant) As Variant
    Dim i&, j&, b As Boolean
    If Not IsArray(v) Then BubbleSort = Array(v): Exit Function
    b = UBound(v) >= UBound(v, 2)
    For i = 1 To UBound(v, IIf(b, 1, 2)) - 1: For j = i To UBound(v, IIf(b, 1, 2))
        swap v(IIf(b, i, 1), IIf(b, 1, i)), v(IIf(b, j, 1), IIf(b, 1, j))
    Next j, i
    BubbleSort = v
End Function
Sub swap(ByRef a As Variant, b As Variant)
    If a < b Xor (a <> "") And (b <> "") Then: Dim c: c = a: a = b: b = c
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 02.03.2019, 07:31
 
Ответить
Сообщение[vba]
Код
Sub sortirovka() 'Раскрытие таблицы
    Dim r As Range, i&, j&, v As Variant, arr() As Variant
    With [Таблица1].ListObject
        With .Range.CurrentRegion
            If .Rows.Count < 2 Then Exit Sub
            ReDim Preserve arr(1 To .Rows.Count - 1, 1 To .Columns.Count)
            For j = 1 To .Columns.Count
                For Each r In .Columns(j)
                    i = 1
                    For Each v In BubbleSort(Intersect(r, r.Offset(1)).Value)
                        arr(i, j) = v
                        i = i + 1
            Next v, r, j
            Intersect(.Offset(1), .Cells).ClearContents
            .Cells(2, 1).Resize(i - 1, j - 1) = arr
        End With
        .Resize .Range.CurrentRegion
    End With
End Sub
Function BubbleSort(v As Variant) As Variant
    Dim i&, j&, b As Boolean
    If Not IsArray(v) Then BubbleSort = Array(v): Exit Function
    b = UBound(v) >= UBound(v, 2)
    For i = 1 To UBound(v, IIf(b, 1, 2)) - 1: For j = i To UBound(v, IIf(b, 1, 2))
        swap v(IIf(b, i, 1), IIf(b, 1, i)), v(IIf(b, j, 1), IIf(b, 1, j))
    Next j, i
    BubbleSort = v
End Function
Sub swap(ByRef a As Variant, b As Variant)
    If a < b Xor (a <> "") And (b <> "") Then: Dim c: c = a: a = b: b = c
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 01.03.2019 в 08:10
Сергей13 Дата: Пятница, 01.03.2019, 18:37 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, Здравствуйте.

Не тестируется, выдает ошибку на r в строке
For Each r In .Columns(j)
Путем тыка объявил ее переменной в строке
Dim i&, j&, v, r As Variant, arr() As Variant

Теперь при любом раскладе выдает ошибку на переменную v в строке
Next v, j, i
но по коду v вроде-бы объявлена переменной?


Сообщение отредактировал Сергей13 - Пятница, 01.03.2019, 18:39
 
Ответить
Сообщениеkrosav4ig, Здравствуйте.

Не тестируется, выдает ошибку на r в строке
For Each r In .Columns(j)
Путем тыка объявил ее переменной в строке
Dim i&, j&, v, r As Variant, arr() As Variant

Теперь при любом раскладе выдает ошибку на переменную v в строке
Next v, j, i
но по коду v вроде-бы объявлена переменной?

Автор - Сергей13
Дата добавления - 01.03.2019 в 18:37
krosav4ig Дата: Пятница, 01.03.2019, 19:10 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Сергей13, эт я, наверно, еще не проснулся, когда писал. Щас до компа доеду, исправлю. Исправил


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 01.03.2019, 19:30
 
Ответить
СообщениеСергей13, эт я, наверно, еще не проснулся, когда писал. Щас до компа доеду, исправлю. Исправил

Автор - krosav4ig
Дата добавления - 01.03.2019 в 19:10
Сергей13 Дата: Пятница, 01.03.2019, 22:22 | Сообщение № 18
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, Намного эффективно по отношению к тому что я пытался наворочить. Спасибо!
В тестовом варианте вроде все нормально, буду пробовать впихивать в рабочий.
Благодарю за помощь!
 
Ответить
Сообщениеkrosav4ig, Намного эффективно по отношению к тому что я пытался наворочить. Спасибо!
В тестовом варианте вроде все нормально, буду пробовать впихивать в рабочий.
Благодарю за помощь!

Автор - Сергей13
Дата добавления - 01.03.2019 в 22:22
Сергей13 Дата: Пятница, 01.03.2019, 23:50 | Сообщение № 19
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, Еще один нюанс всплыл.
Если динамическая таблица первоначально пуста, то выдается ошибка.
В ходе тестирования понял то, что код функционирует при наличии данных в любых ячейках двух начальных строк.
Если это такова изначальная необходимость, то можно ли как-то просто не выполнять код при отсутствии данных в двух строках таблицы?


Сообщение отредактировал Сергей13 - Пятница, 01.03.2019, 23:55
 
Ответить
Сообщениеkrosav4ig, Еще один нюанс всплыл.
Если динамическая таблица первоначально пуста, то выдается ошибка.
В ходе тестирования понял то, что код функционирует при наличии данных в любых ячейках двух начальных строк.
Если это такова изначальная необходимость, то можно ли как-то просто не выполнять код при отсутствии данных в двух строках таблицы?

Автор - Сергей13
Дата добавления - 01.03.2019 в 23:50
krosav4ig Дата: Суббота, 02.03.2019, 07:34 | Сообщение № 20
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Исправил


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеИсправил

Автор - krosav4ig
Дата добавления - 02.03.2019 в 07:34
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Программно растянуть умную таблицу до конечных данных (Формулы/Formulas)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!