Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 64 След.
Замена и добавление данных в нескольких файлах без их открывания
 
А если предположим имя листов МНОГО, то каждый просматривать? Вариант, что на другом листе найдет совпадение и отредактирует, не то что нужно.
Цитата
E l e n a написал:
Про индекс листа слышу первый раз.
К листу можно обращаться по разному:
-через имя
Код
Worksheets("Name")

-напрямую через имя объекта в VBAProject  
Код
Sheet1 либо Лист1
если у Вас свои имена то смотрите какие и обращаетесь непосредственно к ним.
-через индекс
Код
Worksheets(i)
где i это индекс (номер) листа по порядку в VBAProject.
"Все гениальное просто, а все простое гениально!!!"
Потеря знаков при приобразовании текста в число
 
А что мешает копировать как текст?
"Все гениальное просто, а все простое гениально!!!"
ВПР не работает, хотя искомое значение точно есть в таблице
 
Причиной является знак ~, убрал и все заработало.
"Все гениальное просто, а все простое гениально!!!"
Потеря знаков при приобразовании текста в число
 
А в чем смысл преобразования? т.е. чем не устраивает текст?
"Все гениальное просто, а все простое гениально!!!"
Объект не найден ядром СУБД Access, Объект не найден ядром СУБД Access
 
Цитата
БМВ написал:
Но мне кажется Елена в кросе уже помогла
Мне тоже так показалось, поэтому даже вникать не стал.  :D
"Все гениальное просто, а все простое гениально!!!"
Замена и добавление данных в нескольких файлах без их открывания
 
Цитата
E l e n a написал:
очень хотелось чтобы открывался лист или с конкретным именем
А имя листа во всех файлах одинаковое, или лист всегда имеет один и тот же индекс?
Изменено: Nordheim - 18 Окт 2018 08:19:28
"Все гениальное просто, а все простое гениально!!!"
Объект не найден ядром СУБД Access, Объект не найден ядром СУБД Access
 
Может в Selecte прописать, я не силен в SQL, на столько , что бы разобраться в Вашем файле. что и откуда вы тянете.
Вот это для меня загадка a.F1
"Все гениальное просто, а все простое гениально!!!"
Объект не найден ядром СУБД Access, Объект не найден ядром СУБД Access
 
А так?
Код
   Sub Список()
  
    Dim rst As Object
    Dim iconnection As Object
    Dim cnct$, iSelect$
    
    Application.ScreenUpdating = False
    
    Set rst = CreateObject("ADODB.Recordset")
    Set iconnection = CreateObject("ADODB.Connection")
    
    iSelect = "SELECT a.F1 AS col1 FROM [Список_1$] AS a UNION SELECT b.F1 AS col2 FROM [Список_2$] AS b ORDER BY col1"
    cnct = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=NO"""
    iconnection.ConnectionString = cnct
    iconnection.Open
    With rst
        .Open iSelect, iconnection
    End With
    Worksheets("Общий_список").Range("A2").CopyFromRecordset rst
    
    Application.ScreenUpdating = True
    MsgBox "Обработка данных завершена"
End Sub
Изменено: Nordheim - 17 Окт 2018 22:29:03
"Все гениальное просто, а все простое гениально!!!"
Получение уникального кода для товара
 
Проверьте так есть совпадения
Код
Private Sub CommandButton1_Click()
    Dim x&, i&, j&, ind&,temp$
    With ActiveCell
        temp = .Offset(, -1)
        For j = 1 To Len(temp)
            x = Asc(Mid(UCase(temp), j, 1))
            ind = ind + x * j + Val(Mid(UCase(temp), j, 1)) * x
        Next j
        ind = ind + Len(.Offset(, -1))
        .Value = ind
    End With
End Sub
Изменено: Nordheim - 16 Окт 2018 15:27:12
"Все гениальное просто, а все простое гениально!!!"
Получение уникального кода для товара
 
Цитата
OlegO написал:
Ругается на строку 66 и все тут  
У меня в посте 6 всего две строки, одна из них цитата. там нет ни кода ни строки 66
"Все гениальное просто, а все простое гениально!!!"
Получение уникального кода для товара
 
Цитата
OlegO написал:
К сожалению это не так, в реальном файле на ~ 3000 строк "склеек" совпадений было несколько десятков
т.е. при умножении на счетчик есть совпадения?
Цитата
OlegO написал:
взглянуть на предложение в посте №6
на что там смотреть , в этом посте только текст. и Можно реальный файл пример с совпадениями.
Изменено: Nordheim - 16 Окт 2018 14:21:20
"Все гениальное просто, а все простое гениально!!!"
Получение уникального кода для товара
 
Как вариант, это умножать на счетчик, т.е. как то так:
Код
Sub test()
    Dim i&, ind&
    Randomize
    For i = 1 To Len("проба")
        ind = ind + Asc(Mid(UCase("проба"), i, 1)) * i
    Next i
    ActiveCell = ind
 End Sub

Вероятность совпадения есть но тоже вроде минимальна. Единственное проблема (если это важно), то ID будут различаться количеством символов.
"Все гениальное просто, а все простое гениально!!!"
Получение уникального кода для товара
 
Цитата
OlegO написал:
то он в следующий раз, для той же строки прихода сформирует новый код, ведь так?
Совершенно верно. Дело в том что не зная всего алгоритма формирования файлов и дальнейшей работы с ними сложно придумать универсальную функцию присвоения ID.
И по ходу дела всплывают все новые нюансы.  :D. На сколько я понимаю, после того как сформировался ID, может появится такой новый файл, который нужно сверить с уже с уже существующим как раз по ID, а не заморачиваясь сцепкой? И в новом файле ID ,будет формироваться по тому же алгоритму , что и в первом?
Изменено: Nordheim - 16 Окт 2018 11:14:13
"Все гениальное просто, а все простое гениально!!!"
Получение уникального кода для товара
 
Цитата
Ts.Soft написал:
слова "проба" в первой строке и у слова "проба"
На сколько я понял автора совпадений в таблице нет, а вот сумма может совпасть , вроде как с этим пытаемся бороться (ну и с циклами). По идее второй строки с "проба", быть вообще не должно. А если повторения есть, то это просто тупик  8-0. Можно добавить проверку самого значения сцепки через словарь (коллекцию), на случай повтора, но это уже совсем танцы с бубнами.  :D
Изменено: Nordheim - 16 Окт 2018 09:09:25
"Все гениальное просто, а все простое гениально!!!"
Получение уникального кода для товара
 
OlegO, Может стоит попробовать умножать символы на число используя функцию
Код
RND()

как вариант

Код
Sub test()
    Dim i&, ind&
    Randomize
    For i = 1 To Len("проба")
        ind = ind + Asc(Mid(UCase("проба"), i, 1)) * CDbl(Rnd() * 1000)
    Next i
    ActiveCell = ind
 End Sub

думаю в этом случае вероятность если и есть то минимальна. Да и у Вас получится полноценный ID
"Все гениальное просто, а все простое гениально!!!"
Автозаполение с изменением первого числа в тексте
 
Макросом нужно решение?
"Все гениальное просто, а все простое гениально!!!"
Получение уникального кода для товара
 
Мне кажется если бы это было возможно то так же циклом, только цикл был бы "зашит" в библиотеке dll и визуально в коде мы бы его (цикл) не видели.
Даже если будет пробегать по тысяче символов (что маловероятно), то не думаю что это будет сильно заметно на скорости работы программы.
А для эстетики запилите функцию в модуль класса  и сделайте переменную для обращения к этой функции (передавая строку обработки параметром) , функция Вам вернет уже готовый код, для эстетики кода макроса самое оно, все как Вы хотели, в коде цикла не видно, а что там где-то, можно и не смотреть.  :D
Изменено: Nordheim - 15 Окт 2018 16:36:27
"Все гениальное просто, а все простое гениально!!!"
Получение уникального кода для товара
 
Цитата
OlegO написал:
НО все-таки, вопрос остается, возможно ли получить подобный УНИКАЛЬНЫЙ код иным образом, без циклов?
На счет эстетики понял, а чем циклы не устраивают?
"Все гениальное просто, а все простое гениально!!!"
Получение уникального кода для товара
 
Цитата
OlegO написал:
Или придется похоронить эту идею  
А в чем собственно идея этого кода? Чем сцепка не устраивает?
"Все гениальное просто, а все простое гениально!!!"
Перемещение по строкам листа с помощью кнопок на UserForm
 
Еще вариант с модулем класса.
"Все гениальное просто, а все простое гениально!!!"
Перемещение по строкам листа с помощью кнопок на UserForm
 
Так?
"Все гениальное просто, а все простое гениально!!!"
Конвертировать пакетно xls в xlsx
 
У Вас тема называется Конвертировать пакетно xls в xlsx
Цитата
evgeniygeo написал:
Мне необходимо было выполнить задачу по конвертации xls в xlsx в папке.На просторах интернета, нашел вот такой макрос.
Цитата
evgeniygeo написал:
Все отлично работает
Исходя из этого вы сами решили проблему. А вот прописать путь не выбором папки а из конкретной ячейки это уже совсем другой вопрос. Вопрос по сути не сложный, но придумывать название самому , что-то нет времени.
Изменено: Nordheim - 10 Окт 2018 16:02:56
"Все гениальное просто, а все простое гениально!!!"
Отрезок кода, сохраняющая новый файл в указанную папку
 
Я бы добавил переменную типа String и записал так:
Код
Dim iPath$
iPath = "C:\Users\aidyn.khalimbetov\Desktop\Ежедневник\Новая папка\Менеджеры\" 
wb.SaveAs  iPath & shMain.Range("c" & i) & " .xlsx", FileFormat:=xlOpenXMLWorkbook

Для моего глаза при чтении кода это более "удобочитаемо", чем строка скрытая за краем монитора   :D
Изменено: Nordheim - 10 Окт 2018 08:00:46
"Все гениальное просто, а все простое гениально!!!"
ПоискПоз через VBA
 
Я вроде пока не ослеп.
"Все гениальное просто, а все простое гениально!!!"
ComboBox выбор значений из списка соответствующих вводу
 
У вас привязка в свойствах ComboBox(а) к определенному диапазону    (B7:B67), а вы пытаетесь запихнуть в ComboBox другие данные. По моему из этого ничего не получится.
"Все гениальное просто, а все простое гениально!!!"
ПоискПоз через VBA
 
тут не используется конструкция With ....End With. поэтому не понятна точка перед  .Range
Код
c = .Range(Cells(3, 2), Cells(16, 2)).Find("x", LookIn:=xlValues)   
.
А тут
Код
If Not c Is Nothing Then
    MsgBox "!", vbCritical
    Exit Sub
End If

вообще найдя то что ищите, просто заканчиваете процедуру. Что-то, как-то не логично.
Изменено: Nordheim - 9 Окт 2018 21:06:23
"Все гениальное просто, а все простое гениально!!!"
ПоискПоз через VBA
 
А если значения в  первых столбцах  дублируются , то нужно во всех проставлять  или только в первом? покажите в файле примере как в итоге должно получиться. а то не понятен досконально алгоритм.
"Все гениальное просто, а все простое гениально!!!"
Макрос посылающий сообщение из Excel на почту
 
А что у Вас работает не так? Ошибки в коде или просто нужен макрос который запускает Ваш автоматически?
Ваш код немного видоизменил, а то без подключения библиотек не работает.
Код
Sub Auto_Open()
'   --------------------------------------------
    Dim olDate#, olApp As Object
    Dim olMail As Object, source_file$
'   --------------------------------------------
    Set olApp = CreateObject("Outlook.Application")
    Set olMail = olApp.CreateItem(olMailItem)
    source_file = ThisWorkbook.FullName
    olDate = Date + 30
    If Range("sheet2!a1") >= (Date - 3) Then Exit Sub
    With Sheet1
        .AutoFilterMode = False
        .Range("a1:B1").AutoFilter
        .Range("A1:B1").AutoFilter field:=2, Criteria1:="<=" & olDate
    End With
    If Range("sheet2!A2") <= 1 Then Exit Sub
    ThisWorkbook.Save
    With olMail
        .To = "test1@mail.ru"
        .Subject = "Overdue contracts"
        .Body = "Dear All, Please find attached Excel file with contracts to be overdue within 30 days"
        .Attachments.Add source_file
'        .Displey
        .Send
    End With
    Range("Sheet2!a1") = Date
End Sub
"Все гениальное просто, а все простое гениально!!!"
Программно прописать в combobox выбор элемента из списка
 
Честно говоря вообще не понял вопрос, но может так.
Изменено: Nordheim - 8 Окт 2018 08:11:35
"Все гениальное просто, а все простое гениально!!!"
Корректное удаление выбранной строки на листе через listbox
 
Честно говоря не понял, что именно работает не так?  Попробовал вроде все удаляет, что выбрал в ListBox.
"Все гениальное просто, а все простое гениально!!!"
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 64 След.
Наверх