powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
25 сообщений из 30, страница 1 из 2
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38418187
BELARUSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как сделать так что бы данные ячеек от "С" до "I" слились в одну ячейку во вкладке "заказы" при УСЛОВИЯХ :
1. статус звонка должен быть "да"
2. При чем заполнение происходит как только запишем № звонка во вкладке "Заказы"

образец прилагаю.
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38418315
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BELARUSs,
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38418319
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант - с доп.столбцом. Дабы не напрягать ВПР() восемь раз поиском...

P.S. С другой стороны - почему бы не разрешить UDF и не использовать Join() для сцепки текста?
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38418386
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно макросом, код в модуле листа Заказы:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim a(), Rng As Range, x As Range, xn As Range
  Set Rng = Intersect(Target, Columns(1))
  If Rng Is Nothing Then Exit Sub
  Application.EnableEvents = False
  With Лист1.UsedRange.Columns(1)
    For Each x In Rng
      Set xn = .Find(x.Value, LookIn:=xlValues, LookAt:=xlWhole)
      If xn Is Nothing Then
        x.Offset(, 1).ClearContents
      Else
        If StrComp(xn.Offset(, 1).Value, "да", vbTextCompare) = 0 Then
          a = xn.EntireRow.Columns("C:I").Value
          x.Offset(, 1).Value = Join(Array(a(1, 1), a(1, 2), a(1, 3), a(1, 4), a(1, 5), a(1, 6), a(1, 7)))
        Else
          x.Offset(, 1).ClearContents
        End If
      End If
    Next
  End With
  Application.EnableEvents = True
End Sub
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38418404
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZVI, извращенец

Но я - извращенец ещё круче:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
    Dim z As Worksheet, nRow&
    Set z = ThisWorkbook.Sheets("Çâîíêè")
    nRow = Application.Match(Target.Value, z.Columns(1), 0)
    Target.Offset(, 1) = IIf(nRow = 0 Or z.Cells(nRow, 2) = "äà", Join(Application.Index(z.Cells(nRow, 3).Resize(, 8).Value, 1, 0), " "), "")
End Sub
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38418405
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь за кодировку
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
    Dim z As Worksheet, nRow&
    Set z = ThisWorkbook.Sheets("Звонки")
    nRow = Application.Match(Target.Value, z.Columns(1), 0)
    Target.Offset(, 1) = IIf(nRow = 0 Or z.Cells(nRow, 2) = "да", Join(Application.Index(z.Cells(nRow, 3).Resize(, 8).Value, 1, 0), " "), "")
End Sub

...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38418410
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, ладно... Вспомним ещё про тупой неверный ввод...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
    Dim z As Worksheet, nRow
    Set z = ThisWorkbook.Sheets("Звонки")
    nRow = Application.Match(Target.Value, z.Columns(1), 0)
    If VarType(nRow) = vbError Then
        Target.Offset(, 1) = ""
    Else
        Target.Offset(, 1) = IIf(z.Cells(nRow, 2) <> "да", "", Join(Application.Index(z.Cells(nRow, 3).Resize(, 8).Value, 1, 0), " "))
    End If
End Sub

...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38418805
BELARUSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMКак вариант - с доп.столбцом. Дабы не напрягать ВПР() восемь раз поиском...

P.S. С другой стороны - почему бы не разрешить UDF и не использовать Join() для сцепки текста?

а зачем доп столбец, если сравнивать можно с цифрами первого столбца.
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38418868
BELARUSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMАга, ладно... Вспомним ещё про тупой неверный ввод...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
    Dim z As Worksheet, nRow
    Set z = ThisWorkbook.Sheets("Звонки")
    nRow = Application.Match(Target.Value, z.Columns(1), 0)
    If VarType(nRow) = vbError Then
        Target.Offset(, 1) = ""
    Else
        Target.Offset(, 1) = IIf(z.Cells(nRow, 2) <> "да", "", Join(Application.Index(z.Cells(nRow, 3).Resize(, 8).Value, 1, 0), " "))
    End If
End Sub



заработало!
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38418924
BELARUSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕСТЬ ПРОБЛЕМА. НЕ МОГУ КОД ПЕРЕНЕСТИ В СВОЙ ФАЙЛ. ВЕРНЕЕ ПРАВИЛЬНО ПЕРЕНЕСТИ С КОРРЕКТИРОВКОЙ.

ПРИЛАГАЮ ФАЙЛ В КОТОРЫЙ НАДО. ПОМОЖЕТЕ?
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38419123
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM, есть такое :)
У меня учтено, что в Target могут быть несколько ячеек из столбца A, например, при групповом копировании/удалении.
Ну и Application.EnableEvents = False/True исключает повторный запуск кода при выполнении Worksheet_Change.
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38419408
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BELARUSs,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
    If Not (Target.Rows.Count = 1 And Target.Columns.Count = 1) Then Exit Sub
    
    Dim z As Worksheet, nRow
    ' Имя листа со звонками берется из ячейки E1
    Set z = ThisWorkbook.Sheets(CStr(Target.Worksheet.[e1]))
    Application.EnableEvents = False
    nRow = Application.Match(Target.Value, z.Columns(1), 0)
    If VarType(nRow) = vbError Then
        Target.Offset(, 4) = ""
    Else
        Target.Offset(, 4) = IIf(z.Cells(nRow, 3) <> "да", "", z.Cells(nRow, 5) & " : " & _
            z.Cells(nRow, 6) & " " & z.Cells(nRow, 7) & " " & z.Cells(nRow, 8) & " : " & z.Cells(nRow, 13))
    End If
    Application.EnableEvents = True
