Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Макрос разделения столбцов на листы не работает в надстройке
 
msi2102, очень благодарен . сработала :)  
Макрос разделения столбцов на листы не работает в надстройке
 
У кого то есть варианты?
Макрос разделения столбцов на листы не работает в надстройке
 
Здравствуйте. Есть макрос который нормально работает. Но, я сам не понимаю зачем этот макрос не работает когда я добавляю его свой надстройку. Помогите пожалуйста. Заранее спасибо. примере module14
Код
Sub iSelectColumnForFilter()
Dim i As Long
Dim n As Integer
Dim Criterij As String
Dim iName As String
Dim Sht As Worksheet
Dim Sht_table As String
Dim iLastCol As Integer
Dim iSelectCol As Integer
Dim iLastRow As Long
Application.ScreenUpdating = False
  Application.DisplayAlerts = False          'îòêëþ÷åíèå ïðåäóïðåæäàþùèõ ñîîáùåíèé
   Sht_table = ActiveSheet.Name
    For Each Sht In ThisWorkbook.Worksheets  'óäàëÿåì âñå ëèñòû, êðîìå Sht_table
      If Sht.Name <> Sht_table Then Sht.Delete
    Next
  Application.DisplayAlerts = True
   iLastCol = Cells(1, Columns.Count).End(xlToLeft).Column  'ïîñëåäíèé ñòîëáåö
  iSelectCol = Application.InputBox("Âûáåðèòå íîìåð ñòîëáöà ôèëüòðàöèè", Type:=1)
  If iSelectCol > iLastCol Then MsgBox "Âûáðàííûé ñòîëáåö âûõîäèò çà äèàïàçîí ñòîëáöîâ": Exit Sub
  Set Sht = ThisWorkbook.Worksheets(Sht_table)
   iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
        Columns(iLastCol + 2).ClearContents
    Range(Cells(1, iSelectCol), Cells(iLastRow, iSelectCol)).AdvancedFilter Action:=xlFilterCopy _
                                  , CopyToRange:=Cells(1, iLastCol + 2), Unique:=True
        n = Cells(Rows.Count, iLastCol + 2).End(xlUp).Row
    For i = 2 To n          'öèêë ïî óíèêàëüíûì çíà÷åíèÿì âûáðàííîãî ñòîëáöà
        Criterij = Sht.Cells(i, iLastCol + 2)
        iName = Criterij    'èìÿ íîâîãî ëèñòà
       Sht.Range(Sht.Cells(1, 1), Sht.Cells(iLastRow, iLastCol)).AutoFilter iSelectCol, Criterij
        Sht.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy
        With Worksheets.Add(After:=Worksheets(Worksheets.Count))  'äîáàâëÿåò íîâûé ëèñò â êîíåö
          .Range(Cells(1, 1), Cells(1, iLastCol)).PasteSpecial xlPasteColumnWidths
          .Range(Cells(1, 1), Cells(1, iLastCol)).PasteSpecial xlPasteFormats
          .Range(Cells(1, 1), Cells(1, iLastCol)).PasteSpecial xlPasteValues
          Sht.AutoFilter.Range.AutoFilter
          .Name = iName
          .Range("A1").Select
        End With
    Next
Application.ScreenUpdating = True
   Sht.Activate
   Columns(iLastCol + 2).ClearContents
End Sub
разделить таблицу на листы
 
Сейчас это тоже попробую. ещё раз спасибо тебе Kuzmich.
разделить таблицу на листы
 
Сейчас дает такое ошибку :evil:
разделить таблицу на листы
 
