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

Вход

Регистрация

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

 

= Мир MS Excel/как вписать текст в строго ограниченное пространство - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » как вписать текст в строго ограниченное пространство (Макросы/Sub)
как вписать текст в строго ограниченное пространство
abra-kadabra Дата: Суббота, 06.12.2014, 06:54 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Я недавно начал работать с макросами вроде получается, но встретился с одной проблемой никак не решу, и на сайтах не нахожу. Нужно сделать так, чтобы
1)при нажатии на Checkbox текст на Листе3 "приплюсовывался" к тому тексту, что уже отмечен.(соображения есть может как переменную string задать и в неё всё добавлять, но тут нужно чтобы всё в одном большом коде было, что я пока тоже не соображу как). Т.е. при отметке одного checkbox красовалась надпись: "Саморез длинный 3 шт = 15 руб "
2)нельзя чтобы на Листе3 менялась ширина столбцов, количество, т.к. это бланк. Опять же наверняка как-то можно задать, либо через количество символов в словах, либо как-то ограничить до стобца Z.(пробовал через len не получилось)
3)Таких checkbox 15 штук.(может что подскажите в плане оптимизации)
%)
Заранее всем тем кто поучаствует спасибо большое! :)
К сообщению приложен файл: 4390999.xls (35.0 Kb)
 
Ответить
СообщениеЯ недавно начал работать с макросами вроде получается, но встретился с одной проблемой никак не решу, и на сайтах не нахожу. Нужно сделать так, чтобы
1)при нажатии на Checkbox текст на Листе3 "приплюсовывался" к тому тексту, что уже отмечен.(соображения есть может как переменную string задать и в неё всё добавлять, но тут нужно чтобы всё в одном большом коде было, что я пока тоже не соображу как). Т.е. при отметке одного checkbox красовалась надпись: "Саморез длинный 3 шт = 15 руб "
2)нельзя чтобы на Листе3 менялась ширина столбцов, количество, т.к. это бланк. Опять же наверняка как-то можно задать, либо через количество символов в словах, либо как-то ограничить до стобца Z.(пробовал через len не получилось)
3)Таких checkbox 15 штук.(может что подскажите в плане оптимизации)
%)
Заранее всем тем кто поучаствует спасибо большое! :)

Автор - abra-kadabra
Дата добавления - 06.12.2014 в 06:54
Wasilich Дата: Суббота, 06.12.2014, 08:57 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
текст на Листе3 "приплюсовывался" к тому тексту, что уже отмечен
А это трудно, показать на Листе3 как это должно выглядеть.
А вот вместо Checkbox можно применить любой символ, ну или ту же галочку, кликом мышки на ячейке нужной строки.
К сообщению приложен файл: abra-kadabra.xls (28.5 Kb)
 
Ответить
Сообщение
текст на Листе3 "приплюсовывался" к тому тексту, что уже отмечен
А это трудно, показать на Листе3 как это должно выглядеть.
А вот вместо Checkbox можно применить любой символ, ну или ту же галочку, кликом мышки на ячейке нужной строки.

Автор - Wasilich
Дата добавления - 06.12.2014 в 08:57
abra-kadabra Дата: Суббота, 06.12.2014, 09:34 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
аааа...дошло с помощью шрифтов) да можно, но честно говоря я полез в эти дебри чтоб с vba разобраться(изначально я так и ставил из этих последних шрифтов - там галочки даже нескольких типов). Это я так думаю не столь важно, так как это этап пройденный, а вот дальше проблемы.
Примерно сделал как должно быть.
К сообщению приложен файл: 7399101.xls (36.0 Kb)
 
Ответить
Сообщениеаааа...дошло с помощью шрифтов) да можно, но честно говоря я полез в эти дебри чтоб с vba разобраться(изначально я так и ставил из этих последних шрифтов - там галочки даже нескольких типов). Это я так думаю не столь важно, так как это этап пройденный, а вот дальше проблемы.
Примерно сделал как должно быть.

Автор - abra-kadabra
Дата добавления - 06.12.2014 в 09:34
alex77755 Дата: Суббота, 06.12.2014, 10:37 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

попробуй такой вариант.
Если чекбоксов много - можно загнать их в массив.
К сообщению приложен файл: 1653834.rar (14.8 Kb)


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщениепопробуй такой вариант.
Если чекбоксов много - можно загнать их в массив.

Автор - alex77755
Дата добавления - 06.12.2014 в 10:37
abra-kadabra Дата: Суббота, 06.12.2014, 13:45 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Wasilic спасибо большое, ваш пример очень пригодился. Хоть в другой книге, но всё же.
alex77755 спасибо. Вот оно! Я просто не знал как это организовать в плане кода(я про массивы).
А по поводу вставки текста вы меня не совсем поняли. Давайте я ещё раз переделаю файл, чтоб наглядней было. Я до этого написал, что их 15 штук будет - в столбец не поместятся(и в файле написал от куда до куда). А как их растянуть на три строчки(с R14 до А22 - вот в чём вопрос. Большой вопрос. Уж извините стараюсь формулировать как можно понятней.
К сообщению приложен файл: 0444510.xls (43.0 Kb)
 
Ответить
СообщениеWasilic спасибо большое, ваш пример очень пригодился. Хоть в другой книге, но всё же.
alex77755 спасибо. Вот оно! Я просто не знал как это организовать в плане кода(я про массивы).
А по поводу вставки текста вы меня не совсем поняли. Давайте я ещё раз переделаю файл, чтоб наглядней было. Я до этого написал, что их 15 штук будет - в столбец не поместятся(и в файле написал от куда до куда). А как их растянуть на три строчки(с R14 до А22 - вот в чём вопрос. Большой вопрос. Уж извините стараюсь формулировать как можно понятней.

Автор - abra-kadabra
Дата добавления - 06.12.2014 в 13:45
RAN Дата: Суббота, 06.12.2014, 13:51 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениеhttp://www.excelworld.ru/search?....&y=-142

Автор - RAN
Дата добавления - 06.12.2014 в 13:51
abra-kadabra Дата: Воскресенье, 07.12.2014, 02:26 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
спасибо RAN нашёл. Выкладываю что получилось. Последний вопрос. А можно, чтоб такой же результат, но через vba? И если да то как? Ссылку или файл с кодом, чтоб я понял что и откуда растет у vba.
К сообщению приложен файл: 1633988.xls (46.0 Kb)
 
Ответить
Сообщениеспасибо RAN нашёл. Выкладываю что получилось. Последний вопрос. А можно, чтоб такой же результат, но через vba? И если да то как? Ссылку или файл с кодом, чтоб я понял что и откуда растет у vba.

Автор - abra-kadabra
Дата добавления - 07.12.2014 в 02:26
alex77755 Дата: Воскресенье, 07.12.2014, 18:41 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Можно как-то так
[vba]
Код
Private Sub ИТОГ()
     Dim i, q, S, T, M, D, RZ As Range
     Dim D1, D2
     D1 = 25 '
     D2 = 77 'с этими цыхерками можно поиграть если изменится шрифт
     For i = 1 To 4
         If Лист1.Shapes("CheckBox" & i).OLEFormat.Object.Object Then
             If Range("Сум" & i).Value > 0 Then
                 T = Range("Комлект" & i).Value & " " & Range("Кол" & i).Value & " шт = " & Range("Сум" & i).Value & " руб."
                 S = IIf(Len(S) = 0, T, S & " " & T)
             End If
         End If
     Next
     Range("Всего") = S
     M = Split(S)
     S = ""
     D = D1
     q = 1
     Лист3.Range("Всего1") = ""
     Лист3.Range("Всего2") = ""
     Лист3.Range("Всего3") = ""
     For i = 0 To UBound(M)
         If Len(S) + 1 + Len(M(i)) > D Then
             Debug.Print S
              Set RZ = Лист3.Range("Всего" & q)
              RZ = "'" & S
              q = q + 1
                 If q > 3 Then
                    MsgBox "Нет больше строчек в бланке!", vbCritical, "": Exit Sub
                 End If
              D = D2
              S = M(i) & " "
         Else
             S = S & M(i) & " "
         End If
     Next i
       If Len(S) > 0 Then
         Set RZ = Лист3.Range("Всего" & q)
         RZ = "'" & S
       End If
End Sub
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеМожно как-то так
[vba]
Код
Private Sub ИТОГ()
     Dim i, q, S, T, M, D, RZ As Range
     Dim D1, D2
     D1 = 25 '
     D2 = 77 'с этими цыхерками можно поиграть если изменится шрифт
     For i = 1 To 4
         If Лист1.Shapes("CheckBox" & i).OLEFormat.Object.Object Then
             If Range("Сум" & i).Value > 0 Then
                 T = Range("Комлект" & i).Value & " " & Range("Кол" & i).Value & " шт = " & Range("Сум" & i).Value & " руб."
                 S = IIf(Len(S) = 0, T, S & " " & T)
             End If
         End If
     Next
     Range("Всего") = S
     M = Split(S)
     S = ""
     D = D1
     q = 1
     Лист3.Range("Всего1") = ""
     Лист3.Range("Всего2") = ""
     Лист3.Range("Всего3") = ""
     For i = 0 To UBound(M)
         If Len(S) + 1 + Len(M(i)) > D Then
             Debug.Print S
              Set RZ = Лист3.Range("Всего" & q)
              RZ = "'" & S
              q = q + 1
                 If q > 3 Then
                    MsgBox "Нет больше строчек в бланке!", vbCritical, "": Exit Sub
                 End If
              D = D2
              S = M(i) & " "
         Else
             S = S & M(i) & " "
         End If
     Next i
       If Len(S) > 0 Then
         Set RZ = Лист3.Range("Всего" & q)
         RZ = "'" & S
       End If
End Sub
[/vba]

Автор - alex77755
Дата добавления - 07.12.2014 в 18:41
abra-kadabra Дата: Понедельник, 08.12.2014, 14:30 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Всё работает. Спасибо Большое! hands Буду разбирать, что и как.
 
Ответить
СообщениеВсё работает. Спасибо Большое! hands Буду разбирать, что и как.

Автор - abra-kadabra
Дата добавления - 08.12.2014 в 14:30
Мир MS Excel » Вопросы и решения » Вопросы по VBA » как вписать текст в строго ограниченное пространство (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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