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

Вход

Регистрация

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

 

= Мир MS Excel/Отобразить данные в зависимости от выбора номера счета - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отобразить данные в зависимости от выбора номера счета (Макросы/Sub)
Отобразить данные в зависимости от выбора номера счета
parovoznik Дата: Воскресенье, 12.12.2021, 17:53 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Добрый вечер.
Есть таблица учета выписанных счетов. На основании выписанного счета нужно оформить реализацию товара Проблема в том что есть счета в которых выписано несколько товаров. При выборе № счета в комбобоксе отображается номера двух счетов . Если выбирать значения в комбе ,то отображаются данные по первому товару, а КАК ОТОБРАЗИТЬ второй товар . (товаров бывает до 4 наименований в одном счете.)
К сообщению приложен файл: Test.xlsm (174.7 Kb)
 
Ответить
СообщениеДобрый вечер.
Есть таблица учета выписанных счетов. На основании выписанного счета нужно оформить реализацию товара Проблема в том что есть счета в которых выписано несколько товаров. При выборе № счета в комбобоксе отображается номера двух счетов . Если выбирать значения в комбе ,то отображаются данные по первому товару, а КАК ОТОБРАЗИТЬ второй товар . (товаров бывает до 4 наименований в одном счете.)

Автор - parovoznik
Дата добавления - 12.12.2021 в 17:53
Kuzmich Дата: Воскресенье, 12.12.2021, 22:01 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
КАК ОТОБРАЗИТЬ второй товар

А где у вас признак очередности товара?
 
Ответить
Сообщение
Цитата
КАК ОТОБРАЗИТЬ второй товар

А где у вас признак очередности товара?

Автор - Kuzmich
Дата добавления - 12.12.2021 в 22:01
parovoznik Дата: Понедельник, 13.12.2021, 07:02 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

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

Автор - parovoznik
Дата добавления - 13.12.2021 в 07:02
Kuzmich Дата: Понедельник, 13.12.2021, 13:48 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Попробуйте так
[vba]
Код
Private Sub cmb_НомерСчета_Change()
    Dim Rng As Range, Invoice As String
    Dim FAdr As String
    Me.txt_ВесОтгрузки = "": Me.txt_Номенклатура = "": Me.txt_Поставщик = ""
    Invoice = Me.cmb_НомерСчета
    With Sheets("Счет")
        Set Rng = .Columns(6).Find(what:=Invoice, LookIn:=xlValues, lookAt:=xlWhole)
        If Not Rng Is Nothing Then
            FAdr = Rng.Address
          Do
            Me.txt_ВесОтгрузки = Me.txt_ВесОтгрузки & Rng.Offset(0, 1) & ", "
            Me.txt_Номенклатура = Me.txt_Номенклатура & Rng.Offset(0, -3) & ", "
            Me.txt_Поставщик = Me.txt_Поставщик & Rng.Offset(0, -5) & ", "
            Set Rng = .Columns(6).FindNext(Rng)
          Loop While Rng.Address <> FAdr
        End If
    End With
End Sub
[/vba]
 
Ответить
СообщениеПопробуйте так
[vba]
Код
Private Sub cmb_НомерСчета_Change()
    Dim Rng As Range, Invoice As String
    Dim FAdr As String
    Me.txt_ВесОтгрузки = "": Me.txt_Номенклатура = "": Me.txt_Поставщик = ""
    Invoice = Me.cmb_НомерСчета
    With Sheets("Счет")
        Set Rng = .Columns(6).Find(what:=Invoice, LookIn:=xlValues, lookAt:=xlWhole)
        If Not Rng Is Nothing Then
            FAdr = Rng.Address
          Do
            Me.txt_ВесОтгрузки = Me.txt_ВесОтгрузки & Rng.Offset(0, 1) & ", "
            Me.txt_Номенклатура = Me.txt_Номенклатура & Rng.Offset(0, -3) & ", "
            Me.txt_Поставщик = Me.txt_Поставщик & Rng.Offset(0, -5) & ", "
            Set Rng = .Columns(6).FindNext(Rng)
          Loop While Rng.Address <> FAdr
        End If
    End With
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 13.12.2021 в 13:48
parovoznik Дата: Понедельник, 13.12.2021, 15:12 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Kuzmich, спасибо за помощь.
Но нужно выбрать первую позицию (отдельно) и вторую выбирать. Я добавил кнопку переноса с формы на лист.
К сообщению приложен файл: Test-2.xlsm (166.9 Kb)


Сообщение отредактировал parovoznik - Понедельник, 13.12.2021, 15:35
 
Ответить
СообщениеKuzmich, спасибо за помощь.
Но нужно выбрать первую позицию (отдельно) и вторую выбирать. Я добавил кнопку переноса с формы на лист.

Автор - parovoznik
Дата добавления - 13.12.2021 в 15:12
Kuzmich Дата: Вторник, 14.12.2021, 20:46 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
есть счета в которых выписано несколько товаров

А не проще поставить фильтр по столбцу Номер счета и перенести видимые строки на лист Реализация?
 
Ответить
Сообщение
Цитата
есть счета в которых выписано несколько товаров

А не проще поставить фильтр по столбцу Номер счета и перенести видимые строки на лист Реализация?

Автор - Kuzmich
Дата добавления - 14.12.2021 в 20:46
parovoznik Дата: Вторник, 14.12.2021, 22:13 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

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

Автор - parovoznik
Дата добавления - 14.12.2021 в 22:13
Kuzmich Дата: Вторник, 14.12.2021, 22:25 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
Я добавил кнопку переноса с формы на лист

[vba]
Код
Private Sub CommandButton4_Click()
    On Error Resume Next
    Application.ScreenUpdating = False    'выключили обновление экрана
    '  проверка на заполнение полей
    Dim X As Control
    Dim n As Integer
    Dim i As Integer
    For Each X In Me.Controls
        If TypeOf X Is MSForms.TextBox Or TypeOf X Is MSForms.ComboBox Then
            If X.Value = "" Then
                MsgBox "Все обязательные поля должны быть заполнены!", 48, "Сообщение"
                Exit Sub
            End If
        End If
    Next
    With Sheets("Счет")
      Dim Rng As Range
      Dim FAdr        As String
      Dim Rlz As Worksheet
      n = WorksheetFunction.CountIf(.Range("F4:F" & .Cells(.Rows.Count, "F").End(xlUp).Row), Me.cmb_НомерСчета)
      Set Rlz = ThisWorkbook.Sheets("Реализация")  'перенос данных с формы на лист
      
      Set Rng = .Columns(6).Find(what:=Me.cmb_НомерСчета, LookIn:=xlValues, lookAt:=xlWhole)
        If Not Rng Is Nothing Then
            FAdr = Rng.Address
            Do
                Me.txt_ВесОтгрузки = Rng.Offset(0, 1)
                Me.txt_Номенклатура = Rng.Offset(0, -3)
                Me.txt_Поставщик = Rng.Offset(0, -5)
        LastRow = Rlz.Cells(Rlz.Rows.Count, 1).End(xlUp).Row
        Rlz.Cells(LastRow + 1, 1) = Me.txt_ДатаОтгрузки
        Rlz.Cells(LastRow + 1, 2) = Me.txt_Поставщик
        Rlz.Cells(LastRow + 1, 3) = Me.Cmb_СкладОтгрузки
        Rlz.Cells(LastRow + 1, 4) = Me.txt_Номенклатура
        Rlz.Cells(LastRow + 1, 5) = Me.Cmb_Покупатель
        Rlz.Cells(LastRow + 1, 6) = CDbl(Me.txt_ВесОтгрузки)
        Rlz.Cells(LastRow + 1, 7) = Me.cmb_НомерСчета
                Set Rng = .Columns(6).FindNext(Rng)
            Loop While Rng.Address <> FAdr
        End If

        '          форматирование таблицы
        Range(.Cells(4, 1), .Cells(LastRow + 1, 7)).Borders.LineStyle = xlContinuous   ' обрамление ячеек
    End With

    Лист2.Activate
    Unload Me
    Application.ScreenUpdating = True    'включили обновление экрана
End Sub
[/vba]
 
Ответить
Сообщение
Цитата
Я добавил кнопку переноса с формы на лист

