Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Нумерация файла по порядку - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Нумерация файла по порядку (Макросы/Sub)
Нумерация файла по порядку
Asretyq Дата: Пятница, 19.10.2018, 14:15 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 153
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
добрый день
Может задача сложная, по крайне мере для меня и кажется очень сложной
Есть файлы в папке пронумерованные, и есть файл или несколько файлов без номера, нужно эти файлы пронумеровать по порядку (которые не имеют цифры с точкой вначале файла)
То есть порядок должен быть следующий после 4 номера
в файле есть наработки
К сообщению приложен файл: 8392380.xlsm(15.9 Kb)


Сообщение отредактировал Asretyq - Пятница, 19.10.2018, 14:20
 
Ответить
Сообщениедобрый день
Может задача сложная, по крайне мере для меня и кажется очень сложной
Есть файлы в папке пронумерованные, и есть файл или несколько файлов без номера, нужно эти файлы пронумеровать по порядку (которые не имеют цифры с точкой вначале файла)
То есть порядок должен быть следующий после 4 номера
в файле есть наработки

Автор - Asretyq
Дата добавления - 19.10.2018 в 14:15
Asretyq Дата: Пятница, 19.10.2018, 20:03 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 153
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Может использовать диапазон ячеек как вспомогательный этап? То есть преобразовать формулами в ячейках и потом заменить имя? как вы считаете?
 
Ответить
СообщениеМожет использовать диапазон ячеек как вспомогательный этап? То есть преобразовать формулами в ячейках и потом заменить имя? как вы считаете?

Автор - Asretyq
Дата добавления - 19.10.2018 в 20:03
Pelena Дата: Пятница, 19.10.2018, 20:31 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 13225
Репутация: 2909 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Здравствуйте.
После номера всегда точка есть?


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеЗдравствуйте.
После номера всегда точка есть?

Автор - Pelena
Дата добавления - 19.10.2018 в 20:31
Asretyq Дата: Пятница, 19.10.2018, 20:54 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 153
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, да хотелось бы. Хотя бы увидеть какой нибудь вариант с разграничителем, к примеру ")", "-" и т.п. Или хотя бы вообще увидеть вариант любой.
 
Ответить
СообщениеPelena, да хотелось бы. Хотя бы увидеть какой нибудь вариант с разграничителем, к примеру ")", "-" и т.п. Или хотя бы вообще увидеть вариант любой.

Автор - Asretyq
Дата добавления - 19.10.2018 в 20:54
Pelena Дата: Пятница, 19.10.2018, 21:10 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 13225
Репутация: 2909 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Я имела в виду у пронумерованных файлов всегда после номера точка? Если всегда, то такой вариант. Если в папке файлов больше 100, цикл по i можно увеличить
К сообщению приложен файл: 6091002.xlsm(18.2 Kb)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеЯ имела в виду у пронумерованных файлов всегда после номера точка? Если всегда, то такой вариант. Если в папке файлов больше 100, цикл по i можно увеличить

Автор - Pelena
Дата добавления - 19.10.2018 в 21:10
Asretyq Дата: Пятница, 19.10.2018, 21:32 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 153
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, отлично, я уже начинал думать, что это не реально. К сожалению не до конца решена задача. Если имеется 2 не пронумерованных файла, то нумерация задается одинаковой
 
Ответить
СообщениеPelena, отлично, я уже начинал думать, что это не реально. К сожалению не до конца решена задача. Если имеется 2 не пронумерованных файла, то нумерация задается одинаковой

Автор - Asretyq
Дата добавления - 19.10.2018 в 21:32
_Boroda_ Дата: Пятница, 19.10.2018, 21:59 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13514
Репутация: 5529 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Артур, а как должны называться файлы после переименования, если, например, изначально были такие
1.ффф
7.ыыы
22.ввв
ааа
ппп

Эта фраза вообще непонятна
порядок должен быть следующий после 4 номера


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеАртур, а как должны называться файлы после переименования, если, например, изначально были такие
1.ффф
7.ыыы
22.ввв
ааа
ппп

Эта фраза вообще непонятна
порядок должен быть следующий после 4 номера

Автор - _Boroda_
Дата добавления - 19.10.2018 в 21:59
Asretyq Дата: Пятница, 19.10.2018, 22:04 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 153
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, Извиняюсь что не корректно выразился
например в папке 5 файлов
1.rrr
2.yrr
3.dTr
Fds
Jhg
После обработки должны называться
1.rrr
2.yrr
3.dTr
4.Fds
5.Jhg
 
Ответить
Сообщение_Boroda_, Извиняюсь что не корректно выразился
например в папке 5 файлов
1.rrr
2.yrr
3.dTr
Fds
Jhg
После обработки должны называться
1.rrr
2.yrr
3.dTr
4.Fds
5.Jhg

Автор - Asretyq
Дата добавления - 19.10.2018 в 22:04
RAN Дата: Пятница, 19.10.2018, 22:08 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4884
Репутация: 974 ±
Замечаний: 0% ±

2010
Писать код не буду, шибко лениво, но алгоритм такой
Первым циклом определяем max в начале имени файла.
Вторым циклом добавляем к имени файла max+1 (если имя файла начинается не с числа)
При наличии файлов 1.a.jpg, 1.a.bmp, 1.a.xls алгоритм подлежит пересмотру.

PS забыл написать, что max, при применении, нужно увеличивать.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 19.10.2018, 22:13
 
Ответить
СообщениеПисать код не буду, шибко лениво, но алгоритм такой
Первым циклом определяем max в начале имени файла.
Вторым циклом добавляем к имени файла max+1 (если имя файла начинается не с числа)
При наличии файлов 1.a.jpg, 1.a.bmp, 1.a.xls алгоритм подлежит пересмотру.

PS забыл написать, что max, при применении, нужно увеличивать.

Автор - RAN
Дата добавления - 19.10.2018 в 22:08
_Boroda_ Дата: Пятница, 19.10.2018, 22:19 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13514
Репутация: 5529 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Asretyq, Я спрашивал вообще-то про другое. Сравните свой пример и мой
1-2-3 понятно, а как быть, если 1-7-22? Или, с учетом замечания Андрея, 1-7-22-22-22?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеAsretyq, Я спрашивал вообще-то про другое. Сравните свой пример и мой
1-2-3 понятно, а как быть, если 1-7-22? Или, с учетом замечания Андрея, 1-7-22-22-22?

Автор - _Boroda_
Дата добавления - 19.10.2018 в 22:19
RAN Дата: Пятница, 19.10.2018, 22:26 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4884
Репутация: 974 ±
Замечаний: 0% ±

2010
Саш, вообще-то, мой алгоритм предполагает создание такого списка
1.ффф
7.ыыы
22.ввв
23.ааа
24.ппп


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСаш, вообще-то, мой алгоритм предполагает создание такого списка
1.ффф
7.ыыы
22.ввв
23.ааа
24.ппп

Автор - RAN
Дата добавления - 19.10.2018 в 22:26
_Boroda_ Дата: Пятница, 19.10.2018, 22:29 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13514
Репутация: 5529 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так я ж не у тебя спрашиваю. Как твой алгоритм предполагает - это я прекрасно понимаю. А вот как автору вопроса нужно? Может, нужно незанятые номера использовать
1.ффф
2.ааа
3.ппп

7.ыыы
22.ввв
?
Или может так?
1.ффф
7.ыыы
22.ввв
22.иии
22.ггг
25.ааа
26.ппп


Или 7 переделать в 2, 22 переделать в 3, а необнумерованные пустить дальше - 4 и 5?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак я ж не у тебя спрашиваю. Как твой алгоритм предполагает - это я прекрасно понимаю. А вот как автору вопроса нужно? Может, нужно незанятые номера использовать
1.ффф
2.ааа
3.ппп

7.ыыы
22.ввв
?
Или может так?
1.ффф
7.ыыы
22.ввв
22.иии
22.ггг
25.ааа
26.ппп


Или 7 переделать в 2, 22 переделать в 3, а необнумерованные пустить дальше - 4 и 5?

Автор - _Boroda_
Дата добавления - 19.10.2018 в 22:29
Asretyq Дата: Пятница, 19.10.2018, 22:52 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 153
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, приведу пример с более разными названиями
1.rrr
2yrr
32.dTr
Fds
Jhg
25.ппп.txt
25.ппп.doxc

После обработки должны называться
1.rrr
2.2yrr
32.dTr
4.Fds
5.Jhg
25.ппп.txt
25.ппп.doxc

То есть если имеется цифра и после него точка - не меняется нумерация, даже если названия одинаковые, но расширение разное. Порядок нумерации появляется там где обрывается последовательность.
 
Ответить
Сообщение_Boroda_, приведу пример с более разными названиями
1.rrr
2yrr
32.dTr
Fds
Jhg
25.ппп.txt
25.ппп.doxc

После обработки должны называться
1.rrr
2.2yrr
32.dTr
4.Fds
5.Jhg
25.ппп.txt
25.ппп.doxc

То есть если имеется цифра и после него точка - не меняется нумерация, даже если названия одинаковые, но расширение разное. Порядок нумерации появляется там где обрывается последовательность.

