Всем доброго вечера. Подскажите пожалуйста, есть вопрос по файлу созданному ещё в 2011 в теме Excel, в вопросе 2-475-1. Очень замечательно им пользовался, но вот изменилась форма отчёта и ещё некоторые моменты и получилось... точнее перестало получаться, всё что до этого было замечательно! Есть несколько вопросов - просьб о помощи. Попробую по порядку. 1. Вопрос по макросу (ertert). Изменилась форма исходного отчёта - в названиях клиентов (лист "Отчёт", строка 25) отсутствует адрес, есть только код и название клиента. Я добавил лист "ОБК" с информацией по адресам, соответствующей 9-и значному коду. Можно ли поправить этот макрос так, чтобы на лист "Сводный" в строку 4 перемещались не названия клиентов с кодом, с листа "Отчёт", а соответствующее название с адресом, с листа "ОБК" (можно без кода)? Правда на листе "Отчёт, код 10-и значный, впереди за чем то добавлен 0 (ноль)(?).
PS: все таблицы сокращены для уменьшения размера файла.
Всем доброго вечера. Подскажите пожалуйста, есть вопрос по файлу созданному ещё в 2011 в теме Excel, в вопросе 2-475-1. Очень замечательно им пользовался, но вот изменилась форма отчёта и ещё некоторые моменты и получилось... точнее перестало получаться, всё что до этого было замечательно! Есть несколько вопросов - просьб о помощи. Попробую по порядку. 1. Вопрос по макросу (ertert). Изменилась форма исходного отчёта - в названиях клиентов (лист "Отчёт", строка 25) отсутствует адрес, есть только код и название клиента. Я добавил лист "ОБК" с информацией по адресам, соответствующей 9-и значному коду. Можно ли поправить этот макрос так, чтобы на лист "Сводный" в строку 4 перемещались не названия клиентов с кодом, с листа "Отчёт", а соответствующее название с адресом, с листа "ОБК" (можно без кода)? Правда на листе "Отчёт, код 10-и значный, впереди за чем то добавлен 0 (ноль)(?).
PS: все таблицы сокращены для уменьшения размера файла.kvadimod
Sub qqq() Dim i&, nr&, st& For i = 2 To Sheets("Отчёт").Cells(25, Columns.Count).End(xlToLeft).Column nr = Val(Left(Sheets("Отчёт").Cells(25, i), 10)) If nr > 0 Then st = WorksheetFunction.Match(nr, Sheets("ОБК").Range("A:A"), 0) Sheets("СВОДНЫЙ").Cells(4, i + 1) = Sheets("ОБК").Cells(st, 2) End If Next End Sub
[/vba]
Код чисто для переноса, должен работать. [vba]
Код
Sub qqq() Dim i&, nr&, st& For i = 2 To Sheets("Отчёт").Cells(25, Columns.Count).End(xlToLeft).Column nr = Val(Left(Sheets("Отчёт").Cells(25, i), 10)) If nr > 0 Then st = WorksheetFunction.Match(nr, Sheets("ОБК").Range("A:A"), 0) Sheets("СВОДНЫЙ").Cells(4, i + 1) = Sheets("ОБК").Cells(st, 2) End If Next End Sub
Упс... снова что то не пошло... После того, как обновил отчёт за неделю и количество клиентов увеличилось до 76, снова выдал ошибку в этоой строке [vba]
Код
st = WorksheetFunction.Match(nr, Sheets("ОБК").Range("A:A"), 0)
[/vba] Точнее он подставляет нужные значения как подожено, а потом выскакивает окно с ошибкой...
И может ещё подскажете, какого шрифта может не хватать? Русский шрифт в редакторе отображает "Îò÷¸ò"
Упс... снова что то не пошло... После того, как обновил отчёт за неделю и количество клиентов увеличилось до 76, снова выдал ошибку в этоой строке [vba]
Код
st = WorksheetFunction.Match(nr, Sheets("ОБК").Range("A:A"), 0)
[/vba] Точнее он подставляет нужные значения как подожено, а потом выскакивает окно с ошибкой...
И может ещё подскажете, какого шрифта может не хватать? Русский шрифт в редакторе отображает "Îò÷¸ò"kvadimod
Вадимка
Сообщение отредактировал kvadimod - Вторник, 18.02.2014, 09:19
Доброго Вечера, накомал макрос переносящий строку из листа в лист с удалением оригинала, а мне нужно что бы он только копировал (Только данные и вставлял как показано в Примере) вот сам код правда я его к файлу "Пример" не смог прикрутить вовсе
[vba]
Код
Private Sub Worksheet_Activate()
End Sub
'весь макрос переносит строку при 2-м клике в столбце "" на лист 2 с удалением оригинала на лист 1 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column <> 6 Then Exit Sub If Target <> "" Then Exit Sub Dim lr&, sh As Worksheet Set sh = Worksheets("Ком_Пред") lr = sh.Cells(sh.Rows.Count, 17).End(xlUp).Row Target = Date Target.EntireRow.Copy sh.Cells(lr + 1, 1) 'Target.EntireRow.Delete 'удаление строки при переносе Cancel = True
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Private Sub Worksheet_Calculate()
End Sub
[/vba]
файл Пример прилагается, буду благодарен любой помощи
Вопрос снят разобрался сам получилось так: [vba]
Код
Sub Ìàêðîñ1() Application.ScreenUpdating = False Dim LastRow As Long LastRow = Cells(Rows.Count, 12).End(xlUp).Row Range("$A$27:$L" & LastRow).AutoFilter Field:=12, Criteria1:="ÈÑÒÈÍÀ" Range("A2:O" & LastRow).SpecialCells(xlCellTypeVisible).Copy Sheets("Êîì_Ïðåä").[a16] Range("A14:K" & LastRow).AutoFilter Application.ScreenUpdating = True End Sub
[/vba]
Доброго Вечера, накомал макрос переносящий строку из листа в лист с удалением оригинала, а мне нужно что бы он только копировал (Только данные и вставлял как показано в Примере) вот сам код правда я его к файлу "Пример" не смог прикрутить вовсе
[vba]
Код
Private Sub Worksheet_Activate()
End Sub
'весь макрос переносит строку при 2-м клике в столбце "" на лист 2 с удалением оригинала на лист 1 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column <> 6 Then Exit Sub If Target <> "" Then Exit Sub Dim lr&, sh As Worksheet Set sh = Worksheets("Ком_Пред") lr = sh.Cells(sh.Rows.Count, 17).End(xlUp).Row Target = Date Target.EntireRow.Copy sh.Cells(lr + 1, 1) 'Target.EntireRow.Delete 'удаление строки при переносе Cancel = True
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Private Sub Worksheet_Calculate()
End Sub
[/vba]
файл Пример прилагается, буду благодарен любой помощи
Вопрос снят разобрался сам получилось так: [vba]
Код
Sub Ìàêðîñ1() Application.ScreenUpdating = False Dim LastRow As Long LastRow = Cells(Rows.Count, 12).End(xlUp).Row Range("$A$27:$L" & LastRow).AutoFilter Field:=12, Criteria1:="ÈÑÒÈÍÀ" Range("A2:O" & LastRow).SpecialCells(xlCellTypeVisible).Copy Sheets("Êîì_Ïðåä").[a16] Range("A14:K" & LastRow).AutoFilter Application.ScreenUpdating = True End Sub
По поводу крякозябр, пробовал править руками, копировать с другим шрифтом - не помогает, может с раскладкой чего, или какого шрифта не хватает...
Вопрос решён, если кому поможет в Tools=>Options=>Editor Format выбрать шрифт Courient New (Cyrilic), по умолчанию был Courient New (Western). После смены шрифта, все крякозабры стали очень даже понятным текстом.
По поводу крякозябр, пробовал править руками, копировать с другим шрифтом - не помогает, может с раскладкой чего, или какого шрифта не хватает...
Вопрос решён, если кому поможет в Tools=>Options=>Editor Format выбрать шрифт Courient New (Cyrilic), по умолчанию был Courient New (Western). После смены шрифта, все крякозабры стали очень даже понятным текстом.kvadimod