1

Я хочу сделать рабочий лист, который можно использовать в качестве печатной квитанции для клиентов, это базовый макет:

  • Контактные данные клиента (имя, адрес и т.д.) - это фиксированные поля, которые могут быть пустыми
  • Строка заголовка: «Товар | Кол-во. | Цена | Итого»
  • Динамическая таблица, содержащая любое количество строк, по одной на каждую статью, которую покупатель покупает
  • Строка нижнего колонтитула, содержащая общее количество статей и общее количество

То, с чем я борюсь, это как заставить динамический стол работать. В настоящее время я вручную вставляю строку для каждой новой статьи, но это громоздко в ситуациях, когда она очень занята. Я хотел бы, чтобы Excel по умолчанию показывал одну пустую строку, а затем вставлял следующую строку каждый раз, когда предыдущая строка содержит какие-либо данные, автоматически перемещая строку нижнего колонтитула вниз на одну строку и обновляя формулу, используемую для вычисления общего количества. и количество.

Это вообще возможно?

1 ответ1

1

Так же, как предупреждение для вас и любого другого, кто пытается сделать это:

Прямо сейчас вы должны подумать о:

  • как часто я буду использовать это для каждого клиента?
  • сколько там клиентов?
  • как я буду вводить эти элементы?
  • сколько там разных предметов?

Это самые важные вопросы. Я сделал совершенно точно то, что вы пытаетесь сделать, для очень маленькой компании, с примерно 3 квитанциями в месяц.

Как всегда, пожалуйста, быстро, дешево и превосходно. Однако никто не задавал эти вопросы выше. Главным образом из-за дешевизны и превосходства. И теперь становится очевидным, сколько времени теряется при поиске, исправлении квитанции, но главным образом при добавлении элементов. Не говоря уже о том, сколько существует разных форм одного и того же предмета. Исправить это с помощью Excel, однако, возможно, но ИМХО, настоящая боль. Убежденный в этом, EPR теперь настроен.

Это задача базы данных. Это как один из лучших примеров задачи базы данных!

Кроме того, это может даже стоить ERP-системы для малого бизнеса. Здесь, в Германии, я бы порекомендовал вам JTL-Wawi.

Но, если это слишком большой скачок, вам стоит подумать об использовании Access.

Некоторые преимущества:

  • вы можете управлять своими клиентами
  • вы можете управлять своими товарами
  • Вы можете перенести свое диманическое поведение на доступ
  • вы можете легко управлять своими квитанциями
  • вы все еще можете использовать Excel в качестве выходной системы

Как это будет работать?

У вас будет несколько таблиц, для клиентов и предметов, а также для получения. Таблица квитанций будет связывать клиента с его товарами и другими атрибутами, относящимися к квитанции.

Затем вы можете создать разработанный отчет для основной квитанции и распечатать его из доступа. Или используйте Excel, чтобы выбрать квитанцию, получить данные и распечатать их. Поскольку данные будут предопределены, вы будете знать, сколько строк / столбцов приходит и каков их контекст.

Однако - это колесо было изобретено уже очень много раз, так что вы должны посмотреть на уже существующие;)

редактировать

Решение, основанное на вашем запросе поведения, может использовать эту попытку здесь:

https://stackoverflow.com/questions/12604274/excel-vba-is-there-a-textchanging-textchanged-or-a-similar-event-or-how-to/12604570#12604570

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column = clngColumnRightToLastGrade Then
    Application.EnableEvents = False
    'offset selection, one row down, two cols to left
    Target.EntireRow.Insert (xlShiftDown) 'insert new row
    Target.Offset(1, -2).Select
    Application.EnableEvents = True
  End If
End Sub

Конечно, вы могли бы вместо этого использовать событие Change и вам, возможно, придется ограничить это поведение максимальным диапазоном вашего динамического списка или его рабочим листом.

Или просто сделайте макрос приемлемым для каждой клавиши, чтобы выполнить эту строку здесь:

Target.EntireRow.Insert (xlShiftDown) 'insert new row

Вам нужно будет определить текущую выбранную ячейку, чтобы иметь Target диапазон.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .