Добрый день Профи, нашла подходящий макрос, который по критерию (в столбеце Etscheidung стои 13) переносит данные на второй лист, но проблема в том, что он дублирует данные, если таковые уже есть.
Прошу помощи: Данные не должны дублироваться, тк входящие данные будут поплняться далее на листе gehemigt.
Заранее спасибо за быстрый ответ! ЗЫ: Может и макрос и не идеален, если есть другой вариант, буду рада узнать что-то новое!
Юрий М написал: P.S. Могли бы для форума заголовки столбцов сделать на русском...
я скоректировала какой критей необходим, на русском не могу, тк на моем компьютере не установлен кирилаца, и данные на русском в макросе не читабельны.. заранее спасибо за понимание.
Если в столбце G значение = 13, то эту строку копировать. Так? А на вопрос про уникальность (отсутствие повторов) Вы так и не ответили. Спрошу ещё раз: достаточно ли проверять уникальность по одному какому-нибудь столбцу? Например, по столбцу Letter?
Цитата
Leborham написал: на русском не могу, тк на моем компьютере не установлен кирилаца,
А как Вы набираете здесь текст? Я про заголовки столбцов таблицы в примере, а не про кириллицу в макросе.
die Letter - шрифт ? der Name - имя, название der Preis - цена die Abteilung - отдел NN - ? какой-то номер ? порядковый номер ?
Эти выражения одинаковы на обоих листах. Сделайте из них индекс (возможно, за исключением NN) и примените например словарь "dictionary".
Ps.: 1) Можете ли вы отправить/нагрузить (to upload) образец данных на два листа, не только на одном ? 2) und Sie sollten nicht "Abtelung", sondern "Abteilung" schreiben ... :-) ... словарь не врет / dictionary is not lying / Wörterbuch lügt nicht ... :-)
1. не допускайте повторений в макросе и их не нужно будет убирать 2. подходящий макрос, который Вам совсем не подходит не подходит и нам 3. Опишите задачу, которую нужно решить, а не что нужно исправлять в принятом Вами способе решения п. 3 на самом деле должен быть в самом начале, еще перед 1
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
ocet p написал: und Sie sollten nicht "Abtelung", sondern "Abteilung" schreiben ... :-) ... словарь не врет / dictionary is not lying / Wörterbuch lügt nicht ...
Юрий М написал: Если в столбце G значение = 13, то эту строку копировать. Так?А на вопрос про уникальность (отсутствие повторов) Вы так и не ответили. Спрошу ещё раз: достаточно ли проверять уникальность по одному какому-нибудь столбцу? Например, по столбцу Letter?
Если G = 13, то не все данные переносятся, а только часть из них на второй лист, к тому же менеджер во второй лист вносит так же дополнения. Нет, никакой уникальности проверять не надо, в данном случае важно только значение в столбце G = 13.
А как Вы набираете здесь текст? Я про заголовки столбцов таблицы в примере, а не про кириллицу в макросе:
Многие пишут название в макросе на русском, и когда просматриваю макрос у меня одни иероглифы, а установку русского на клавиатуре мозможна.
ocet p написал: die Letter - шрифт ?der Name - имя, названиеder Preis - ценаdie Abteilung - отделNN - ? какой-то номер ? порядковый номер .
Обычно мы не пишем в таблице артикли.. всем понятно о чем речь.. особенно если таблица состоит на 3 языках. The letter - письмо.. Я попросила лишь помощи у профи с этого форума.
Переименовала на русский имя листов и титульные название.
Если два раза на макрос кликнуть, то он еще раз переносит данные на другой лист, без проверки, есть ли уже эти данные *например строка 3 с первого листа при нажатие на макрос дублируется на второй лист и если повторно нажать на макрос, то он снова на следующую строку переносит те же данные.. В таблице я указала столбцы, которые надо перенести.
Ещё раз (последний) - при повторном выполнении макроса на листе-приёмнике не должно быть повторов. Повторов по какому столбцу? Можно ли обойтись одним? - Зачем Вы меня процитировали? Запомните - кнопка цитирования не для ответа! - зачем кричите? - текст в верхнем регистре расценивается, как крик. Вернитесь в свои сообщения и устраните замечания.
Leborham написал: Если запись на первом листе одна, то и на втором должна быть одна
Неужели так трудно понять, о чём я спрашиваю? По какому столбцу определять, что запись одна и та же? Например, Motor 01 - письмо 1554, а второй раз будет тоже Motor 01, но письмо 123 - это разные записи?
это не важно... важно, что если G = 13 значит данные переносятся... не дублируюся постоянно,строка 3 на первом листе не может ьыть 2 раза на втором листе.. иногда нет писем, но стоит уже 13... данные будут перенесенны
Sub test()
Dim arr(2), i&, itxt$, j&
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
arr(0) = Tabelle1.[B2].CurrentRegion.Value
arr(1) = Tabelle5.[B2].CurrentRegion.Value
For i = 2 To UBound(arr(1))
itxt = arr(1)(i, 3) & arr(1)(i, 4) & arr(1)(i, 5) & arr(1)(i, 2) & arr(1)(i, 1)
dic.Item(itxt) = 0
Next i
j = 0
ReDim iarr(1 To UBound(arr(0)), 1 To UBound(arr(1), 2))
For i = 2 To UBound(arr(0))
If arr(0)(i, 6) = 13 Then
itxt = arr(0)(i, 1) & arr(0)(i, 2) & arr(0)(i, 3) & arr(0)(i, 7) & arr(0)(i, 8)
If Not dic.Exists(itxt) Then
j = j + 1
iarr(j, 1) = arr(0)(i, 8)
iarr(j, 2) = arr(0)(i, 7)
iarr(j, 3) = arr(0)(i, 1)
iarr(j, 4) = arr(0)(i, 2)
iarr(j, 5) = arr(0)(i, 3)
End If
End If
Next i
If j = 0 Then Exit Sub
i = Tabelle5.Range("b" & Rows.Count).End(xlUp).Row + 1
Tabelle5.Range("b" & i).Resize(j, UBound(iarr, 2)) = iarr
End Sub
Кнопка цитирования не для бездумного нажатия[МОДЕРАТОР]
Здравствуйте, вопрос: Почему код перестал работать? Дублирует записи и при внесение вручную новую запись? Или удаляет данные дополненные в другие колонки?