Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 18:29   #1
MoHoMaXFR
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 36
По умолчанию Копирование строк лисбокса

Доброго времени суток. Проблема такая : есть лист бокс со значение fmmultiselectmulti . Необходимо сделать так чтобы выделенные значения попадали в Таблицу бланка на следующем листе . При это необходимо чтобы коллво элементов таблицы помещённых в бланк могло увеличиваться и сокращаться автоматически. Тоесть Ячейка итого перемещалась ниже выше.

В инете ничего умного не нашел или я не вижу.
Вложения
Тип файла: rar Свободный выбор.rar (17.1 Кб, 15 просмотров)
MoHoMaXFR вне форума Ответить с цитированием
Старый 03.06.2011, 22:15   #2
MoHoMaXFR
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 36
По умолчанию

немного не правильно сказал. Строк 4 максимум. как ограничить этот максимум ещё?
MoHoMaXFR вне форума Ответить с цитированием
Старый 04.06.2011, 11:05   #3
MoHoMaXFR
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 36
По умолчанию

Народ просто скажите как тогда обозвать все выделения))) с одним проще)) у одного listindex потом распихал по текстбоксам и всё а как сделать когда их много?
MoHoMaXFR вне форума Ответить с цитированием
Старый 05.06.2011, 07:53   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите пример во вложении.
Если в ListBox выбрать более 4-х значений, то в таблицу будут помещены первые 4.
Вложения
Тип файла: rar Свободный выбор_2.rar (19.4 Кб, 22 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 05.06.2011, 12:22   #5
MoHoMaXFR
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 36
По умолчанию

Код:
Private Sub CommandButton5_Click()
    Sheets("счетик").Select
    Sheets("счетик").Copy After:=Sheets(4)
    Dim i As Integer, j As Integer, y As Range, a()
    a = x.Value: j = 18: Sheets(5).Activate
    Set y = [D:D].Find("Итого")
    If y.Row <> 19 Then Rows("18:" & y.Row - 2).Delete
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
            Rows(j).Insert
            Cells(j, 1).Resize(, 6).Value = Application.Index(a, i + 1, 0)
            If j = 21 Then Exit For Else j = j + 1
    End If: Next: Sheets("счетчик(2)").Move


Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:="C:\Счета к оплате" & Format(Now, "dd_mm_yyyy_hh_nn_ss") & ".xls", FileFormat:=xlExcel8 _
        , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
    Application.DisplayAlerts = True
        ActiveWorkbook.Close (savechanges = False)
 MsgBox ("Сохранено в папке счета к оплате")
End Sub
почему не выполняется код после End if: Next
MoHoMaXFR вне форума Ответить с цитированием
Старый 05.06.2011, 13:48   #6
MoHoMaXFR
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 36
По умолчанию

то есть лист не перемещается и не сохраняется по указанному пути
MoHoMaXFR вне форума Ответить с цитированием
Старый 05.06.2011, 15:12   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
почему не выполняется код после End if: Next
Что значит "не выполняется код"? Выдается ошибка? Какая? Или просто не создается файл?
Проверьте правильность задания пути и имени файла. Если Вы хотите сохранить файл в папку "C:\Счета к оплате", то строка пути должна формироваться так:
Код:
ActiveWorkbook.SaveAs Filename:="C:\Счета к оплате\" & Format(Now, "dd_mm_yyyy_hh_nn_ss") & ".xls"
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 05.06.2011, 15:16   #8
MoHoMaXFR
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 36
По умолчанию

Код:
  End If: Next: Sheets("счетчик(2)").Move
вот здесь он должен переместить лист в новую книгу. а он вообще всю книгу сохраняет по этому пути
MoHoMaXFR вне форума Ответить с цитированием
Старый 05.06.2011, 15:16   #9
MoHoMaXFR
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 36
По умолчанию

это уже поправил ="C:\Счета к оплате\"
MoHoMaXFR вне форума Ответить с цитированием
Старый 05.06.2011, 15:39   #10
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Проверил в 2003 и 2007. Указанный лист перемещается и книга сохраняется по указанному пути.
Попробуйте в новой книге выполнить макрос
Код:
Sub qq()
    Sheets("Лист1").Move: Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:="C:\Счета к оплате\" & Format(Now, "dd_mm_yyyy_hh_nn_ss") & ".xls"
    Application.DisplayAlerts = True: ActiveWorkbook.Close False
End Sub
Если все будет работать правильно, то похоже, что для решения Вашей проблемы, без примера файла не обойтись.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование строк в StringGrid nulyjarden Помощь студентам 4 30.04.2011 13:09
Копирование строк Tim24 Microsoft Office Excel 19 17.12.2010 07:46
копирование строк kakawkin Microsoft Office Access 2 24.06.2010 01:22
Копирование строк Mikola Общие вопросы Delphi 8 21.09.2007 17:21