[vba]
Код
Private Sub CommandButton4_Click()
    On Error Resume Next
    Application.ScreenUpdating = False    'выключили обновление экрана
    '  проверка на заполнение полей
    Dim X As Control
    Dim n As Integer
    Dim i As Integer
    For Each X In Me.Controls
        If TypeOf X Is MSForms.TextBox Or TypeOf X Is MSForms.ComboBox Then
            If X.Value = "" Then
                MsgBox "Все обязательные поля должны быть заполнены!", 48, "Сообщение"
                Exit Sub
            End If
        End If
    Next
    With Sheets("Счет")
      Dim Rng As Range
      Dim FAdr        As String
      Dim Rlz As Worksheet
      n = WorksheetFunction.CountIf(.Range("F4:F" & .Cells(.Rows.Count, "F").End(xlUp).Row), Me.cmb_НомерСчета)
      Set Rlz = ThisWorkbook.Sheets("Реализация")  'перенос данных с формы на лист
      
      Set Rng = .Columns(6).Find(what:=Me.cmb_НомерСчета, LookIn:=xlValues, lookAt:=xlWhole)
        If Not Rng Is Nothing Then
            FAdr = Rng.Address
            Do
                Me.txt_ВесОтгрузки = Rng.Offset(0, 1)
                Me.txt_Номенклатура = Rng.Offset(0, -3)
                Me.txt_Поставщик = Rng.Offset(0, -5)
        LastRow = Rlz.Cells(Rlz.Rows.Count, 1).End(xlUp).Row
        Rlz.Cells(LastRow + 1, 1) = Me.txt_ДатаОтгрузки
        Rlz.Cells(LastRow + 1, 2) = Me.txt_Поставщик
        Rlz.Cells(LastRow + 1, 3) = Me.Cmb_СкладОтгрузки
        Rlz.Cells(LastRow + 1, 4) = Me.txt_Номенклатура
        Rlz.Cells(LastRow + 1, 5) = Me.Cmb_Покупатель
        Rlz.Cells(LastRow + 1, 6) = CDbl(Me.txt_ВесОтгрузки)
        Rlz.Cells(LastRow + 1, 7) = Me.cmb_НомерСчета
                Set Rng = .Columns(6).FindNext(Rng)
            Loop While Rng.Address <> FAdr
        End If

        '          форматирование таблицы
        Range(.Cells(4, 1), .Cells(LastRow + 1, 7)).Borders.LineStyle = xlContinuous   ' обрамление ячеек
    End With

    Лист2.Activate
    Unload Me
    Application.ScreenUpdating = True    'включили обновление экрана
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 14.12.2021 в 22:25
parovoznik Дата: Среда, 15.12.2021, 07:18 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Kuzmich, благодарю. Протестировал и есть вопросы :-границы не выделяются(обрамление ячеек) и там где товара два по одному счету можно подкорректировать, что бы можно было выбирать один товар. Бывает часто Покупатель выписал два наименования , а отгружает частями. Одну позицию СЕГОДНЯ вторую позже.
К сообщению приложен файл: Test-3.xlsm (167.7 Kb)


Сообщение отредактировал parovoznik - Среда, 15.12.2021, 07:18
 
Ответить
СообщениеKuzmich, благодарю. Протестировал и есть вопросы :-границы не выделяются(обрамление ячеек) и там где товара два по одному счету можно подкорректировать, что бы можно было выбирать один товар. Бывает часто Покупатель выписал два наименования , а отгружает частями. Одну позицию СЕГОДНЯ вторую позже.

Автор - parovoznik
Дата добавления - 15.12.2021 в 07:18
Kuzmich Дата: Среда, 15.12.2021, 12:27 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
можно подкорректировать, что бы можно было выбирать один товар