Автор - Asretyq
Дата добавления - 19.10.2018 в 22:52
_Boroda_ Дата: Пятница, 19.10.2018, 22:54 | Сообщение № 14
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13514
Репутация: 5529 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А тройку куда дели? Почему (если по возрастанию написать) 1-2-4-5-25-25-32?
1.rrr
2.2yrr
32.dTr
4.Fds
5.Jhg
25.ппп.txt
25.ппп.doxc


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА тройку куда дели? Почему (если по возрастанию написать) 1-2-4-5-25-25-32?
1.rrr
2.2yrr
32.dTr
4.Fds
5.Jhg
25.ппп.txt
25.ппп.doxc

Автор - _Boroda_
Дата добавления - 19.10.2018 в 22:54
Asretyq Дата: Пятница, 19.10.2018, 22:57 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 153
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, точно, тройку пропустил
 
Ответить
Сообщение_Boroda_, точно, тройку пропустил

Автор - Asretyq
Дата добавления - 19.10.2018 в 22:57
_Boroda_ Дата: Суббота, 20.10.2018, 01:46 | Сообщение № 16
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13514
Репутация: 5529 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Тогда такой вариант
[vba]
Код
Sub iii()
    Dim Col As New Collection
    Dim Coln As New Collection
    put_ = ThisWorkbook.Path
    If Right(put_, 1) <> "\" Then put_ = put_ & "\"
    fn_ = Dir(put_)
    On Error Resume Next
    Do While fn_ <> ""
        If fn_ <> ActiveWorkbook.Name Then
            n_ = CInt(Left(fn_, InStr(Left(fn_, InStrRev(fn_, ".") - 1), ".") - 1))
            If Err Then
                Err.Clear
                Col.Add fn_ 'коллекция названий без номеров
            Else
                Coln.Add n_ 'коллкция имеющихся номеров
            End If
        End If
        fn_ = Dir
    Loop
    With Coln 'сортировка номеров в коллекции
        For i = 1 To .Count - 1
            For j = i + 1 To .Count
                If .Item(i) > .Item(j) Then
                    aaa = .Item(j)
                    .Remove j
                    .Add aaa, , i
                End If
            Next j
        Next i
        z_ = 0
        On Error GoTo A 'выход при нехватке файлов
        For i = 1 To .Count
            nom_ = .Item(i)
            If nom_ <> z_ + 1 Then
                For j = z_ + 1 To nom_ - 1
                    Name put_ & Col(1) As put_ & j & "." & Col(1)
                    Col.Remove 1
                Next j
                z_ = nom_
            Else
                z_ = z_ + 1
            End If
        Next i
    End With
    With Col 'оставшиеся файлы
        For i = 1 To .Count
            nom_ = nom_ + 1
            Name put_ & Col(1) As put_ & nom_ & "." & Col(1)
            .Remove 1
        Next i
    End With
A:
    MsgBox "Файлы пронумерованы"
End Sub
[/vba]
К сообщению приложен файл: 8976504.xls(60.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТогда такой вариант
[vba]
Код
Sub iii()
    Dim Col As New Collection
    Dim Coln As New Collection
    put_ = ThisWorkbook.Path
    If Right(put_, 1) <> "\" Then put_ = put_ & "\"
    fn_ = Dir(put_)
    On Error Resume Next
    Do While fn_ <> ""
        If fn_ <> ActiveWorkbook.Name Then
            n_ = CInt(Left(fn_, InStr(Left(fn_, InStrRev(fn_, ".") - 1), ".") - 1))
            If Err Then
                Err.Clear
                Col.Add fn_ 'коллекция названий без номеров
            Else
                Coln.Add n_ 'коллкция имеющихся номеров
            End If
        End If
        fn_ = Dir
    Loop
    With Coln 'сортировка номеров в коллекции
        For i = 1 To .Count - 1
            For j = i + 1 To .Count
                If .Item(i) > .Item(j) Then
                    aaa = .Item(j)
                    .Remove j
                    .Add aaa, , i
                End If
            Next j
        Next i
        z_ = 0
        On Error GoTo A 'выход при нехватке файлов
        For i = 1 To .Count
            nom_ = .Item(i)
            If nom_ <> z_ + 1 Then
                For j = z_ + 1 To nom_ - 1
                    Name put_ & Col(1) As put_ & j & "." & Col(1)
                    Col.Remove 1
                Next j
                z_ = nom_
            Else
                z_ = z_ + 1
            End If
        Next i
    End With
    With Col 'оставшиеся файлы
        For i = 1 To .Count
            nom_ = nom_ + 1
            Name put_ & Col(1) As put_ & nom_ & "." & Col(1)
            .Remove 1
        Next i
    End With
A:
    MsgBox "Файлы пронумерованы"
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 20.10.2018 в 01:46
Asretyq Дата: Суббота, 20.10.2018, 15:28 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 153
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, спасибо большое
работает как часы, надо изучить код
 
Ответить
Сообщение_Boroda_, спасибо большое
работает как часы, надо изучить код

Автор - Asretyq
Дата добавления - 20.10.2018 в 15:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Нумерация файла по порядку (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!