Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
1
Excel

Макрос удаления лишнинего текста в ячейке, и оставить нужное слово, после копирования текста из 1С в Excel

12.04.2023, 16:23. Показов 619. Ответов 14

Author24 — интернет-сервис помощи студентам
Доброго дня друзья.Прошу вас помочь мне создать МАКРОС, который после копирования текста в ячейку таблицы из программы 1с в Excel, сможет удалить лишние слова , а нужное слово оставить.Чтобы не проделывать в ручную в каждой ячейке столбца.

1)Пример : я копирую "40702810240000037348, Сбербанк ПАО" из этого мне нужно оставить только слово Сбербанк
2)Пример : я копирую "40702810100000036904, ПАО БАНК ЗЕНИТ" из этого нужно оставить только слово Зенит

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

Прошу вас вставить макрос в таблицу файла, которого я прикрепил, и продублировать ее здесь в теме. Огромное спасибо всем неравнодушным.
Вложения
Тип файла: xlsx Брук, реестр бух.xlsx (186.2 Кб, 18 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2023, 16:23
Ответы с готовыми решениями:

Макрос для поиска текста в PDF и копирования в excel
добрый день! посталена вот такая задача, хотел бы ей как-то автоматизировать, что можете...

создать макрос в excel замена текста в ячейке на картирку из папки
Добрый день. Нужна помощь в написании макроса, поскольку сама в этом вообще ничего не понимаю. Суть...

Подправить макрос по замене текста в ячейке, если в другой ячейке определенный текст
Всем привет. Имеется макрос, который из определенной папки открывает файлы dbf, и обрабатывает в...

Выписать из текста нужное слово
Добрый день. Нужно составить программу, которая выписывает из предложения нужное слово. Дано...

Макрос разбивки текста в ячейке
Добрый день! Возникло непреодалимое желание разбить текст в 1 ячейке на несколько ячеек. Текс =...

14
ᴁ®
Эксперт MS Access
3650 / 2006 / 427
Регистрация: 13.12.2016
Сообщений: 6,900
Записей в блоге: 5
12.04.2023, 16:39 2
Zizu-, копируете по одному или блоком для кучи ячеек? Сколько всевозможных банков ибо по этому примеру не понять какой алгоритм применить.
0
Часто онлайн
864 / 579 / 263
Регистрация: 09.01.2017
Сообщений: 1,951
12.04.2023, 16:42 3
Zizu-,
вы хотите это делать на лету при вставке в ячейку данных?
или после вставки включать макрос и весь столбец менять?
0
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
12.04.2023, 16:48  [ТС] 4
копируете по одному или блоком для кучи ячеек? Сколько всевозможных банков ибо по этому примеру не понять какой алгоритм применить

Смотрите. Алгоритм такой есть сумма 2 млн руб. одна фирма должна выплатить другой.
фирма возращает долг авансовыми платежами. например 1млн+500 тысяч+500 тысяч = все сумма выплачена.

Каждый платеж может быть выплачен разными банками. А копировать могу, как блоком , так и одинарно.

1) платеж 1 млн оплачен банк (Зенит)
2) платеж 500 тысяч оплачен (банк Зенит)
3)платеж 500 тысяч оплачен (банк Сбербанк)

Добавлено через 2 минуты
Можно просмотреть два макроса
на лету или когда заполнится весь столбец и применить.
0
ᴁ®
Эксперт MS Access
3650 / 2006 / 427
Регистрация: 13.12.2016
Сообщений: 6,900
Записей в блоге: 5
12.04.2023, 16:51 5
Цитата Сообщение от Zizu- Посмотреть сообщение
фирма возращает долг авансовыми платежами.
Вот это поворот....
0
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
12.04.2023, 16:58  [ТС] 6
Фирма может также всю сумму за раз выплатить. Но эта не суть.

Добавлено через 2 минуты
Можно просмотреть два макроса
на лету или когда заполнится весь столбец и применить.
0
ᴁ®
Эксперт MS Access
3650 / 2006 / 427
Регистрация: 13.12.2016
Сообщений: 6,900
Записей в блоге: 5
12.04.2023, 17:11 7
Цитата Сообщение от Zizu- Посмотреть сообщение
Фирма может также всю сумму за раз выплатить. Но эта не суть.
а я про Ерему.
Цитата Сообщение от АЕ Посмотреть сообщение
Сколько всевозможных банков
Ладно, ждите пока насыпят на все случаи жизни. Я пройду мимо.
0
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
12.04.2023, 17:13  [ТС] 8
Банков только два Зенит и Сбербанк
0
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
12.04.2023, 17:32 9
Zizu-,

ну пройдитесь по всему столбцу.
Если строка содержит Зенит, поменяйте ее на зенит
Так же и с Сбербанком...

Добавлено через 58 секунд
Кстати в прикрепленном файле не увидел таких длинных строк, что вы написали...
0
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
12.04.2023, 17:35  [ТС] 10
Смотрите каждый раз когда я буду копировать из программы 1с в excelТо копируемая информация будет начинается следующим образом 40702810240000037348, Сбербанк ПАО

А мне нужно, чтобы Макрос среагирвал после копирования , и оставил в ячейке только Сбербанк.А номер счет удалился.