End Sub


Не забудьте указать в ячейке E1 имя листа со звонками.
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423446
BELARUSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMBELARUSs,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
    If Not (Target.Rows.Count = 1 And Target.Columns.Count = 1) Then Exit Sub
    
    Dim z As Worksheet, nRow
    ' Имя листа со звонками берется из ячейки E1
    Set z = ThisWorkbook.Sheets(CStr(Target.Worksheet.[e1]))
    Application.EnableEvents = False
    nRow = Application.Match(Target.Value, z.Columns(1), 0)
    If VarType(nRow) = vbError Then
        Target.Offset(, 4) = ""
    Else
        Target.Offset(, 4) = IIf(z.Cells(nRow, 3) <> "да", "", z.Cells(nRow, 5) & " : " & _
            z.Cells(nRow, 6) & " " & z.Cells(nRow, 7) & " " & z.Cells(nRow, 8) & " : " & z.Cells(nRow, 13))
    End If
    Application.EnableEvents = True
End Sub


Не забудьте указать в ячейке E1 имя листа со звонками.


переименовал. но ошибка . принтскрин прикрепил
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423450
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BELARUSs,

По-моему из сообщения об ошибке все понятно, у вас в модуле две процедуры с одинаковым названием.
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423456
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BELARUSs,

И, кстати, я отсюда вижу, что вы вставляете код в модуль не того листа, что нужно
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423463
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* а, нет, вроде того листа....
Тогда что у вас в этом модуле делает _Change() со вставкой таймкода во второй столбец и автоподбором ширины? Данные заказа - однозначны, и определяются номером звонка... или всё же и здесь надо при каждом изменении - проставлять дату/время? - у вас в примере-образце этого не было.
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423476
BELARUSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM* а, нет, вроде того листа....
Тогда что у вас в этом модуле делает _Change() со вставкой таймкода во второй столбец и автоподбором ширины? Данные заказа - однозначны, и определяются номером звонка... или всё же и здесь надо при каждом изменении - проставлять дату/время? - у вас в примере-образце этого не было.

этот код подключает автоматом календарь во втором столбце, при изменении данных (№ звонка) в первом столбце.
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423486
BELARUSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BELARUSsAndreTM* а, нет, вроде того листа....
Тогда что у вас в этом модуле делает _Change() со вставкой таймкода во второй столбец и автоподбором ширины? Данные заказа - однозначны, и определяются номером звонка... или всё же и здесь надо при каждом изменении - проставлять дату/время? - у вас в примере-образце этого не было.

этот код подключает автоматом календарь во втором столбце, при изменении данных (№ звонка) в первом столбце.
прилагаю пример
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423494
BELARUSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot BELARUSs]AndreTM* а, нет, вроде того листа....
или всё же и здесь надо при каждом изменении - проставлять дату/время? - у вас в примере-образце этого не было.
дата проставляется автоматически при изменении данных в первом столбце
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423618
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что даст ВАШ пример? Тем более, что вы выкладываете то же, что было до этого...

Вам же код дан? - дан. Добавьте код в нужное место процедуры .
И предварительно разберите этот код на вашем выложенном примере - что именно он делает.
И только тогда - добро пожаловать с вопросами.
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423697
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подстроил код под реальные данные
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423742
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учтите только, что я дал кодовое имя листу с заказами Sh1_Calls
Это сделано для того, чтобы не зависеть от пользовательского названия листа, т.к. оно, похоже, будет меняться от месяца к месяцу - сейчас там ЗвонкиОКТ2013

Кодовое имя листа меняется так:
1. В VBE нажать Ctrl-R, чтобы перейти в окно Project Explorer-a.
2. Ткнуть в объект листа звонков и нажать F4
3. В самом верхнем свойстве (Name) записать Sh1_Calls и нажать Enter
Обратите внимание на то, что ниже есть свойство Name без круглых скобок, это пользовательское имя листа, которое меняется в интерфейсе Excel
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38423745
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатка, должно быть Учтите только, что я дал кодовое имя листу с заказами звонков Sh1_Calls
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38425312
BELARUSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZVIУчтите только, что я дал кодовое имя листу с заказами Sh1_Calls
Это сделано для того, чтобы не зависеть от пользовательского названия листа, т.к. оно, похоже, будет меняться от месяца к месяцу - сейчас там ЗвонкиОКТ2013

Кодовое имя листа меняется так:
1. В VBE нажать Ctrl-R, чтобы перейти в окно Project Explorer-a.
2. Ткнуть в объект листа звонков и нажать F4
3. В самом верхнем свойстве (Name) записать Sh1_Calls и нажать Enter
Обратите внимание на то, что ниже есть свойство Name без круглых скобок, это пользовательское имя листа, которое меняется в интерфейсе Excel

спасибо большое!! Все работает!
...
Рейтинг: 0 / 0
как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
    #38425912
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BELARUSsспасибо большое!! Все работает!
Рад, что помогло и спасибо, что подтвердили это.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как сделать так что бы данные ячеек слились в одну ячейку при 2 условиях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]