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

Вход

Регистрация

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

 

= Мир MS Excel/Внесение данных в базу и проверка повторяющихся значений - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Внесение данных в базу и проверка повторяющихся значений
werty456 Дата: Пятница, 23.03.2018, 20:53 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток уважаемые форумчане!!!
Прошу Вашей помощи в решении задачи:
есть файл с листами "Форма" и "База"
В лист "Форма" вносятся данные которые при нажатии кнопки "Кнопка №3", форматируются определенным стилем и
переносятся на лист "База" и очищаются ячейки на листе "Форма".
Дальше столкнулся с проблемой:
При переносе данных нужно чтобы данные с листа "Форма" сравнивались с уже внесенными на лист "База" в столбец "А"
если дубликатов нет, то переносились на лист "База" и очищались ячейки на листе "Форма".
Если дубликаты найдены, то данные не переносятся и выскакивает сообщение что: "такой-то номер уже внесен в базу"
К сообщению приложен файл: 14587.xlsm (19.2 Kb)


Сообщение отредактировал werty456 - Суббота, 24.03.2018, 10:35
 
Ответить
СообщениеДоброго времени суток уважаемые форумчане!!!
Прошу Вашей помощи в решении задачи:
есть файл с листами "Форма" и "База"
В лист "Форма" вносятся данные которые при нажатии кнопки "Кнопка №3", форматируются определенным стилем и
переносятся на лист "База" и очищаются ячейки на листе "Форма".
Дальше столкнулся с проблемой:
При переносе данных нужно чтобы данные с листа "Форма" сравнивались с уже внесенными на лист "База" в столбец "А"
если дубликатов нет, то переносились на лист "База" и очищались ячейки на листе "Форма".
Если дубликаты найдены, то данные не переносятся и выскакивает сообщение что: "такой-то номер уже внесен в базу"

Автор - werty456
Дата добавления - 23.03.2018 в 20:53
gling Дата: Суббота, 24.03.2018, 07:18 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2689
Репутация: 764 ±
Замечаний: 0% ±

2010
Здравствуйте. Первое что посетило меня при прочтении названия темы, это восторг. Как кратко и главное "понятно" что нужно сделать. Ведь в правилах прописано
Цитата
При создании темы, давайте теме название, отражающее суть Вашей проблемы
Суть это "База данных", а не то что с ней нужно делать.


ЯД-41001506838083
 
Ответить
СообщениеЗдравствуйте. Первое что посетило меня при прочтении названия темы, это восторг. Как кратко и главное "понятно" что нужно сделать. Ведь в правилах прописано
Цитата
При создании темы, давайте теме название, отражающее суть Вашей проблемы
Суть это "База данных", а не то что с ней нужно делать.

Автор - gling
Дата добавления - 24.03.2018 в 07:18
InExSu Дата: Воскресенье, 25.03.2018, 19:11 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
Непонятно какие данные вносятся на лист ""Форма" :(


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

Автор - InExSu
Дата добавления - 25.03.2018 в 19:11
gling Дата: Воскресенье, 25.03.2018, 20:38 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2689
Репутация: 764 ±
Замечаний: 0% ±

2010
Вариант.
К сообщению приложен файл: 3734770.xlsm (19.5 Kb)


ЯД-41001506838083
 
Ответить
СообщениеВариант.

Автор - gling
Дата добавления - 25.03.2018 в 20:38
werty456 Дата: Понедельник, 26.03.2018, 10:46 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Привет!
Непонятно какие данные вносятся на лист ""Форма"


Данные с листа "Форма" которые находятся в столбце А.
Они идут от А1 до А10
К сообщению приложен файл: 7949285.xlsm (21.2 Kb)


Сообщение отредактировал werty456 - Понедельник, 26.03.2018, 10:53
 
Ответить
Сообщение
Привет!
Непонятно какие данные вносятся на лист ""Форма"


Данные с листа "Форма" которые находятся в столбце А.
Они идут от А1 до А10

Автор - werty456
Дата добавления - 26.03.2018 в 10:46
sboy Дата: Понедельник, 26.03.2018, 11:11 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Самый простой вариант, после вставки в "базу" удалить дубликаты
[vba]
Код
Worksheets("База").Range("$A:$A").RemoveDuplicates Columns:=1, Header:=xlNo
[/vba]
К сообщению приложен файл: 0804860.xlsm (21.2 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Самый простой вариант, после вставки в "базу" удалить дубликаты
[vba]
Код
Worksheets("База").Range("$A:$A").RemoveDuplicates Columns:=1, Header:=xlNo
[/vba]

Автор - sboy
Дата добавления - 26.03.2018 в 11:11
werty456 Дата: Понедельник, 26.03.2018, 12:29 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день.
Самый простой вариант, после вставки в "базу" удалить дубликаты
Worksheets("База").Range("$A:$A").RemoveDuplicates Columns:=1, Header:=xlNo


Не должно происходить удаление дубликатов.
Если дубликаты найдены, то данные не переносятся и выскакивает сообщение что: "такой-то номер уже внесен в базу"
 
Ответить
Сообщение
Добрый день.
Самый простой вариант, после вставки в "базу" удалить дубликаты
Worksheets("База").Range("$A:$A").RemoveDuplicates Columns:=1, Header:=xlNo


Не должно происходить удаление дубликатов.
Если дубликаты найдены, то данные не переносятся и выскакивает сообщение что: "такой-то номер уже внесен в базу"

Автор - werty456
Дата добавления - 26.03.2018 в 12:29
InExSu Дата: Понедельник, 26.03.2018, 12:40 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
дубликаты найдены, то данные не переносятся

Допустим: на лист "Форма" ввели четыре значения, нажали кнопку, два значения есть в листе "База", а двух нет. Которых нет - переносить в лист "База"?


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

Допустим: на лист "Форма" ввели четыре значения, нажали кнопку, два значения есть в листе "База", а двух нет. Которых нет - переносить в лист "База"?

Автор - InExSu
Дата добавления - 26.03.2018 в 12:40
werty456 Дата: Понедельник, 26.03.2018, 12:46 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Допустим: на лист "Форма" ввели четыре значения, нажали кнопку, два значения есть в листе "База", а двух нет. Которых нет - переносить в лист "База"?


Нет, не переносить в лист "База"
и указать в сообщении значения которые повторяются
 
Ответить
Сообщение
Допустим: на лист "Форма" ввели четыре значения, нажали кнопку, два значения есть в листе "База", а двух нет. Которых нет - переносить в лист "База"?


Нет, не переносить в лист "База"
и указать в сообщении значения которые повторяются

Автор - werty456
Дата добавления - 26.03.2018 в 12:46
sboy Дата: Понедельник, 26.03.2018, 13:15 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Тогда можно добавить цикл с проверкой
[vba]
Код
     For r = 1 To 10
        Set f = Worksheets("База").Range("$A:$A").Find(what:=Worksheets("Форма").Range("A" & r), lookat:=xlWhole)
            If Not f Is Nothing Then
                MsgBox "Значение уже есть " & Worksheets("Форма").Range("A" & r)
                Exit Sub
            End If
     Next
[/vba]
К сообщению приложен файл: 7387940.xlsm (22.1 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеТогда можно добавить цикл с проверкой
[vba]
Код
     For r = 1 To 10
        Set f = Worksheets("База").Range("$A:$A").Find(what:=Worksheets("Форма").Range("A" & r), lookat:=xlWhole)
            If Not f Is Nothing Then
                MsgBox "Значение уже есть " & Worksheets("Форма").Range("A" & r)
                Exit Sub
            End If
     Next
[/vba]

Автор - sboy
Дата добавления - 26.03.2018 в 13:15
werty456 Дата: Понедельник, 26.03.2018, 13:24 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Тогда можно добавить цикл с проверкой
     For r = 1 To 10
        Set f = Worksheets("База").Range("$A:$A").Find(what:=Worksheets("Форма").Range("A" & r), lookat:=xlWhole)
            If Not f Is Nothing Then
                MsgBox "Значение уже есть " & Worksheets("Форма").Range("A" & r)
                Exit Sub
            End If
    Next


Спасибо большое!!!
Наберусь смелости спрошу: а если повторяется не одно, а 2, 3,4..... значения как их вывести в сообщения
 
Ответить
Сообщение
Тогда можно добавить цикл с проверкой
     For r = 1 To 10
        Set f = Worksheets("База").Range("$A:$A").Find(what:=Worksheets("Форма").Range("A" & r), lookat:=xlWhole)
            If Not f Is Nothing Then
                MsgBox "Значение уже есть " & Worksheets("Форма").Range("A" & r)
                Exit Sub
            End If
    Next


Спасибо большое!!!
Наберусь смелости спрошу: а если повторяется не одно, а 2, 3,4..... значения как их вывести в сообщения

Автор - werty456
Дата добавления - 26.03.2018 в 13:24
InExSu Дата: Понедельник, 26.03.2018, 13:39 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
[vba]
Код
Option Explicit

Sub ПереносБезПовторов()

  Dim shDest As Worksheet, shSour As Worksheet
  Set shDest = ActiveWorkbook.Worksheets("База")
  Set shSour = ActiveWorkbook.Worksheets("Форма")

  Dim sTxt As String, r As Range, x As Long
  With shSour
    For x = .UsedRange.Row To _
        .UsedRange.Row + .UsedRange.Rows.Count - 1
      Set r = shDest.Cells.Find(what:=.Cells(x, 1).Value, lookat:=xlWhole)
      If Not r Is Nothing Then _
         sTxt = sTxt & ", " & r.Value
    Next
  End With

  If Len(sTxt) > 0 Then
    MsgBox "Номера уже внесены в базу " & sTxt
  Else
    shSour.UsedRange.Copy
    
    With shDest
      .Cells(.UsedRange.Row + .UsedRange.Rows.Count, 1).PasteSpecial _
    Paste:=xlValues
    End With
    
    shSour.UsedRange.ClearContents
  End If
End Sub
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac

Сообщение отредактировал InExSu - Понедельник, 26.03.2018, 13:40
 
Ответить
Сообщение[vba]
Код
Option Explicit

Sub ПереносБезПовторов()

  Dim shDest As Worksheet, shSour As Worksheet
  Set shDest = ActiveWorkbook.Worksheets("База")
  Set shSour = ActiveWorkbook.Worksheets("Форма")

  Dim sTxt As String, r As Range, x As Long
  With shSour
    For x = .UsedRange.Row To _
        .UsedRange.Row + .UsedRange.Rows.Count - 1
      Set r = shDest.Cells.Find(what:=.Cells(x, 1).Value, lookat:=xlWhole)
      If Not r Is Nothing Then _
         sTxt = sTxt & ", " & r.Value
    Next
  End With

  If Len(sTxt) > 0 Then
    MsgBox "Номера уже внесены в базу " & sTxt
  Else
    shSour.UsedRange.Copy
    
    With shDest
      .Cells(.UsedRange.Row + .UsedRange.Rows.Count, 1).PasteSpecial _
    Paste:=xlValues
    End With
    
    shSour.UsedRange.ClearContents
  End If
End Sub
[/vba]

Автор - InExSu
Дата добавления - 26.03.2018 в 13:39
sboy Дата: Понедельник, 26.03.2018, 13:40 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
можно так например
убрать exit, собрать все значения в результирующую строку, потом проверить строку на длину и вывести сообщение с выходом или продолжить работу макроса


Яндекс: 410016850021169
 
Ответить
Сообщениеможно так например
убрать exit, собрать все значения в результирующую строку, потом проверить строку на длину и вывести сообщение с выходом или продолжить работу макроса

Автор - sboy
Дата добавления - 26.03.2018 в 13:40
werty456 Дата: Понедельник, 26.03.2018, 14:38 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Option Explicit

Sub ПереносБезПовторов()

Dim shDest As Worksheet, shSour As Worksheet
Set shDest = ActiveWorkbook.Worksheets("База")
Set shSour = ActiveWorkbook.Worksheets("Форма")

Dim sTxt As String, r As Range, x As Long
With shSour
    For x = .UsedRange.Row To _
        .UsedRange.Row + .UsedRange.Rows.Count - 1
    Set r = shDest.Cells.Find(what:=.Cells(x, 1).Value, lookat:=xlWhole)
    If Not r Is Nothing Then _
        sTxt = sTxt & ", " & r.Value
    Next
End With

If Len(sTxt) > 0 Then
    MsgBox "Номера уже внесены в базу " & sTxt
Else
    shSour.UsedRange.Copy
    
    With shDest
    .Cells(.UsedRange.Row + .UsedRange.Rows.Count, 1).PasteSpecial _
    Paste:=xlValues
    End With
    
    shSour.UsedRange.ClearContents
End If
End Sub


При переносе из Листа "Форма" переносится все что на нем есть, а необходимо чтобы только указанные столбцы,
При переносе из Листа "Форма" на Лист "База" необходимо сравнивать только один столбец. К примеру А. А остальные переносить как есть
 
Ответить
Сообщение
Option Explicit

Sub ПереносБезПовторов()

Dim shDest As Worksheet, shSour As Worksheet
Set shDest = ActiveWorkbook.Worksheets("База")
Set shSour = ActiveWorkbook.Worksheets("Форма")

Dim sTxt As String, r As Range, x As Long
With shSour
    For x = .UsedRange.Row To _
        .UsedRange.Row + .UsedRange.Rows.Count - 1
    Set r = shDest.Cells.Find(what:=.Cells(x, 1).Value, lookat:=xlWhole)
    If Not r Is Nothing Then _
        sTxt = sTxt & ", " & r.Value
    Next
End With

If Len(sTxt) > 0 Then
    MsgBox "Номера уже внесены в базу " & sTxt
Else
    shSour.UsedRange.Copy
    
    With shDest
    .Cells(.UsedRange.Row + .UsedRange.Rows.Count, 1).PasteSpecial _
    Paste:=xlValues
    End With
    
    shSour.UsedRange.ClearContents
End If
End Sub


При переносе из Листа "Форма" переносится все что на нем есть, а необходимо чтобы только указанные столбцы,
При переносе из Листа "Форма" на Лист "База" необходимо сравнивать только один столбец. К примеру А. А остальные переносить как есть

Автор - werty456
Дата добавления - 26.03.2018 в 14:38
InExSu Дата: Понедельник, 26.03.2018, 14:52 | Сообщение № 15
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
werty456,
С файлом из сообщения 5 работает как вы хотите в сообщении 14


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщениеwerty456,
С файлом из сообщения 5 работает как вы хотите в сообщении 14

Автор - InExSu
Дата добавления - 26.03.2018 в 14:52
werty456 Дата: Понедельник, 26.03.2018, 16:03 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
werty456,
С файлом из сообщения 5 работает как вы хотите в сообщении 14


Да, но только не сравнивается с тем что занесено уже в базу.
Подскажите как видоизменить код, а то я макросами не очень дружу
 
Ответить
Сообщение
werty456,
С файлом из сообщения 5 работает как вы хотите в сообщении 14


Да, но только не сравнивается с тем что занесено уже в базу.
Подскажите как видоизменить код, а то я макросами не очень дружу

Автор - werty456
Дата добавления - 26.03.2018 в 16:03
InExSu Дата: Понедельник, 26.03.2018, 16:19 | Сообщение № 17
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
как видоизменить код

Нужен файл-пример.


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщение
как видоизменить код

Нужен файл-пример.

Автор - InExSu
Дата добавления - 26.03.2018 в 16:19
werty456 Дата: Понедельник, 26.03.2018, 16:33 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Нужен файл-пример.


Файл пример в сообщении №5, там данные заносятся со столбца А листа "Форма" на лист "База" но нет сравнения одинаковых номеров. В базу заносится все подряд
 
Ответить
Сообщение
Нужен файл-пример.


Файл пример в сообщении №5, там данные заносятся со столбца А листа "Форма" на лист "База" но нет сравнения одинаковых номеров. В базу заносится все подряд

Автор - werty456
Дата добавления - 26.03.2018 в 16:33
InExSu Дата: Понедельник, 26.03.2018, 17:00 | Сообщение № 19
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
К сообщению приложен файл: werty456_794928.xlsm (26.4 Kb)


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеЮтуб

Автор - InExSu
Дата добавления - 26.03.2018 в 17:00
werty456 Дата: Понедельник, 26.03.2018, 18:45 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
К сообщению приложен файл: werty456_794928.xlsm(26Kb)


Спасибо большое!!!
Разобрался)))
 
Ответить
Сообщение
К сообщению приложен файл: werty456_794928.xlsm(26Kb)


Спасибо большое!!!
Разобрался)))

Автор - werty456
Дата добавления - 26.03.2018 в 18:45
  • Страница 1 из 1
  • 1
Поиск:

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