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

Страницы: 1
Сохранние txt файла ANSI, Кнопка сохраняет файл в DOS кодировка
 
Воу, гениальность в простате! Спасибо, а я тут уже макросы тяп-ляпою
Сохранние txt файла ANSI, Кнопка сохраняет файл в DOS кодировка
 
Доброго времени суток. После смены программы в банке, она перестала воспринимать файлы в DOS-кодировке, только  ANSI. Что нужно добавить и куда чтобы он сохранял как нужно? Для работы используется библиотека StringToOem. Программа старая и писалась не мной объяснить используемые решение не смогу. Заранее спасибо за помощь.
Изменено: Cmehotron - 03.04.2019 08:20:47
Не получается вывести элементы словаря в ListBox
 
Эм, такой вопрос а как вот этот участок работает?
Код
     pp = Chr(255) & Chr(255) & Chr(255) & Chr(255)
    Else
     pp = -9999999999#
Не получается вывести элементы словаря в ListBox
 
Смотрю в код и вижу недостаток образования, не мой уровень, пустые поля без фамилию считать думаю вообще не надо считывать, а кликабельный комбобокс нужен по любому, если за месяц такой отчет будет очень большим и другие люди будут глаз мылить.  
Не получается вывести элементы словаря в ListBox
 
Нет событие не важно, там регистрируется сбои энергии, отказы и прочее, этот аппарат не той стороной установили просто. Почитаем ваше решение.
Изменено: Cmehotron - 18.12.2017 08:22:57
Не получается вывести элементы словаря в ListBox
 
вот такая конструкция работает, но это не слишком?
Код
    Dim u
    Dim ttt As Date
    Dim dd As Date   
        u = sl.keys
        For r = 0 To UBound(u)
            dd = (u(r))
            ttt = sl(u(r)) - slo(u(r))
            ListBox1.AddItem dd & " - " & ttt
        Next r

Изменено: Cmehotron - 15.12.2017 11:22:23
Не получается вывести элементы словаря в ListBox
 
oldy7 не это проверка, наличие фамилии, при инициализации просто в ComboBox забивается фамилии, и отсекаются пустые, и повторяющиеся; после просто при выборе из него фамилия просматривается все данные к этой фамилии.

Андрей VG в моем 2010 такой вариант выдаёт такой результат
Не получается вывести элементы словаря в ListBox
 
Загружаются  как Data, а в 2010 работать такой метод будет?
Код
    Dim m(), r

Private Sub ComboBox1_Click()
    Dim ti, d As Double, s$, t As Double, sl: Set sl = CreateObject("Scripting.Dictionary")
    Dim tt, slo: Set slo = CreateObject("Scripting.Dictionary")
    
                Dim a, b, c, f, e As Date
                Dim p As Boolean
    
    spis.Clear
    ListBox1.Clear
    
    If Len(ComboBox1.Text) > 0 Then
        ti = ComboBox1.Text
                a = 0 'вход
                b = 0 'выход
                c = 0 'сумма промежуточная
                f = 0 'на экран сумма
        For r = UBound(m) To 4 Step -1
            If m(r, 8) = ti Then
                d = DateValue(m(r, 2))
                t = m(r, 3)
                s = m(r, 4)
                                                           
                If s = "Вход" Then
                    If a > 0 Then
                        If Not c = 0 Then
                            a = m(r, 3)
                            c = 0
                            p = False
                        End If
                    Else
                            a = m(r, 3)
                            f = f + c
                            c = 0
                            p = False
                    End If
                End If
                
                If s = "Выход" Then
                    If b > 0 Then
                        If Not c = 0 Then
                            If Not a = 0 Then
                                  b = m(r, 3)
                            End If
                        End If
                    Else
                        If Not a = 0 Then
                            b = m(r, 3)
                        End If
                    End If
                End If
                
                If Not a = 0 And Not b = 0 Then
                    If p Then
                        c = (b - a) - c  'Если второй выход и далее
                        b = 0
                    Else
                        c = c + (b - a)
                        b = 0
                        p = True
                    End If
                End If
                f = f + c
            End If
            If sl.exists(d) Then
                sl(d) = f
            Else
                sl(d) = f
                f = 0
            End If
        Next r
            For i = 1 To sl.Count
                ListBox1.AddItem sl.Item(i)
            Next i
    End If
End Sub

Private Sub UserForm_Initialize()
    Dim lr, t, sl: Set sl = CreateObject("Scripting.Dictionary")
    With Worksheets("Лист1")
        lr = .Cells(.Rows.Count, 2).End(xlUp).Row
        m = .[a1].Resize(lr, 8).Value
        
        ComboBox1.Clear
        For r = 4 To lr
            t = m(r, 8)
            If Len(t) > 0 Then
                If Not sl.exists(t) Then
                    sl(t) = 1
                    ComboBox1.AddItem t
                End If
            End If
        Next r
        
        
    End With
End Sub

Не получается вывести элементы словаря в ListBox
 
oldy7 ваш вариант работает, а не подскажите почему в моем варианте выдавал пустые  Items ?
Не получается вывести элементы словаря в ListBox
 
Код
                  If Not a = 0 And Not b = 0 Then
                    If p Then
                        c = (b - a) - c  'Если второй выход и далее
                        b = 0
                    Else
                        c = c + (b - a)
                        b = 0
                        p = True
                    End If
                End If
                f = f + c
            End If
            If sl.exists(d) Then
                sl(d) = f
            Else
                sl(d) = f
                f = 0
            End If
        Next r
            For i = 1 To sl.Count
                ListBox1.AddItem sl.Item(i)
            Next i
    End If
End Sub

Сюда помещаете?
Изменено: Cmehotron - 14.12.2017 14:51:33
Не получается вывести элементы словаря в ListBox
 
Такой вариант показывает пустой лист бокс,  хотя по коду должно находится хотя бы 0:00:00  и 8:00:00.
А если по изголяться и сделать так
Код
            Dim e as Data
            For i = 1 To sl.Count
                e = sl.Item(i)
                ListBox1.AddItem e
            Next i
то 12:00:00 появляется.
Изменено: Cmehotron - 14.12.2017 13:09:20
Не получается вывести элементы словаря в ListBox
 
В целом виде тут должен быть расчет сколько человек отработал, но промежуток не сутки а с 4 утра одного дня до 3 утра другого, написанный участок рассчитывает пары вход выход просто за сутки и должен выводить итог в ListBox после каждого дня, но он пишет ошибку, и я как то не могу понять что ему не так. Я с VBA работаю почти что в первый раз и возможно не вижу очевидного.
Ну и как можно на VBA разделить на подобные "смены" хотя бы в плане идеи тоже хотелось бы прочитать если есть какие мысли.
Страницы: 1
Наверх