А пока у меня нет макроса, то мне приходится заходить в ячейку, удалять лишнее , и оставлять одно слово.
0
ᴁ®
Эксперт MS Access
3650 / 2006 / 427
Регистрация: 13.12.2016
Сообщений: 6,900
Записей в блоге: 5
12.04.2023, 17:46 11
Для активной ячейки (одной) и содержимого буфера обмена из 1С
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Sub ib()
Dim s: s = ClipboardText()
If InStr(1, s, "Сбербанк", vbTextCompare) > 0 Then ActiveCell.Value = "Сбербанк"
If InStr(1, s, "Зенит", vbTextCompare) > 0 Then ActiveCell.Value = "Зенит"
End Sub
Function ClipboardText() ' чтение из буфера обмена
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        ClipboardText = .GetText
    End With
End Function
0
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
12.04.2023, 18:08  [ТС] 12
Сейчас буду пробывать ,сразу отпишу о результате.

Добавлено через 7 минут
Опробовал Макрос он применяется только к банку зенит, а на сбербанк не реагирует макрос. Можете пожалуйста тоже самое сделать и к сбербанку

Было бы здорово если он смог бы обработать не только одну ячейку , а все те которые содержат например банк зенит. Можно так сделать ?Или сложно

Добавлено через 10 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Sub ib()
Dim s: s = ClipboardText()
If InStr(1, s, "Зенит", vbTextCompare) > 0 Then ActiveCell.Value = "Зенит"
If InStr(1, s, "Сбербанк", vbTextCompare) > 0 Then ActiveCell.Value = "Сбербанк"
End Sub
Function ClipboardText() ' чтение из буфера обмена
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        ClipboardText = .GetText
    End With
End Function
Для сбербанка ,я догадался поменять местами. Остается только понять как можно этот макрос применить не к одной ячейке, а к группе ячеек например по сбербанку.??? Можете доработать макрос пожалуйста
0
1840 / 582 / 251
Регистрация: 26.03.2022
Сообщений: 1,090
Записей в блоге: 1
12.04.2023, 20:06 13
Лучший ответ Сообщение было отмечено Zizu- как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub ZiZu()
    Const TopCell As String = "J3", MaxBlank As Integer = 300
    Dim Banks: Banks = Array("Сбербанк", "Зенит", "Банк Кремлёвский", "Абсолют Банк")
 
    nBlank = 0
    i = 0
    Application.ScreenUpdating = False
    Do
        Set iRang = Range(TopCell).Offset(i, 0)
        R = iRang.Value
        i = i + 1
        If IsEmpty(R) Then
            nBlank = nBlank + 1
        Else
            nBlank = 0
            For Each Bank In Banks
                If InStr(1, R, Bank, 1) > 0 Then
                    iRang.Value = Bank
                    Exit For
                End If
            Next
        End If
    Loop Until nBlank >= MaxBlank
    Application.ScreenUpdating = True
End Sub
В массиве Banks перечислите банки с какими работаете - надеюсь, их не так много
TopCell определяет адрес первой ячейки с данными
MaxBlank определяет, сколько максимум ячеек вподряд могут быть пустыми - у Вас могут быть плеши в указании банков
В приложенном файле уберите расширение xls
На листе за 2023 год я вставил данные, на копии этого листа запускал макрос
Вложения
Тип файла: xls Брук, реестр бух.xlsm.xls (216.9 Кб, 5 просмотров)
1
ᴁ®
Эксперт MS Access
3650 / 2006 / 427
Регистрация: 13.12.2016
Сообщений: 6,900
Записей в блоге: 5
12.04.2023, 20:24 14
Цитата Сообщение от Zizu- Посмотреть сообщение
Опробовал Макрос он применяется только к банку зенит
Цитата Сообщение от Zizu- Посмотреть сообщение
1)Пример : я копирую "40702810240000037348, Сбербанк ПАО" из этого мне нужно оставить только слово Сбербанк
2)Пример : я копирую "40702810100000036904, ПАО БАНК ЗЕНИТ" из этого нужно оставить только слово Зенит
Ваши примеры содержания буфера. На них и проверял. На них и наводящие вопросы задавал. А вы про долги и авансы. Если в буфере винегрет из всего, то макрос вернет последнее найденное, как вы и догадались.
Не благодарите.
1
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
13.04.2023, 10:35  [ТС] 15
Только смог добраться до компьютера. Я открыл файл, применил его и все работает. Даже если между ячейками есть плеши. Супер. Огромнейшее вам спасибо!
0
13.04.2023, 10:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2023, 10:35
Помогаю со студенческими работами здесь

Макрос копирования таблицы и текста из ячеек
Добрый день. У меня вот такой вопрос. Есть книга , а в ней 150 листов. Эта книга – большая...

Функция удаления слов из текста, оставить только цифры в числовом формате
Здравствуйте, есть вопрос по дополнению функции, как сделать так, чтобы цифры получались не такими...

Как окрасить нужное слово или часть текста в textbox'e?
Пожалуйста, подскажите, как окрасить нужное слово или часть текста в textbox'e? Перед созданием...

Макрос - удаление текста между символами в ячейке
Есть эксель файл, в определенном столбце на каждой строке текст с html тегами. Нужен макрос, чтобы...

Макрос вставки текста в верхнем колонтитуле в ячейке таблицы
Всем привет! Ребята, подскажите, как макросом в верхнем колонтитуле выбрать таблицу, в этой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru