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

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

Модерирует : gyra, Maz

Widok (17-05-2007 19:48): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Просьба к посетителям топика дополнять шапку наиболее часто задаваемыми вопросами со ссылками на ответы в обязательном порядке

 
  • Смена представления имен столбцов с буквенного на цифровое и обратно
  • Надстройки "Сумма прописью"
  • Список соответствия имен функций в английской и русской версиях Excel
  • Описание Microsoft Excel File Format
     
     
    Предыдущие ветки топика: Часть 1 |
     
    Все вопросы по программированию (макросы, скрипты, пользовательские функции и т.п.) обсуждаются в теме Excel VBA в разделе Прикладное программирование.
     
    При необходимости выложить скриншот пользуйтесь сервисом ImageShack® (ограничение на размер файла <1.5 Mb)

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 15:32 01-04-2006 | Исправлено: Maz, 22:45 24-02-2017
    init0



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос такого плана:
    Есть список: наименование, длина, ширина.
    Также есть форма такого же содержания в заголовках.
    Как, вставив определенное наименование в форму (и каким образом это сделать), получить соответствующее ему значение длины и ширины в нужных ячейках?
    Заранее спасибо.

    Всего записей: 54 | Зарегистр. 10-06-2005 | Отправлено: 22:49 17-07-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    init0
    В функцию Change текстового поля с наименованием вставляешь примерно такой код:
    Код:
    Private Sub TextBox1_Change()
        r = Range("A12:A20").Find(TextBox1.Value, LookIn:=xlValues).Row
        TextBox2.Value = Cells(r, 2).Value
        TextBox3.Value = Cells(r, 3).Value
    End Sub

    Range("A12:A20") - поле таблицы с наименованиями, TextBox1-3 поля формы с наименованием, длиной и шириной.

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 00:32 18-07-2006
    del_cobra

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день. У меня загвоздка. Как внедрить длинную таблицу Excel в Word, чтобы она не застревала на 1 странице?. Для невнимательных уточню, именно внедрить, не вставить простым копипастом. Работаю с версией 2000.

    Всего записей: 7 | Зарегистр. 01-11-2005 | Отправлено: 13:20 18-07-2006
    init0



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Yuk
    Можно по-подробнее действия описать. Я в Excel'e не очень силен.

    Всего записей: 54 | Зарегистр. 10-06-2005 | Отправлено: 22:16 18-07-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    init0
    Вопрос, который я должен был задать в первую очередь. Что за форма? Сам делал? Кто-то другой? Или из меню Данные-Форма?

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 23:38 18-07-2006
    init0



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Yuk
    Имеем перечень металлопроката (швеллера, уголки, трубы и т.д.), каждый из которых имеет определенный параметры: размеры сечения, массу и т.п. Цель - при составлении калькуляции выбирая наименование, к примеру швеллер №14, получать все соответствующие ему параметры в определенных ячейках. Каким образом это сделать и стоит вопрос.  
    Надеюсь хоть что-то из этого бреда понятно))

    Всего записей: 54 | Зарегистр. 10-06-2005 | Отправлено: 00:32 19-07-2006
    Vetal303



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    init0
    а автофильтр не пробовали?  
    Выбираете нужный швеллер и получите нужные параметры
    но это если Вам просто посмотреть!!!
    если нужно для рассчетов, то приведите пример таблицы, тогда будет понятнне что Вам надо и как решать данную задачу

    Всего записей: 498 | Зарегистр. 05-07-2004 | Отправлено: 00:53 19-07-2006
    Gatti

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Yuk, спасибо тебе огромное.
     
    P.S. Не подскажите можно ли ограничить максимальное кол-во символов в ячейке, скажем 30 включая пробелы?

    Всего записей: 93 | Зарегистр. 24-12-2005 | Отправлено: 10:09 19-07-2006 | Исправлено: Gatti, 11:33 19-07-2006
    Robert



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

    Цитата:
    можно ли ограничить максимальное кол-во символов в ячейке, скажем 30 включая пробелы?

    Данные - Проверка, Тип данных - Длина текста, Значение - меньше или равно, Максимум - 30

    Всего записей: 285 | Зарегистр. 12-03-2003 | Отправлено: 20:23 19-07-2006
    Gatti

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо, очень выручил.

    Всего записей: 93 | Зарегистр. 24-12-2005 | Отправлено: 17:29 20-07-2006
    ZORRO2005



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

    Цитата:
    Имеем перечень металлопроката (швеллера, уголки, трубы и т.д.), каждый из которых имеет определенный параметры: размеры сечения, массу и т.п. Цель - при составлении калькуляции выбирая наименование, к примеру швеллер №14, получать все соответствующие ему параметры в определенных ячейках. Каким образом это сделать и стоит вопрос.   Надеюсь хоть что-то из этого бреда понятно))

    init0
    Это можно сделать с помощью функции ВПР.

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 18:41 20-07-2006 | Исправлено: ZORRO2005, 18:48 20-07-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    init0
    2 способа.
     
    1. С формулами. Плюс - не нужно использовать VBA. Минусы - если наименование не найдено или не введено, выдаст ошибку; при вводе новых строк, нужно также копировать формулы.
     
    2. Через VBA. Плюсы и минусы противоположные формулам. А также более гибкая обработка ошибок; макрос запускается при любом изменении на листе расчетов.
     
    Какой вариант выбрать - решать тебе.
    Итак,
     
    1. В ячейку B2 листа ЛистКалькуляция вводишь формулу:

    Код:
    =ИНДЕКС(ЛистСортамент!B$2:B$200;ПОИСКПОЗ(ЛистКалькуляция!$A2;ЛистСортамент!$A$2:$A$200;0);1)

    Обрати внимание на расстановку $, это важно.
    Копируешь формулу в ячейки C2, F2, G2. В ячейках F2 и G2 надо будет формулу подредактировать, заменив F на Д и G на E.  
    Затем копируешь (или Ctrl-D) всю строку с формулами вниз. Если $ расставлены правильно, ссылки должны измениться со строкой.
    Если ячейка в столбце А пустая или это наименование не найдено, в ячейках с формулами будет ошибка, что-то типа НЕТ ДАННЫХ. Можно, конечно, поместить формулы в ЕСЛИ(ЕНД(...);...;""), но это дополнительное усложнение.
     
    2. Жмешь Alt-F11 для перехода в редактор VBA. В левой панели находишь свою книгу и лист ЛистКалькуляция. Правым кликом открываешь страницы с Кодом. Туда вводишь:

    Код:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim r As Range
        If Target.Column = 1 Then
            Set r = Worksheets("ЛистСортамент").Range("A2:A29").Find(Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
            If r Is Nothing Then
                Cells(Target.Row, 2).Value = ""
                Cells(Target.Row, 3).Value = ""
                Cells(Target.Row, 6).Value = ""
                Cells(Target.Row, 7).Value = ""
                Exit Sub
            End If
            Cells(Target.Row, 2).Value = Worksheets("ЛистСортамент").Cells(r.Row, 2).Value
            Cells(Target.Row, 3).Value = Worksheets("ЛистСортамент").Cells(r.Row, 3).Value
            Cells(Target.Row, 6).Value = Worksheets("ЛистСортамент").Cells(r.Row, 4).Value
            Cells(Target.Row, 7).Value = Worksheets("ЛистСортамент").Cells(r.Row, 5).Value
        End If
    End Sub

     
    Если в листе ЛистСортамент есть несколько строк с одинаковым наименованием, в обоих вариантах находится первая строка. Наименование должно быть введено полностью.
     
     
    Чтобы в листе ЛистКалькуляция можно было выбрать наименование из списка. Можно было бы сделать через Данные - Проверка - Список. Но область списка не может быть из другого листа. Потому только через макрос (вставляется в новый модуль):

    Код:
    Sub FillList()
        Dim frm As String
        Dim nr As Long
        Dim c As Range
        frm = ""
        With Sheets("ЛистСортамент")
            nr = .UsedRange.Rows.Count
            For Each c In Range(.Cells(2, 1), .Cells(nr, 1))
                frm = frm & "," & c.Value
            Next
        End With
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, Formula1:=frm
            .IgnoreBlank = True
            .InCellDropdown = True
            .ShowInput = True
            .ShowError = False
        End With
    End Sub

     
    Макрос можно повесить на кнопку (ячейки, для которых нужен список должны быть предварительно выделены) или (с небольшими изменениями) на изменение листа ЛистСортамент. При добавлении строк в ЛистКалькуляция макрос перезапускать не обязательно, достаточно скопировать формат предыдущих ячеек.
     
    Вроде все.

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 20:08 20-07-2006 | Исправлено: Yuk, 20:09 20-07-2006
    ZORRO2005



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    init0
    Пришли мне на мыло,я попробую разобраться.

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 20:55 20-07-2006
    hansi

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть задача: ячейка содержит 10001, необходимо добавить спереди 0 и разбить через 2 числа пробелом, то есть как 01 00 01  
    как это можно сделать?

    Всего записей: 14 | Зарегистр. 21-07-2006 | Отправлено: 10:26 21-07-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    hansi
    Числа всегда пятизначные? Если да, то вот так =ЛЕВСИМВ(0&A1;2)&" "&ПСТР(0&A1;3;2)&" "&ПРАВСИМВ(0&A1;2)

    Всего записей: 22843 | Зарегистр. 19-01-2002 | Отправлено: 12:52 21-07-2006
    ZORRO2005



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

    Цитата:
    есть задача: ячейка содержит 10001, необходимо добавить спереди 0 и разбить через 2 числа пробелом, то есть как 01 00 01   как это можно сделать?

    В формате ячейки поставь следующее:
    00" "00" "00

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 12:59 21-07-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZORRO2005
    Способ интересный А если у hansi будут 3-значные числа?

    Всего записей: 22843 | Зарегистр. 19-01-2002 | Отправлено: 13:26 21-07-2006
    ZORRO2005



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

    Цитата:
    Способ интересный  А если у hansi будут 3-значные числа?

    А если он захочет умножить твое число?
    Лучше узнать у hansi что ему больше подходит.
     

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 13:30 21-07-2006
    ZORRO2005



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

    Цитата:
    А если у hansi будут 3-значные числа?

    Получится 00 01 23
    Но можно формат назначить разный для разных чисел

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 20:07 21-07-2006 | Исправлено: ZORRO2005, 20:12 21-07-2006
    init0



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Yuk
    Все отлично заработало! Попробовал оба варианта. Второй вариант мне показался удобнее. Спасибо огоромнейшее за терпение и столь полное решение данного вопроса. С меня пиво
    P.S.: Так же хочу поблагодарить Vetal303 и ZORRO2005 за отзывы.

    Всего записей: 54 | Зарегистр. 10-06-2005 | Отправлено: 21:44 21-07-2006
       

    Страницы: 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

    Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 2)
    Widok (17-05-2007 19:48): лимит страниц. продолжаем здесь


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru