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

Страницы: 1
Создание чека в Excel
 
Доброго времени суток! Продолжаю дальше работать над файлом "POS в Excel", при создании макроса, который отвечает за создание чека немного столкнулся с проблемой:
Сейчас чек формируется как на изображении слева, а нужно сделать, так как справа.
То есть чтобы "наименование" выпадало на 2 строки, а под "ценой" и "суммой" выпадала "скидка"
Пробовал по-разному, пока не получается. Вдруг кто неравнодушный знает, как это сделать.
Буду очень благодарен!!!
Файлы прикрепил
Скорость выполнения макроса
 
Добрый вечер! Есть файл в который добавил код ChangeInterface .  Работает с задержкой в первом файле, который содержит листы "СИСТЕМА" и "ЧЕК". А во втором, который без этих листов работает как надо.
Кто знает как это можно решить( удалять листы не вариант)?
Файлы прикрепил
Буду очень благодарен за помощь!!!
Изменено: Павел Павлов - 20.07.2024 22:36:19
Активировать TextBox в Userform
 
Всем здравствуйте!
Хочу автоматизировать проект, но столкнулся с проблемой.
1. Как выполнить данный макрос при вводе в TextBox1 в Userform (Пользователь), например одну из трех комбинаций: "1122" или "1321" или "1451" или ...
После одного из правильного варианта должна открыться Userform1
2. После запуска Userform1, нужно чтобы макрос ItmScan_Change работал как и при обычном запуске формы. Выгрузить форму Пользователь (Unload Me) куда только не пробывал ставить, не помогает!

Файл прилагаю

Если кто знает как это сделать, буду благодарен!
Заранее спасибо!
 
Изменено: Павел Павлов - 20.05.2024 00:27:31
Подсчет разницы через Vba
 
Добрый вечер, подскажите пожалуйста, как нужно исправить код чтобы заполнялись все ячейки?
На листе "РЕЕСТР ПРОДАЖ" после оплаты в столбце "J" должна считаться разница цен, считается только одна такая строка.
Часть кода которая отвечает за заполнение начинается с "For W = 3 to ...."
Файл прилогаю
Если кто знает как исправить буду благодарен
Код
Sub SubtractAllQuantities()
    Dim sheet1      As Worksheet: Set sheet1 = ThisWorkbook.Sheets("КАРТОЧКА ТОВАРА")
    Dim sheet2      As Worksheet: Set sheet2 = ThisWorkbook.Sheets("СИСТЕМА")
    Dim sheet3      As Worksheet: Set sheet3 = ThisWorkbook.Sheets("РЕЕСТР ПРОДАЖ")
    Dim lastRow1    As Long
    Dim rng As Range, X As Long
    lastRow1 = sheet1.Cells(Rows.Count, "A").End(xlUp).Row
    Dim lastRow2    As Long
    lastRow2 = sheet2.Cells(Rows.Count, "A").End(xlUp).Row
    Dim lastRow3    As Long
    lastRow3 = sheet3.Cells(Rows.Count, "E").End(xlUp).Row
    Dim I As Long, J As Long, W As Long, Y As Long
    Application.ScreenUpdating = False
    ' пройти по каждому ID номеру на втором листе
    For I = 2 To lastRow2

        ' пройти по каждому ID номеру на первом листе
        For J = 3 To lastRow1

            ' если ID номера совпадают, вычесть количество на втором листе из количества на первом листе
            If sheet1.Cells(J, "A").Value = sheet2.Cells(I, "A").Value And sheet2.Cells(I, "E").Value < sheet1.Cells(J, "D").Value And sheet2.Cells(I, "c").Value = sheet1.Cells(J, "H").Value Then
            sheet1.Cells(J, "C").Value = sheet1.Cells(J, "C").Value - sheet2.Cells(I, "D").Value * sheet1.Cells(J, "E").Value
            Else
            If sheet1.Cells(J, "A").Value = sheet2.Cells(I, "A").Value Then
                sheet1.Cells(J, "C").Value = sheet1.Cells(J, "C").Value - sheet2.Cells(I, "D").Value
                 If sheet1.Cells(J, "C").Value <> 0.001 Then
                sheet1.Cells(J, "C").Value = "0"
                End If
               
                Exit For
                
            End If
End If
        Next J

    Next I
    For X = 3 To lastRow1
    If sheet1.Cells(X, "C").Value < 0.001 Then
                sheet1.Cells(X, "C").Value = "0"
                End If
               Next X
               
     For W = 3 To lastRow1
     For Y = 4 To lastRow3
     If sheet1.Cells(W, "A").Value = sheet3.Cells(Y, "E").Value Then
     sheet3.Cells(Y, "J").Value = (sheet1.Cells(W, "D").Value - sheet1.Cells(W, "I").Value) * sheet3.Cells(Y, "G").Value
     Exit For
     End If
     Next Y
     Next W
    
  
    Application.ScreenUpdating = True
End Sub

Изменено: Павел Павлов - 28.03.2024 23:31:14
QR-код в эксель
 
Добрый вечер, доработал проект по созданию ценников, но не знаю как добавлять на них QR-Код. Приблизительно хочу так. А еще как объеденить ячейки как на фото?
Если кто знает помогите пожалуйста, буду очень благодарен!!!
Вот файл
Ценники в эксель
 
Добрый вечер!
Создан шаблон для печати ценников, работает отлично, только не знаю, как сделать,что бы количество ценников формировалось из соответствующего столбца. В данном случае это Столбец "В" на Листе "Товары".
Вот сам файл.
Если кто знает как это задействовать с помощью VBA, помогите пожалуйста!
Не дублировать строку
 
Всем добрый вечер, помогите пожалуйста.
Как сделать, чтобы после такой же строки не добавлялась такая же.
вот код если что
Код
Private Sub CommandButton1_Click()

AvailRow = Sheets("СИСТЕМА").Range("B999").End(xlUp).Row + 1
If Me.TextBox1 = "" Then Exit Sub
Set ITM = Sheets("КАРТОЧКА ТОВАРА").Range("A:A").Find(Me.TextBox1.Value, , xlValues, xlWhole)
If ITM Is Nothing Then
'do nothing
Else
'Add Itm in Boxes

ITMROW = ITM.Row
If Sheets("КАРТОЧКА ТОВАРА").Range("G" & ITMROW).Value <= Me.TextBox3.Text + 0 Then
введено.Show

Else
With Sheets("СИСТЕМА")
    newrow = .Range("A9999").End(xlUp).Row + 1
  Sheets("СИСТЕМА").Range("L3").Value = AvailRow
    .Cells(newrow, "A") = Me.TextBox1.Value
    .Cells(newrow, "B") = Me.Label1
    .Cells(newrow, "C") = Sheets("КАРТОЧКА ТОВАРА").Range("F" & ITMROW).Value
   
Sheets("СИСТЕМА").Cells(newrow, "D") = Sheets("КАРТОЧКА ТОВАРА").Range("e" & ITMROW).Value * Val(Me.TextBox3)
    
    .Cells(newrow, "D") = Me.TextBox3.Value
    .Cells(newrow, "E") = Sheets("КАРТОЧКА ТОВАРА").Range("D" & ITMROW) * Sheets("КАРТОЧКА ТОВАРА").Range("e" & ITMROW).Value
    .Cells(newrow, "F") = .Cells(newrow, "D") * .Cells(newrow, "E")
    On Error Resume Next
UserForm1.ListBox1.Column(2).TextAlign (1)
    UserForm1.ListBox1.RowSource = "ITTEM_NAME"
   
UserForm1.Label34 = Sheets("СИСТЕМА").Range("I1").Value
 Unload Me
 UserForm1.ItmScan.SetFocus
End With
End If
End If
End Sub
Изменено: Павел Павлов - 03.04.2023 21:36:26
Удаление строки в Listbox
 
Код
Private Sub CommandButton5_Click()
'   ---------------------------------
    Dim i&, j&, arr()
'   ---------------------------------
    For i = 0 To Me.ListBox1.ListCount - 1
        If Not Me.ListBox1.Selected(i) Then
            ReDim Preserve arr(j)
            arr(j) = Me.ListBox1.List(i)
            j = j + 1
        End If
    Next i
    Me.ListBox1.Clear
    Range("система").ClearContents
    If j = 0 Then Exit Sub
    Me.ListBox1.List = arr
    Range("система").Resize(j).Value = Application.Transpose(arr)
End Sub
Добрый вечер, не могу понять в чем ошибка
Может кто знает как исправить?
Перенос данных в Listview
 
Добрый вечер, подскажите как в этом файле, только не в Listbox, а в Listview  в userform1?
как закрепить формулу через VBA
 
Как закрепить формулу "округвверхмат" на диапазоне ячеек "А2:А99999 через vba?
Поиск через Userform
 
Добрый вечер, подскажите пожалуйста, что нужно исправить в коде чтобы при поиске ненайденого товара, высвыетился msgbox


Код
Private Sub CommandButton1_Click()itr = Sheets("ÊÀÐÒÎ×ÊÀ ÒÎÂÀÐÀ").Range("A2:D99999").End(xlUp).Row
 With Sheets("ÊÀÐÒÎ×ÊÀ ÒÎÂÀÐÀ")
      ListBox1.Clear


   If Len(TextBox1.Value) = 0 Then Exit Sub
   
   j = 0


   If Len(TextBox1.Value) = 1 Then
      For I = 3 To .Range("A3:B99999").End(xlUp).Row
          If UCase(Left(.Cells(I, 1), 2)) = UCase(TextBox1.Value) Then
             ListBox1.AddItem I
             ListBox1.LIST(j, 2) = .Cells(I, 2)
             j = j + 1
          End If
      Next


      If j = 1 Then .Cells(ListBox1.LIST(0, 0), 1, 2).Select
      Exit Sub
   End If




For I = 3 To .Cells(Rows.Count, 2).End(xlUp).Row
    If InStr(1, UCase(.Cells(I, 1)), UCase(TextBox1.Value)) > 0 Then
       ListBox1.AddItem I
       ListBox1.LIST(j, 0) = .Cells(I, 1)
       ListBox1.LIST(j, 1) = .Cells(I, 2)
       ListBox1.LIST(j, 2) = .Cells(I, 3)
        ListBox1.LIST(j, 3) = .Cells(I, 4)
       j = j + 1
    End If
    
    If InStr(1, UCase(.Cells(I, 2)), UCase(TextBox1.Value)) > 0 Then
       ListBox1.AddItem I
       ListBox1.LIST(j, 0) = .Cells(I, 1)
       ListBox1.LIST(j, 1) = .Cells(I, 2)
       ListBox1.LIST(j, 2) = .Cells(I, 3)
        ListBox1.LIST(j, 3) = .Cells(I, 4)
       j = j + 1
    End If
Next


End With






End Sub
Изменено: Павел Павлов - 31.03.2023 19:59:29
Изменение положения текста в отдельном столбце в Listbox
 
Добрый вечер, скажите пожалуйста!
Как в listbox только во втором столбце изменить положение текста?
Делимый товар в эксель
 
Добрый день, скажите пожалуйста как можно ускорить данную процедуру, чтобы не писать 1000 таких строк???
Код
If Me.TextBox3 = 1 Then Sheets("СИСТЕМА").Cells(newrow, "C") = Sheets("КАРТОЧКА ТОВАРА").Range("e" & itmrow).Value * 1
    If Me.TextBox3 = 2 Then Sheets("СИСТЕМА").Cells(newrow, "C") = Sheets("КАРТОЧКА ТОВАРА").Range("e" & itmrow).Value * 2
    If Me.TextBox3 = 3 Then Sheets("СИСТЕМА").Cells(newrow, "C") = Sheets("КАРТОЧКА ТОВАРА").Range("e" & itmrow).Value * 3
    If Me.TextBox3 = 4 Then Sheets("СИСТЕМА").Cells(newrow, "C") = Sheets("КАРТОЧКА ТОВАРА").Range("e" & itmrow).Value * 4
    If Me.TextBox3 = 5 Then Sheets("СИСТЕМА").Cells(newrow, "C") = Sheets("КАРТОЧКА ТОВАРА").Range("e" & itmrow).Value


если что вот файл
Изменено: Павел Павлов - 31.03.2023 21:14:23
Автоматическое списывание товара после продажи
 
Уважаемые пользователи, помогите пожалуйста с скриптом.
Нужно чтобы в Листе1(Карточка товара) автоматически списывалось кол-во после продажи из листа3(реестр продаж).
Изменено: Павел Павлов - 25.03.2023 21:36:38
Перенос данных с одного листа на другой
 
Не знаю, что не так написал, может кто-то знает как исправить
Буду благодарен!
Код
Private Sub CommandButton1_Click()
Dim LastItemRow As Long, FirstDBRow As Long, TotalRows As Long


With Sheets("СИСТЕМА")
LastItemRow = Range("A9999").End(xlUp).Row 'Last Item Row
  TotalRows = LastItemRow - 9 'Total Items
  FirstDBRow = Sheets("РЕЕСТР ПРОДАЖ").Range("A999999").End(xlUp).Row + 1 'First Avail Row
  Sheets("РЕЕСТР ПРОДАЖ").Range("A" & FirstDBRow & ":A" & FirstDBRow + TotalRows - 1).Value = .Range("M2").Value 'Receipt #
  Sheets("РЕЕСТР ПРОДАЖ").Range("B" & FirstDBRow & ":B" & FirstDBRow + TotalRows - 1).Value = .Range("M1").Value 'Order Date #
  Sheets("РЕЕСТР ПРОДАЖ").Range("C" & FirstDBRow & ":C" & FirstDBRow + TotalRows - 1).Value = "-" 'Cashier #
  Sheets("РЕЕСТР ПРОДАЖ").Range("D" & FirstDBRow & ":H" & FirstDBRow + TotalRows - 1).Value = .Range("A2:E" & LastItemRow).Value 'All Item Details
 
  On Error Resume Next
 
  On Error GoTo 0
 
   Unload ОПЛАТА


End With


End Sub
Изменено: Павел Павлов - 31.03.2023 21:16:08
[ Закрыто] Помогите с макросом!
 
Не знаю, что не так написал, может кто-то знает как исправить
Буду благодарен!

Private Sub CommandButton1_Click()
Dim LastItemRow As Long, FirstDBRow As Long, TotalRows As Long


With Sheets("СИСТЕМА")
LastItemRow = Range("A9999").End(xlUp).Row 'Last Item Row
  TotalRows = LastItemRow - 9 'Total Items
  FirstDBRow = Sheets("РЕЕСТР ПРОДАЖ").Range("A999999").End(xlUp).Row + 1 'First Avail Row
  Sheets("РЕЕСТР ПРОДАЖ").Range("A" & FirstDBRow & ":A" & FirstDBRow + TotalRows - 1).Value = .Range("M2").Value 'Receipt #
  Sheets("РЕЕСТР ПРОДАЖ").Range("B" & FirstDBRow & ":B" & FirstDBRow + TotalRows - 1).Value = .Range("M1").Value 'Order Date #
  Sheets("РЕЕСТР ПРОДАЖ").Range("C" & FirstDBRow & ":C" & FirstDBRow + TotalRows - 1).Value = "-" 'Cashier #
  Sheets("РЕЕСТР ПРОДАЖ").Range("D" & FirstDBRow & ":H" & FirstDBRow + TotalRows - 1).Value = .Range("A2:E" & LastItemRow).Value 'All Item Details
 
  On Error Resume Next
 
  On Error GoTo 0
 
   Unload ОПЛАТА


End With


End Sub
Изменено: Павел Павлов - 24.03.2023 14:03:40
Перевод в VBA
 
Как такое написать в эксель VBA??
Код
 var spreadsheet = SpreadsheetApp.getActive();
  var sdiapI = spreadsheet.getRange('I:I').getValues();//Считываем столбец I полностью
  var ui = SpreadsheetApp.getUi();
  
  for (var i = 0; i < sdiapI.length; i++) {
    if (sdiapI[i][0].length != 0) {
    var znach = sdiapI[i][0]; 


  znach= 'D'+znach;
  var nomstroki = spreadsheet.getRange(znach).getValue();
  var ostatok1 = nomstroki - 1;
вдруг, кто знает помогите пожалуйста!)
Заранее спасибо!)
Изменено: Павел Павлов - 31.03.2023 21:13:32
Списывание остатков
 
Добрый вечер
Кто может помочь со скриптом по "остатку товара" как на видео???
https://www.youtube.com/watch?v=lp8TgPeYHhY&t=644s&ab_channel=%D0%97%D0%92%D0%9A%D0%A2%D0%92
Нужно это сделать в эксель.
из файла
Чтобы из Листа1 столбец "кол-во" отнималось кол-во проданного товара с Листа3 столбец "кол-во" исходя по названию товара.
Пожалуйста, помогите. Вдруг кто-то уже так делал)
Заранее спасибо!)
Касса через Эксель
 
Можно ли так сделать только в эксель???
Кто знает помогите
https://www.youtube.com/watch?v=BmB9FvOizCA&t=310s&ab_channel=%D0%97%D0%92%D0%9A%D0%A2%D0%92
https://www.youtube.com/watch?v=lp8TgPeYHhY&t=644s&ab_channel=%D0%97%D0%92%D0%9A%D0%A2%D0%92
Страницы: 1
Наверх