Попробуйте так
[vba]
Код
Private Sub CommandButton4_Click()
    On Error Resume Next
    Application.ScreenUpdating = False    'выключили обновление экрана
    '  проверка на заполнение полей
    Dim X As Control
    Dim n As Integer
    Dim i As Integer
    Dim reply As Integer
    For Each X In Me.Controls
        If TypeOf X Is MSForms.TextBox Or TypeOf X Is MSForms.ComboBox Then
            If X.Value = "" Then
                MsgBox "Все обязательные поля должны быть заполнены!", 48, "Сообщение"
                Exit Sub
            End If
        End If
    Next
    With Sheets("Счет")
      Dim Rng As Range
      Dim FAdr        As String
      Dim Rlz As Worksheet
      n = WorksheetFunction.CountIf(.Range("F4:F" & .Cells(.Rows.Count, "F").End(xlUp).Row), Me.cmb_НомерСчета)
      Set Rlz = ThisWorkbook.Sheets("Реализация")  'перенос данных с формы на лист
      
      Set Rng = .Columns(6).Find(what:=Me.cmb_НомерСчета, LookIn:=xlValues, lookAt:=xlWhole)
        If Not Rng Is Nothing Then
            FAdr = Rng.Address
            reply = Application.InputBox("Введите порядковый номер счета для вывода на лист Реализация", Type:=1)
            i = 1
            Do
              If i = reply Then
                Me.txt_ВесОтгрузки = Rng.Offset(0, 1)
                Me.txt_Номенклатура = Rng.Offset(0, -3)
                Me.txt_Поставщик = Rng.Offset(0, -5)
                  LastRow = Rlz.Cells(Rlz.Rows.Count, 1).End(xlUp).Row
                  Rlz.Cells(LastRow + 1, 1) = Me.txt_ДатаОтгрузки
                  Rlz.Cells(LastRow + 1, 2) = Me.txt_Поставщик
                  Rlz.Cells(LastRow + 1, 3) = Me.Cmb_СкладОтгрузки
                  Rlz.Cells(LastRow + 1, 4) = Me.txt_Номенклатура
                  Rlz.Cells(LastRow + 1, 5) = Me.Cmb_Покупатель
                  Rlz.Cells(LastRow + 1, 6) = CDbl(Me.txt_ВесОтгрузки)
                  Rlz.Cells(LastRow + 1, 7) = Me.cmb_НомерСчета
                  Exit Do
              End If
                    Set Rng = .Columns(6).FindNext(Rng)
                    i = i + 1
            Loop While Rng.Address <> FAdr
        End If
        '          форматирование таблицы
        Range(Rlz.Cells(4, 1), Rlz.Cells(LastRow + 1, 7)).Borders.LineStyle = xlContinuous   ' обрамление ячеек
    End With
    Лист2.Activate
    Unload Me
    Application.ScreenUpdating = True    'включили обновление экрана
End Sub
[/vba]
Возможно надо будет ввести проверку, чтобы порядковый номер счета не превышал количество значений таких счетов. Удачи!
 
Ответить
Сообщение
Цитата
можно подкорректировать, что бы можно было выбирать один товар

Попробуйте так
[vba]
Код
Private Sub CommandButton4_Click()
    On Error Resume Next
    Application.ScreenUpdating = False    'выключили обновление экрана
    '  проверка на заполнение полей
    Dim X As Control
    Dim n As Integer
    Dim i As Integer
    Dim reply As Integer
    For Each X In Me.Controls
        If TypeOf X Is MSForms.TextBox Or TypeOf X Is MSForms.ComboBox Then
            If X.Value = "" Then
                MsgBox "Все обязательные поля должны быть заполнены!", 48, "Сообщение"
                Exit Sub
            End If
        End If
    Next
    With Sheets("Счет")
      Dim Rng As Range
      Dim FAdr        As String
      Dim Rlz As Worksheet
      n = WorksheetFunction.CountIf(.Range("F4:F" & .Cells(.Rows.Count, "F").End(xlUp).Row), Me.cmb_НомерСчета)
      Set Rlz = ThisWorkbook.Sheets("Реализация")  'перенос данных с формы на лист
      
      Set Rng = .Columns(6).Find(what:=Me.cmb_НомерСчета, LookIn:=xlValues, lookAt:=xlWhole)
        If Not Rng Is Nothing Then
            FAdr = Rng.Address
            reply = Application.InputBox("Введите порядковый номер счета для вывода на лист Реализация", Type:=1)
            i = 1
            Do
              If i = reply Then
                Me.txt_ВесОтгрузки = Rng.Offset(0, 1)
                Me.txt_Номенклатура = Rng.Offset(0, -3)
                Me.txt_Поставщик = Rng.Offset(0, -5)
                  LastRow = Rlz.Cells(Rlz.Rows.Count, 1).End(xlUp).Row
                  Rlz.Cells(LastRow + 1, 1) = Me.txt_ДатаОтгрузки
                  Rlz.Cells(LastRow + 1, 2) = Me.txt_Поставщик
                  Rlz.Cells(LastRow + 1, 3) = Me.Cmb_СкладОтгрузки
                  Rlz.Cells(LastRow + 1, 4) = Me.txt_Номенклатура
                  Rlz.Cells(LastRow + 1, 5) = Me.Cmb_Покупатель
                  Rlz.Cells(LastRow + 1, 6) = CDbl(Me.txt_ВесОтгрузки)
                  Rlz.Cells(LastRow + 1, 7) = Me.cmb_НомерСчета
                  Exit Do
              End If
                    Set Rng = .Columns(6).FindNext(Rng)
                    i = i + 1
            Loop While Rng.Address <> FAdr
        End If
        '          форматирование таблицы
        Range(Rlz.Cells(4, 1), Rlz.Cells(LastRow + 1, 7)).Borders.LineStyle = xlContinuous   ' обрамление ячеек
    End With
    Лист2.Activate
    Unload Me
    Application.ScreenUpdating = True    'включили обновление экрана
