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

Страницы: 1 2 След.
цикл не работает,- должно удалять правее(столбцы Е и F) от названия два(или больше) пустых столбцов
 
Цитата
vikttur написал:
Предложите название темы, отражающее задачу. Модераторы заменят
извините, я один раз уже предложил изменить название темы, - так меня забанили.я уж лучше промолчу. Да и название перврначальное точно соответствует теме. Просто мечник тут всё объяснил, и тема вроди поменялась, но это только внешне. Изначально всё осталось на своих местах.
Изменено: Советник I категории - 06.03.2020 14:51:35
цикл не работает,- должно удалять правее(столбцы Е и F) от названия два(или больше) пустых столбцов
 
Mershik, вот про Union
Цитата
Mershik написал:
тут почитайте
да, прочитал, всё таки Union не совсем "катит"...ну, ладно, хоть узнал тему немного, спасибо! хотя меня поставщики просто задолбали своими фантазиями,- только наладил работу, раз! и добавили два столбца, причем  пустые!! а просто так их не удалишь- снизу и сверу есть данные, которые нужны, их нужно теперь сдвигать, только и занимаюсь тем,  делаю одни "заплатки".

Да, и вот здесь, в Вашем коде, строка 15 осталась: ilastcolumn = Cells(15, Columns.Count).End(xlToLeft).Column
я поменял, типо так:
Код
a = Cells.Find("Наименование товара").row 'строка начала таблици
ilastcolumn = Cells(a, Columns.count).End(xlToLeft).Column
Изменено: Советник I категории - 06.03.2020 14:58:14
цикл не работает,- должно удалять правее(столбцы Е и F) от названия два(или больше) пустых столбцов
 
Mershik, спасибо! а что означает вот эта строка кода: Set d = Union(d, Cells(k2, i))
цикл не работает,- должно удалять правее(столбцы Е и F) от названия два(или больше) пустых столбцов
 
нет, шапка будет в разной строке.
цикл не работает,- должно удалять правее(столбцы Е и F) от названия два(или больше) пустых столбцов
 
Mershik, мне нужна именно привязка к названию шапки таблицы("Наименование товара"), именно после названия правее мне нужно смотреть пустые столбцы. А так да, всё работает, как Вы сделали.
-ну и начало таблицы будет не всегда в одним месте.
Изменено: Советник I категории - 06.03.2020 13:35:14
цикл не работает,- должно удалять правее(столбцы Е и F) от названия два(или больше) пустых столбцов
 
Mershik, в данном случае удолять пустые столбцы Е и F сразу, а не по-одному как сейчас. Макрос должен смотреть правее от названия "Наименование товара", и если есть пустой столбец- удолять, пока не закончатся пустые столбцы.
цикл не работает,- должно удалять правее(столбцы Е и F) от названия два(или больше) пустых столбцов
 
прилагаю файл, с кодом и примером. где я там накосячил, поясните пожалуйста немощному. сам макрос вот он, если кто сразу может пояснить тему:
Код
Sub заголовок()

'макрос ищет слово "Наименование товара" и проверяет правее: пусто там или нет, если будет пусто, удоляем правее все пустые столбцы

Dim a As Variant
Dim n As Variant
Dim rCell  As Variant
Set rCell = Cells.Find("Наименование товара")

For Each a In rCell   ' вот здесь я замутил цикл, он работает только один раз.

If rCell.Offset(0, 1).Resize(1, 1) = "" Then

a = rCell.Offset(0, 1).Resize(1, 1).Column
Columns(a).Delete
End If
Next
End Sub
Пропустить открытые файлы в цикле по файлам
 
МатросНаЗебре, смотрите в коде:
Код
Dim flag As Boolean
    For Each myFile In myFolder.Files
        flag = True
        For Each bk In Workbooks
            If bk.Name = myFile.Name Then
                flag = False
                Exit For
            End If
        Next bk
        If flag Then
            'Ваш код    
            ' Я ПОДСТАВИЛ ПЕРЕХОД К МЕТКЕ:
          GoTo metka_NextFile   

        End If
    Next myFile
.ошибка та же: файл не иницианилизирован.
если ничего не вставлять после  If flag Then, то макрос просто обратывает открытый файл. а нужно, чтобы пропускал.
Изменено: Советник I категории - 25.02.2020 14:12:20
Пропустить открытые файлы в цикле по файлам
 
вот фрагмент кода, если после If bk.name = myFile.name Then вставить   Next myFile, то выдает ошибку, что файл не инициализирован
Код
    For Each myFile In myFolder.Files
        For Each bk In Workbooks
            If bk.FullName <> ActiveWorkbook.FullName Then
                If bk.name = myFile.name Then
               
                'ВОТ ТУТ ПОПЫТАЛСЯ ВСТАВИТЬ переход к следующему файлу, не прокатывает так((:   

               Next myFile

                   
                End If
            End If
        Next bk
    Next myFile
можете помочь в этом деле? спасибо.
Сами открытые файлы, и должны быть открыты, это означает, что они уже обработаны.
Насколько я понимаю, просто так открытый файл нельзя пропустить, как , например с расширением ненужным?
Изменено: Советник I категории - 25.02.2020 13:03:06
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Переместите End If выше - перед Dir = avFiles
я всегда верил в вас! спасибо!!!ура.

кайф полный в этой жижни хоть сегодня.
Изменено: Советник I категории - 14.02.2020 14:13:30
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
расширение файла не .xls,
таки, вроде .xls ясно написано... что не так????
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
макрос не выполняет вычисления, а только проверяет наличие букв в названиии,
затем:смотрит проверку расширения;
затем переходит сразу к End If и так по кругу . видимо:
 
Изменено: Советник I категории - 14.02.2020 14:05:58
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Т.е. цикл так и должен был остаться:
я так и делал раньше, как в коде, который вы сейчас выложили: макрос виснет, после нажатия на Esc кажет вот это:
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
Дмитрий(The_Prist) Щербаков, теперь понятно,- вы правы,- так и есть, останавливается(хотя расширение xlsx я не использую); но, проблема в том что не могу ваше условие поставить в код: либо зависает, либо ругается на отсутствие "Do" может подсткажете куда вставить ваше условие? сам код вот он:
Код
спецификация:
 Do While Right(LCase(avFiles), 4) = ".xls" ' зе пирст дал
    'Do While avFiles <> "" - оригинал
     'Do While LCase(avFiles) Like "*.xls" - это я мастырил
   
 '====================================
 'Правильнее будет после этой строки
 'Do While avFiles <> ""
 'добавить условие
 'If Right(LCase(avFiles), 4) = ".xls" Then
'обработка файла
  'End If
 '======================================
        If sActWB <> avFiles Then
            Workbooks.Open sPath & avFiles, False
        End If
        bCnt = False
        With Sheets(sShName1)
            avArr = .UsedRange.Value
            'Итоги по суммам
            lc = Find_Col(avArr, sFndStr)
            lr = .Cells(.Rows.Count, lc - 1).End(xlUp).Row + 1
            For li = 5 To 1 Step -1
            
                If li = 1 And avArr(lr, lc - alStep(li - 1)) = 0 Then
             
                    bCnt = True
                Else
                    adblSums(li) = adblSums(li) + avArr(lr, lc - alStep(li - 1))
                End If
            Next li
            'Итоги по Кол-во мест:
            lc = Find_Col(avArr, sFndCntStr) + 1
            lr = .Cells(.Rows.Count, lc - 1).End(xlUp).Row
            If bCnt Then
                adblSums(1) = adblSums(1) + avArr(lr, lc) + avArr(lr, lc + 1)
            Else
                dblCntSum = dblCntSum + avArr(lr, lc) + avArr(lr, lc + 1)
            End If
        End With
        If sActWB <> avFiles Then ActiveWorkbook.Close 0
        avFiles = Dir
        
    Loop
     
    'подводим суммы в текущем файле
   
    With Workbooks(sActWB).Sheets(sShName1)
  
        avArr = .UsedRange.Value
        'заносим результаты суммирования на лист
        lc = Find_Col(avArr, sFndStr)
        lr = .Cells(.Rows.Count, lc).End(xlUp).Row + lRowsCnt_UnderLastRow
        For li = 1 To 5
            With .Cells(lr, lc - alStep(li - 1))
                .Value = adblSums(li)
                .EntireColumn.AutoFit
                .Borders.Color = -4165632: .Borders.Weight = xlThin
                .Interior.Color = 12040422
                If li < 3 Then .NumberFormat = ""
            End With
        Next li
        With .Cells(lr, lc - alStep(0)).Offset(, -3).Resize(, 13)
            .Font.ColorIndex = 3: .Font.Size = 18: .Font.Bold = True
        End With
        With .Cells(lr, lc - alStep(0)).Offset(, -3)
        .Value = "сумма инвойсов:"
        End With
        'lc = Find_Col(avArr, sFndCntStr) + 1
'        lc1 = Find_Col(avArr, sFndCntStr) - 3
      '     lc = "сумма инвойсов"
'        With .Cells(lr, lc)
'            .Value = dblCntSum
'            .EntireColumn.AutoFit: .NumberFormat = ""
'            .Borders.Color = -4165632: .Borders.Weight = xlThin
'            .Interior.Color = 12040422
'        End With
    End With
   
    Call Check.Main
     '11. Прокрутка экрана к концу талбицы:
    prokrutka
    Application.ScreenUpdating = 1
End Sub
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Цитата
Советник I категории  написал:Do While LCase(avFiles) Like "*.xls"думаю, это не совсем правильно. По факту - до первого файла с нужным расширением.
по факту всё суммирует: 6 инвойсов в папке подсчитано(суммы вашего макроса, - верхние), а ненужный пропущен:
Изменено: Советник I категории - 14.02.2020 13:16:24
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
класс!
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
If right(lcase(avFiles),4)
цифра 4 что означает? Не подскажете?
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
P.S. какой-то уж очень знакомый код..
Вы прям помните??? это было в 13 году,- как можно помнить!!?? столько времени прошло, не реально же......
-я через два дня как в первый раз смотрю на код.....
Изменено: Советник I категории - 14.02.2020 11:45:44
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
походу решение выглядит таким образом, старый вариант:
Код
Do While avFiles <> ""  
я поменял на вот такой:
Код
Do While LCase(avFiles) Like "*.xls"
после чего больше не выдает ошибки на присутствие в папке файлов со сторонним расширением.
привет The Pirsty! , - твой макрос живёт и развивается)
Изменено: Советник I категории - 14.02.2020 11:42:09
как пропустить файл с расширением .xlsm, если в коде указано, что работаем с расширением: avFiles = Dir(sPath & "*.xls")??
 
Здравтсвуйте! Прошу помощи, в вопросе того, что макрос обращается к файлу с расширением .xlsm, хотя в коде я явно указал, что работаем с расширением .xls и по идее расширение .xlsm ДОЛЖЕН пропускать, но почему-то такого нет, сама часть кода выглядит так:
Код
Sub Main(control As Office.IRibbonControl)
Dim avFiles, sPath As String, li As Long, le As Long, lr As Long, lc As Long
.................
avFiles = Dir(sPath & "*.xls")  -вот тут задал расширение 

но далее все-равно открывает файл c расширением *.xlsm, почему не пропускает его? как избежать открытия ненужного расширения?? как его задать ещё?
проблема, как я понимаю, что макрос в этом месте работает с любым расширением: Do While avFiles <> ""... как можно уточнить расширение?
Изменено: Советник I категории - 14.02.2020 11:26:50
при запуске макроса ВДРУГ стала создаваться копия надстройки с расширением .xlsm, в той же папке, откуда запущен файл
 
 Андрей_26, я прекрасно знаю правила размещения объявлений. Про ясновидение мне можно не объяснять. Я спрашиваю именно "навсидку" , может у кого была подобная проблема, тем более, что не у меня лично была проблема, и воспроизвести её я больше не могу. Единственно на что грешу-может какие свойства папки были особые?? потому-что всё закончилось, когда поменял папку. А макросам в надстройке от 9 лет там работает и ничего подобного не было раньше.
============================================================­=========================
Могу даже уточнить вопрос: в каком случае может  самопроизвольно создаваться файл с именем надстройки с расширением .xlsm, если ничего подобного в коде вообще нет??
Изменено: Советник I категории - 07.02.2020 12:36:06
при запуске макроса ВДРУГ стала создаваться копия надстройки с расширением .xlsm, в той же папке, откуда запущен файл
 
Здравствуйте,

При запуске макроса ВДРУГ стала создаваться копия надстройки с расширением .xlsm. Причем когда я папку, откудова запускал файл, поменял,- всё стало нормально и больше не повторялось это безобразие и также в изначальной папке.
Может кто знает причины такого неспортивного поведения надстройки?? У меня впервые такое встречается. :cry:  
Количество файлов в папке с указанным расширением.
 
