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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск значения и вставка новой строки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск значения и вставка новой строки (Макросы/Sub)
Поиск значения и вставка новой строки
strangle Дата: Пятница, 02.08.2019, 14:03 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день, уважаемые знатоки!
Возможно вопрос поднимался, но, видимо, плохо искал...
Есть база, в колонках А - дата, B - № заказа, С - кол-во
Каждый год отсчет номера начинается по-новой. № заказа может идти с пропуском.
В другой книге пользователь вводит № заказа, допустим 247. А последняя запись в таблице с № заказа 276.
Нужно в колонке В, текущего года, найти промежуток, куда вставить этот номер заказа (№ заказа должен идти по порядку), и, соответсвенно, вставив новую строку с введенными данными...
 
Ответить
СообщениеДобрый день, уважаемые знатоки!
Возможно вопрос поднимался, но, видимо, плохо искал...
Есть база, в колонках А - дата, B - № заказа, С - кол-во
Каждый год отсчет номера начинается по-новой. № заказа может идти с пропуском.
В другой книге пользователь вводит № заказа, допустим 247. А последняя запись в таблице с № заказа 276.
Нужно в колонке В, текущего года, найти промежуток, куда вставить этот номер заказа (№ заказа должен идти по порядку), и, соответсвенно, вставив новую строку с введенными данными...

Автор - strangle
Дата добавления - 02.08.2019 в 14:03
Pelena Дата: Пятница, 02.08.2019, 14:18 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Файл с примером помог бы в понимании проблемы


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеФайл с примером помог бы в понимании проблемы

Автор - Pelena
Дата добавления - 02.08.2019 в 14:18
strangle Дата: Пятница, 02.08.2019, 14:32 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Несколько утрировано, но примерно так. На листе "данные" человек вносит данные.
На листе "база" нужно, чтобы данные по нажатию кнопки вставились между 9 и 10 строкой (строки заранее не известны).
К сообщению приложен файл: teat.xlsx (10.9 Kb)
 
Ответить
СообщениеНесколько утрировано, но примерно так. На листе "данные" человек вносит данные.
На листе "база" нужно, чтобы данные по нажатию кнопки вставились между 9 и 10 строкой (строки заранее не известны).

Автор - strangle
Дата добавления - 02.08.2019 в 14:32
InExSu Дата: Суббота, 03.08.2019, 21:01 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
Скопируйте с листа "данные" на лист "база".
На листе "база" сортируйте по нужному столбцу.


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!
Скопируйте с листа "данные" на лист "база".
На листе "база" сортируйте по нужному столбцу.

Автор - InExSu
Дата добавления - 03.08.2019 в 21:01
strangle Дата: Вторник, 06.08.2019, 14:00 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
InExSu, вариант интересный, такой не рассматривал, спасибо!
Но добиться желаемого не смог, при сортировке по двум ячейкам, если в раннем номере дата позже, тогда нумерация по-порядку не идет...
 
Ответить
СообщениеInExSu, вариант интересный, такой не рассматривал, спасибо!
Но добиться желаемого не смог, при сортировке по двум ячейкам, если в раннем номере дата позже, тогда нумерация по-порядку не идет...

Автор - strangle
Дата добавления - 06.08.2019 в 14:00
pechkin Дата: Вторник, 06.08.2019, 15:16 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 49 ±
Замечаний: 0% ±

2003
Здравствуйте! Может подойдет...[vba]
Код
Sub Вставка()
Dim a As Integer
Dim iLastRow As Long
a = Right(Cells(2, 1), 2)
With Sheets("база")
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To iLastRow
If a = Right(.Cells(i, 1), 2) And Cells(2, 2).Value = .Cells(i, 2).Value Then
MsgBox ("Этот № есть в базе!")
Exit Sub
End If
If a = Right(.Cells(i, 1), 2) And Cells(2, 2).Value < .Cells(i, 2).Value Then
Range("A2:D2").Copy
.Range(.Cells(i, 1), .Cells(i, 4)).Insert Shift:=xlDown
Application.CutCopyMode = False
MsgBox ("ГОТОВО!")
  Exit Sub
End If
If i = iLastRow And Cells(2, 2).Value > .Cells(i, 2).Value Then
Range("A2:D2").Copy
.Range(.Cells(i + 1, 1), .Cells(i + 1, 4)).Insert Shift:=xlDown
Application.CutCopyMode = False
End If
Next
End With
MsgBox ("ГОТОВО!")
End Sub
[/vba]
К сообщению приложен файл: teat-1-.xls (48.5 Kb)


Сообщение отредактировал pechkin - Вторник, 06.08.2019, 15:28
 
Ответить
СообщениеЗдравствуйте! Может подойдет...[vba]
Код
Sub Вставка()
Dim a As Integer
Dim iLastRow As Long
a = Right(Cells(2, 1), 2)
With Sheets("база")
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To iLastRow
If a = Right(.Cells(i, 1), 2) And Cells(2, 2).Value = .Cells(i, 2).Value Then
MsgBox ("Этот № есть в базе!")
Exit Sub
End If
If a = Right(.Cells(i, 1), 2) And Cells(2, 2).Value < .Cells(i, 2).Value Then
Range("A2:D2").Copy
.Range(.Cells(i, 1), .Cells(i, 4)).Insert Shift:=xlDown
Application.CutCopyMode = False
MsgBox ("ГОТОВО!")
  Exit Sub
End If
If i = iLastRow And Cells(2, 2).Value > .Cells(i, 2).Value Then
Range("A2:D2").Copy
.Range(.Cells(i + 1, 1), .Cells(i + 1, 4)).Insert Shift:=xlDown
Application.CutCopyMode = False
End If
Next
End With
MsgBox ("ГОТОВО!")
End Sub
[/vba]

Автор - pechkin
Дата добавления - 06.08.2019 в 15:16
strangle Дата: Четверг, 08.08.2019, 09:25 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
pechkin, огромное спасибо, то что нужно!
 
Ответить
Сообщениеpechkin, огромное спасибо, то что нужно!

Автор - strangle
Дата добавления - 08.08.2019 в 09:25
strangle Дата: Четверг, 08.08.2019, 13:09 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
pechkin, как всегда, был о себе лучшего мнения, но знаний не хватило...
Оригинал кинуть не могу, не разглашение и т.д.
Верхнее решение отличное, но у меня несколько разных книг с несколькими листами(товарами), в которые должны копироваться данные с одноименного листа (лист данные заполняется через множество формул и нерационального кода vba, но сейчас не об этом)
Возможно ли адаптировать этот код на поиск и занесение в разные листы разных книг?
К сообщению приложен файл: teat-2.xls (36.5 Kb)


Сообщение отредактировал strangle - Четверг, 08.08.2019, 13:18
 
Ответить
Сообщениеpechkin, как всегда, был о себе лучшего мнения, но знаний не хватило...
Оригинал кинуть не могу, не разглашение и т.д.
Верхнее решение отличное, но у меня несколько разных книг с несколькими листами(товарами), в которые должны копироваться данные с одноименного листа (лист данные заполняется через множество формул и нерационального кода vba, но сейчас не об этом)
Возможно ли адаптировать этот код на поиск и занесение в разные листы разных книг?

Автор - strangle
Дата добавления - 08.08.2019 в 13:09
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск значения и вставка новой строки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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