End Sub
[/vba]
Возможно надо будет ввести проверку, чтобы порядковый номер счета не превышал количество значений таких счетов. Удачи!

Автор - Kuzmich
Дата добавления - 15.12.2021 в 12:27
parovoznik Дата: Среда, 15.12.2021, 13:30 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Kuzmich, что то в таблице не отображается ни чего. Просит ввести порядковый номер счета я ввожу, но ничего не отображается в таблице.
 
Ответить
СообщениеKuzmich, что то в таблице не отображается ни чего. Просит ввести порядковый номер счета я ввожу, но ничего не отображается в таблице.

Автор - parovoznik
Дата добавления - 15.12.2021 в 13:30
Kuzmich Дата: Среда, 15.12.2021, 13:55 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
я ввожу, но ничего не отображается в таблице.

Порядковый номер 1, 2 или 3
Соответствующая строка вносится в таблицу на листе Реализация
 
Ответить
Сообщение
Цитата
я ввожу, но ничего не отображается в таблице.

Порядковый номер 1, 2 или 3
Соответствующая строка вносится в таблицу на листе Реализация

Автор - Kuzmich
Дата добавления - 15.12.2021 в 13:55
parovoznik Дата: Среда, 15.12.2021, 14:00 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Kuzmich, спасибо. Разобрался. :)
 
Ответить
СообщениеKuzmich, спасибо. Разобрался. :)

Автор - parovoznik
Дата добавления - 15.12.2021 в 14:00
Kuzmich Дата: Пятница, 17.12.2021, 11:48 | Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
есть счета в которых выписано несколько товаров

В окошко со счетом добавил второй столбец с номером строки, в которой этот счет встречается.
Выбираете нужную вам строку, при нажатии на ОК эта строка добавляется на лист Реализация
К сообщению приложен файл: Test-4.xlsm (170.0 Kb)
 
Ответить
Сообщение
Цитата
есть счета в которых выписано несколько товаров

В окошко со счетом добавил второй столбец с номером строки, в которой этот счет встречается.
Выбираете нужную вам строку, при нажатии на ОК эта строка добавляется на лист Реализация

Автор - Kuzmich
Дата добавления - 17.12.2021 в 11:48
parovoznik Дата: Пятница, 17.12.2021, 12:46 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Kuzmich, здорово. Спасибо. hands
 
Ответить
СообщениеKuzmich, здорово. Спасибо. hands

Автор - parovoznik
Дата добавления - 17.12.2021 в 12:46
MikeVol Дата: Пятница, 17.12.2021, 17:43 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 61 ±
Замечаний: 0% ±

Excel LTSC 2021 EN
parovoznik, Доброго времени суток. Удалите Невидимые Объекты. Их у вас 5000 с лишним на одном листе.
[vba]
Код

Sub DeleteObjects()   ' DeleteObjects будут удалены все объекты и ссылки
    ActiveSheet.DrawingObjects.Delete
    ActiveSheet.Hyperlinks.Delete
End Sub
[/vba]
К сообщению приложен файл: 2147392.png (80.1 Kb)


Ученик.
 
Ответить
Сообщениеparovoznik, Доброго времени суток. Удалите Невидимые Объекты. Их у вас 5000 с лишним на одном листе.
[vba]
Код

Sub DeleteObjects()   ' DeleteObjects будут удалены все объекты и ссылки
    ActiveSheet.DrawingObjects.Delete
    ActiveSheet.Hyperlinks.Delete
End Sub
[/vba]

Автор - MikeVol
Дата добавления - 17.12.2021 в 17:43
parovoznik Дата: Суббота, 18.12.2021, 07:31 | Сообщение № 17
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
MikeVol, благодарю за подсказку. И откуда сколько мусора ?
 