debug, debug , debug :evil:  :(  
разделить таблицу на листы
 
Спасибо, очень благодарен Kuzmich.
Изменено: mk92 - 20.09.2019 10:02:26
разделить таблицу на листы
 
Да,азербайджанский язык. Я хотел исправить makros но не получился
разделить таблицу на листы
 
Там написано макрос. Но не работает,даёт debug :sceptic:  
разделить таблицу на листы
 
Существует таблица в первом листе (1st sheet). Эту таблицу надо разделить на страницы по регионам, например Москва в одном, Питер в другом листе и т.д. У меня на примере есть макрос (спасибо Kuzmich - у) но надо делать изменения. (дает дебуг)И  макросе можно так сделать чтобы там строки или столбцы тоже я сам определил. Потому что может быть этот макрос ещё понадобится мне в других книгах тоже. Заранее спасибо
Код
Sub iTown()
Dim i As Long
Dim n As Integer
Dim Criterij As String
Dim iName As String
Dim Sht As Worksheet
Application.ScreenUpdating = False
  Set Sht = ThisWorkbook.Worksheets("MH-2019")
        Columns("E").ClearContents
    Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy _
                                  , CopyToRange:=Range("E3"), Unique:=True
        n = Cells(Rows.Count, "E").End(xlUp).Row
    For i = 4 To n          'цикл по уникальным значениям
        Criterij = Sht.Cells(i, "E")
        iName = Criterij    'имя нового листа
       Sht.Range("A3:C" & Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter 3, Criterij
        Sht.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy
        With Worksheets.Add(After:=Worksheets(Worksheets.Count))  'добавляет новый лист в конец
          .Range("A1:C1").PasteSpecial xlPasteColumnWidths
          .Range("A1:C1").PasteSpecial xlPasteFormats
          .Range("A1:C1").PasteSpecial xlPasteValues
          Sht.AutoFilter.Range.AutoFilter
          .Name = iName
          .Range("A1").Select
        End With
    Next
Application.ScreenUpdating = True
End Sub

Изменено: mk92 - 21.09.2019 22:26:09
Макрос для автопечати с указанием количества
 
Sanja, Огромное спасибо тебе!
Макрос для автопечати с указанием количества
 
Там все листы пустые. Вроде бы там должен быть macros но я сейчас тоже посмотрел там нету я наверху тоже написал макрос который имел в виду. Там всё работает. Надо изменить только тот част там где написано for i to 2 на inputbox
Макрос для автопечати с указанием количества
 
Код
Sub ÀâòîÏå÷àòü()
'
' ÀâòîÏå÷àòü Ìàêðîñ
'
' Ñî÷åòàíèå êëàâèø: Ctrl+q
'
    
For i = 1 To 2
    
    Range("J2").Select
    ActiveCell.FormulaR1C1 = i
    Range("J2").Select

    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
        :=True, IgnorePrintAreas:=False

Next

'    Dim li As Long
'    With Sheets("Ìàêåò")
'        For li = 2 To Cells(Rows.Count, 1).End(xlUp).Row
'            .Range("M2").Value = Cells(li, 1)
'            .Calculate
'            .PrintOut Copies:=1
'        Next li
'    End With

End Sub
Наверху примере тоже есть (excel книге)
Макрос для автопечати с указанием количества
 
Здравствуйте! У меня вопрос по Macros . У меня ест Macros для автопечати но количество каждый раз я вынужден указать в языке VBA . Как мне сделать так чтобы при запуске Macros автоматически появился окно Input Box где бы я смог указать количество печати.
For i to X
Объединить данные двух листов с автоматической нумерацией строк
 
Огромное спасибо вам, RESPECT Anchoret
Объединить данные двух листов с автоматической нумерацией строк
 
Примерно вот так
Объединить данные двух листов с автоматической нумерацией строк
 
Только лист в overall. Ну когда всё закончится скорее всего Я  копирую лист другой книгу, чтоб потом добавить новые записи.
Изменено: mk92 - 13.03.2019 19:53:01
Объединить данные двух листов с автоматической нумерацией строк
 
Код
Sub aaa()
Dim sh As Worksheet, a&, b&, c&, arr(), aa As Range, x&
a = Sheets("overall").Index: ReDim arr(1 To Sheets.Count - a)
For b = 1 To UBound(arr): arr(b) = a + b: Next: b = 2
For a = arr(1) To arr(UBound(arr))
  Set sh = Sheets(a): c = sh.Cells(.Rows.Count, 2).End(xlUp).Row
  Set aa = sh.Range("B2:V" & "X1" & "Y2" & c): aa.Copy Sheets("overall").Cells(b, 2)
  b = b + aa.Rows.Count: x = x + aa.Rows.Count
Next
ReDim arr(1 To x): For a = 1 To x: arr(a) = a: Next
Sheets("overall").[A2].Resize(x, 1).Value = Application.Transpose(arr)
End Sub

Сделал такие изменений но ничего не получился.
Объединить данные двух листов с автоматической нумерацией строк
 
Я сейчас  загрузил пример. Макрос  который написали Вы попадает только B2 : V  . Как сделать чтоб из каждого листа в лист overall попадал  X1 и Y2 тоже . Это надо для познания . Каждом листе эти  ячейки может изменяется.
Изменено: mk92 - 13.03.2019 10:26:46
Объединить данные двух листов с автоматической нумерацией строк
 
Здравствуйте я ещё раз извиняюсь но у меня один вопрос к вам насчёт вчерашнего макроса.
Как сделать чтоб X1 тоже попался в лист overall в столбец W.
Заранее благодарю вас.
Объединить данные двух листов с автоматической нумерацией строк
 
Огромное спасибо вам !  :)  
Объединить данные двух листов с автоматической нумерацией строк
 
 на лист "overall" переносятся все данные без шапок с листов после него? - да
из com,com1,com2,com3 не надо объединить.
Я искренне извиняюсь но я не Русскоговорящи из-за этого полностью не понимаю вас(
Объединить данные двух листов с автоматической нумерацией строк
 
@Anchoret Извините я не понял что вы хотели сказать.
Объединить данные двух листов с автоматической нумерацией строк
 
Здравствуйте ! У меня вопрос о команде которую я ( друг помог) создал на языке VBA. Я не так уж хорошо в вба Прошу мне помочь с одной проблемой. Что сделать для того чтобы данные после 6 листа (6 включительно) были скопированы и скомбированы на листе 5 с учетом того чтобы при команде столбцы были выделени (я написал диапазон каждом листе) а строки пронумеровались автоматически. Заранее благодарю вас.
вба код
Код
Sub Combine()Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Combined"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
Изменено: mk92 - 13.03.2019 10:04:34
Как автоматически добавить в список имеющихся листов имя нового листа?, автоматически перемещение имя листа в другой листе по ячейкам
 
Большое Спасибо  Сергей.
Как автоматически добавить в список имеющихся листов имя нового листа?, автоматически перемещение имя листа в другой листе по ячейкам
 
Привет всем. Как нужно сделать для того чтобы , когда создаётся новый лист, имя листа автоматически попала в другой лист где хранятся все имена листов.Здесь такое дело у меня есть макрос когда зачисляется все операция можно отправить на новый лист. А таких листов будет много. Заранее спасибо.

когда создаётся новый лист,имя листа автоматически попала в home overall (A2, A3 ........)
Страницы: 1
Наверх