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

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

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

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

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

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

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

вот пробник
Вложения
Тип файла: rar пробник.rar (454.5 Кб, 9 просмотров)
MoHoMaXFR вне форума Ответить с цитированием
Старый 05.06.2011, 16:19   #13
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А откуда берется лист "счетчик(2)"? В исходной книге его нет. Чтобы он формировался где-то в процедуре, я не увидел.
При копировании листа "счетчик", в скобках указывается номер его копии. Поэтому, для того, чтобы обратиться к нему явно, нужно в процедуре "Private Sub CommandButton5_Click()" после строки
Код:
Sheets("счетик").Copy After:=Sheets(4)
вставить строку
Код:
ActiveSheet.Name = "счетик(2)"
естественно, предварительно убедиться, что другого листа с таким именем не существует. Еще лучше - использовать другое имя (без скобок).

Например, так:
Код:
Application.DisplayAlerts = False
On Error Resume Next: Sheets("abcd").Delete: On Error GoTo 0
Sheets("счетик").Copy After:=Sheets(4)
ActiveSheet.Name = "abcd"
И, соответственно, в дальнейшем коде, при обращении к листу, использовать это имя.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 05.06.2011 в 16:34. Причина: Добавлено
SAS888 вне форума Ответить с цитированием
Старый 05.06.2011, 16:34   #14
MoHoMaXFR
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 36
По умолчанию

так щас ещё раз ))) я хочу копировать лист счетчик. после чего вставить в него эти данные и переместить в новую книгу. тобишь в начале кнопки код
Код:
Sheets("счетик").Select
    Sheets("счетик").Copy After:=Sheets(4)
после чего вставляю данные и перемещаю
MoHoMaXFR вне форума Ответить с цитированием
Старый 05.06.2011, 16:36   #15
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите предыдущий пост. Я там добавил пояснение.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 05.06.2011, 17:13   #16
MoHoMaXFR
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 36
По умолчанию

SAS а можешь полностью код показать переделанный этой кнопки ?
Код:
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
MoHoMaXFR вне форума Ответить с цитированием
Старый 05.06.2011, 17:51   #17
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Код:
Private Sub CommandButton5_Click()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Application.DisplayAlerts = False
    On Error Resume Next: Sheets("счетчик_2").Delete: On Error GoTo 0
    Sheets("счетик").Copy After:=Sheets(4)
    ActiveSheet.Name = "счетчик_2"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    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
    ActiveWorkbook.SaveAs Filename:="C:\Счета к оплате\" & Format(Now, "dd_mm_yyyy_hh_nn_ss") & ".xls"
    ActiveWorkbook.Close False
    MsgBox "Сохранено в папке счета к оплате"
End Sub
P.S. Я не знаю, правильное ли будет обращение к листу Sheets(5).Activate ? Корректнее обращаться по имени. Но... Если это (как и в предыдущем случае) лист, полученный копированием, то имя ему потребуется задать явно.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 05.06.2011 в 17:56.
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