Цитата
Все_просто написал:
Можно без лишних объектов:
вот, по этим мотивам сделал макрос вставляющий строки сверху шапки в зависимости от кол-ва файлов в папке:
Код
' проверяем кол-во файлов в папке, и если их больше возможного- вставляем строки
' чтобы неналазило на таблицу
Sub ВставкаСтрок()
    Dim counter
    Dim fn
    Dim myFSO As Object, myFolder As Object, myFile As Object
    
    
    If ActiveSheet.Name = "спецификация" Then
     Set c_naim = ActiveSheet.Cells.Find(what:="Наименование товара", LookAt:=xlWhole)
        naim_row = c_naim.Row
      End If
      
      
     '3. Создание объекта для работы с папками и файлами.
    Set myFSO = CreateObject(Class:="Scripting.FileSystemObject")
 
    ChDir myFSO.GetFolder(ActiveWorkbook.Path)
    
    fn = Dir("*.xls")
    counter = 0
     
    While Len(fn) > 0
     
    counter = counter + 1
    fn = Dir()
    Wend
    ' счётчик файлов: counter
    'макс. возиможное колическтво: naim_row - 6
    'сколько строк вставляем: counter - naim_row - 6  
    
    
    'eсли макс возможное меньше или равно счетчику:
    
   If naim_row - 6 <= counter - 1 Then
   
   
   ' то сумма строк будет равна :
            counter_ins_row = counter - (naim_row - 6)
            For i = 1 To counter_ins_row
                Rows(naim_row).Insert
            Next
        End If       
   ' Stop
End Sub


Все_просто, спасибо за идею, выручили сильно,- спасибо! чмоки)
зы: только этот макрос отдельно не запускался из другого, писал: "отсутствует макрос такойто..."... пришлось вписать в основной.
Изменено: Советник I категории - 24.01.2020 12:11:46
надстройка не запускается,- виснет при открытии, сегодня сидел-ковырялся-тестировал, с утра всё работало, вдруг- бац, нажимаю на кнопку и сообщение: макросы отключены,и.т.д.
 
Цитата
Юрий М написал: вроде
спасибо!

Цитата
Nordheim написал: хранилище нужно переместить вне надстройки
уже был момент, когда листы-надстройки лежали на сервере,- так мне не нравилось...
-ну, сейчас буду думать над этим...не знаю. Интерестно, сколько будет стоить переписать в коде порядка 10 листов-надстроек на сервер???

Цитата
doober написал: Компилятор вешается
что же делать-то?...
Изменено: Советник I категории - 21.01.2020 17:40:14
надстройка не запускается,- виснет при открытии, сегодня сидел-ковырялся-тестировал, с утра всё работало, вдруг- бац, нажимаю на кнопку и сообщение: макросы отключены,и.т.д.
 
doober, ладно, спасибо за экспертизу, хоть знать буду тему теперь.. но, ведь вроди до 6 метров мне ещё далеко???
Изменено: Советник I категории - 21.01.2020 16:00:22
надстройка не запускается,- виснет при открытии, сегодня сидел-ковырялся-тестировал, с утра всё работало, вдруг- бац, нажимаю на кнопку и сообщение: макросы отключены,и.т.д.
 
Цитата
doober написал:
По опыту-6 метров является пределом нормальной работы
да ладно((((( из-за этого???? ТОЧНО???? Там же листы-надстройки много весят, они тоже влияют на работу????
Изменено: Советник I категории - 21.01.2020 15:51:35
надстройка не запускается,- виснет при открытии, сегодня сидел-ковырялся-тестировал, с утра всё работало, вдруг- бац, нажимаю на кнопку и сообщение: макросы отключены,и.т.д.
 
doober, скинул
надстройка не запускается,- виснет при открытии, сегодня сидел-ковырялся-тестировал, с утра всё работало, вдруг- бац, нажимаю на кнопку и сообщение: макросы отключены,и.т.д.
 
нет запрета же я говорю: я тестировал новые модули, с утра было все нормально, потом это сообщение и надстройка вообще перестала ЗАПУСКАТЬСЯ, даже не открывается.
Изменено: Советник I категории - 21.01.2020 14:56:42
надстройка не запускается,- виснет при открытии, сегодня сидел-ковырялся-тестировал, с утра всё работало, вдруг- бац, нажимаю на кнопку и сообщение: макросы отключены,и.т.д.
 
это системное сообщение появлялось. Макросы были включены. я ссылку на скачиванеие в начале темы выложил, посмотрите пожалуйста!
Изменено: Советник I категории - 21.01.2020 14:28:48
надстройка не запускается,- виснет при открытии, сегодня сидел-ковырялся-тестировал, с утра всё работало, вдруг- бац, нажимаю на кнопку и сообщение: макросы отключены,и.т.д.
 
ну, ОПЯТЬ это уже народная присказка((
НАРОД! Выручайте! пожалуйста!!
Страницы: 1 2 След.
Наверх