Ответить
СообщениеMikeVol, благодарю за подсказку. И откуда сколько мусора ?

Автор - parovoznik
Дата добавления - 18.12.2021 в 07:31
MikeVol Дата: Суббота, 18.12.2021, 13:50 | Сообщение № 18
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 61 ±
Замечаний: 0% ±

Excel LTSC 2021 EN
Kuzmich, Доброго Времени Суток! Ради спортивного интереса, если на форму добавить ещё один TextBox чтоб он выводил Номер строки выбранного Счёта. Помогите Пожалуйста код допилить. Спасибо! И Извините что влез не в свою тему.


Ученик.
 
Ответить
СообщениеKuzmich, Доброго Времени Суток! Ради спортивного интереса, если на форму добавить ещё один TextBox чтоб он выводил Номер строки выбранного Счёта. Помогите Пожалуйста код допилить. Спасибо! И Извините что влез не в свою тему.

Автор - MikeVol
Дата добавления - 18.12.2021 в 13:50
Kuzmich Дата: Суббота, 18.12.2021, 14:57 | Сообщение № 19
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
MikeVol
Цитата
чтоб он выводил Номер строки выбранного Счёта.

Посмотрите сообщение #14
В окошко со счетом добавил второй столбец с номером строки, в которой этот счет встречается.
 
Ответить
СообщениеMikeVol
Цитата
чтоб он выводил Номер строки выбранного Счёта.

Посмотрите сообщение #14
В окошко со счетом добавил второй столбец с номером строки, в которой этот счет встречается.

Автор - Kuzmich
Дата добавления - 18.12.2021 в 14:57
MikeVol Дата: Суббота, 18.12.2021, 15:44 | Сообщение № 20
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 61 ±
Замечаний: 0% ±

Excel LTSC 2021 EN
Kuzmich, Спасибо, Понял где я промахнулся (не доглядел).
[vba]
Код

Private Sub cmb_НомерСчета_Change()
    Dim iIndex As Integer, Invoice As String
    iIndex = Me.cmb_НомерСчета.ListIndex
    iIndex = Me.cmb_НомерСчета.List(iIndex, 1)
    Me.txt_ВесОтгрузки = "": Me.txt_Номенклатура = "": Me.txt_Поставщик = "": Me.txt_row_id = ""
    
    With Sheets("Счет")

        If Application.WorksheetFunction.CountIfs(.Range("F:F"), Me.cmb_НомерСчета.Value) > 1 Then
            MsgBox "Найдено более Одного Счёта!!!"
        End If

        Me.txt_row_id = iIndex
        Me.txt_ВесОтгрузки = .Cells(iIndex, "G")
        Me.txt_Номенклатура = .Cells(iIndex, "C")
        Me.txt_Поставщик = .Cells(iIndex, "A")
    End With

End Sub

[/vba]
Извините что потревожил. Спасибо Вам Большое!!!


Ученик.

Сообщение отредактировал MikeVol - Суббота, 18.12.2021, 15:51
 
Ответить
СообщениеKuzmich, Спасибо, Понял где я промахнулся (не доглядел).
[vba]
Код

Private Sub cmb_НомерСчета_Change()
    Dim iIndex As Integer, Invoice As String
    iIndex = Me.cmb_НомерСчета.ListIndex
    iIndex = Me.cmb_НомерСчета.List(iIndex, 1)
    Me.txt_ВесОтгрузки = "": Me.txt_Номенклатура = "": Me.txt_Поставщик = "": Me.txt_row_id = ""
    
    With Sheets("Счет")

        If Application.WorksheetFunction.CountIfs(.Range("F:F"), Me.cmb_НомерСчета.Value) > 1 Then
            MsgBox "Найдено более Одного Счёта!!!"
        End If

        Me.txt_row_id = iIndex
        Me.txt_ВесОтгрузки = .Cells(iIndex, "G")
        Me.txt_Номенклатура = .Cells(iIndex, "C")
        Me.txt_Поставщик = .Cells(iIndex, "A")
    End With

End Sub

[/vba]
Извините что потревожил. Спасибо Вам Большое!!!

Автор - MikeVol
Дата добавления - 18.12.2021 в 15:44
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отобразить данные в зависимости от выбора номера счета (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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