Страницы: 1
RSS
Как разбить страницы на отдельные листы, и присвоить им имя из определенной ячейки
 
Добрый день, в файле Excel подскажите как разбить страницы на отдельные листы, и присвоить им имя из определенной ячейки.  Или задача попроще как выделить макросом одну страницу, так как у них разное количество строк)?
 
А откуда Вы получили/выгрузили такой файл copy/paste ом
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
 
Цитата
vov86 написал:
присвоить им имя из определенной ячейки.
какая это ячейка?
Ну пока думаете, вот
Скрытый текст
Изменено: Sanja - 09.12.2024 12:37:37
Согласие есть продукт при полном непротивлении сторон
 
Спасибо ))) это круто все работает шикарно! и именно из той ячейки которая нужна)) понять бы мне как этот код работает, я только начал разбираться с макрасами.
 
Arturion, из 1с ТОиР
 
Я там немного обновил код. Что-бы в новых листах Сразу был страничный режим. Можно удалить номера в скобках после номера Акта (это было нужно для контроля количества актов)
Согласие есть продукт при полном непротивлении сторон
 
Sanja, удалил
Изменено: vov86 - 09.12.2024 13:33:16
 
Этот вопрос не относиться к заявленной Теме. Одна Тема - Один вопрос. Правила форума
Согласие есть продукт при полном непротивлении сторон
 
Sanja, пытался приладить этот крутейший код к этому файлу, но не получается присвоить имя из ячейки ГС-00004025, подскажите пожалуйста как работают эти функци?
Private Function GetSheetName(iRng As Range, N)
Dim rngAct As Range
Dim iTmp
On Error Resume Next
Set rngAct = iRng.Find(what:="ГС-0000", LookIn:=xlValues, LookAt:=xlPart)
If Not rngAct Is Nothing Then
 iTmp = Split(rngAct.Value, " ")
 GetSheetName = iTmp(0) & "_" & iTmp(2) & "_(" & N & ")"
End If
End Function

Sub DelSheets()
Dim iSh As Worksheet
Application.DisplayAlerts = False
For Each iSh In Worksheets
 If iSh.Name Like "ГС-0000*" Then iSh.Delete
Next
Application.DisplayAlerts = True
End Sub
Изменено: vov86 - 09.12.2024 13:35:09
 
Sanja,  решил как присвоить имя листу в другом файле с помощью этого кода  )) вставкой пробелов в ГС-00004025  и получилось ГС 0000 4025

как поправить код пока не понял)
 
Цитата
vov86 написал:
и получилось...
А как Вы хотите что-бы получилось? Так?
Код
Private Function GetSheetName(iRng As Range)
Dim rngAct As Range
Dim iTmp
On Error Resume Next
Set rngAct = iRng.Find(what:="ГС-0000", LookIn:=xlValues, LookAt:=xlPart)
If Not rngAct Is Nothing Then
  iTmp = Split(rngAct.Value, "-")
  GetSheetName = iTmp(0) & " " & Format(iTmp(1), "0000 ####")
End If
End Function
Изменено: Sanja - 09.12.2024 14:54:49
Согласие есть продукт при полном непротивлении сторон
 
Sanja, Спасибо большое, за код!!!
Страницы: 1
Наверх