Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Копирование из Excel в другие приложения только выделенные ячейки
 
Цитата
Jack Famous написал:
Потестируйте хорошенько - что-то меня смущает…
Всячески погонял, ошибок в том числе и с vbCrLf и Mid$(tx, 2) не выявил

Цитата
Jack Famous написал:
я не уверен, что ваш код будет корректно работать с различными вариантами выделенных диапазонов
Тут да - могут всё, что угодно выделить, поэтому добавил в начало проверку на принадлежность выделения к диапазону ячеек (Range)
Код
If Not TypeOf Selection Is Range Then End


Цитата
Jack Famous написал:
сделал  универсальную функцию
Отличная функция! ;)
Копирование из Excel в другие приложения только выделенные ячейки
 
Урааа, спасибо дороги форумчане.
А то я уже хотел к психиатру обращаться... :D

Цитата
Дмитрий(The_Prist) Щербаков написал:
изначально много букафф в стартовом сообщении,
Извиняюсь, хотел подробнее описать проблему и что ранее уже было сделано, чтобы не предлагались в ответ ранее выполненные действия, а эффект оказался в точности да наоборот :cry:

Jack Famous, спасибо! Но есть небольшое НО, при выделении данных из разных СТРОК, они будут разделятся табуляцией как будто это разные СТОЛБЦЫ. Но переделать для отслеживания смены строки и вставки vbCrLf - не составит труда. сделано см код ниже

Скрытый текст


В итоге те два варианта упомянутые мной в первом посте и оказались решением данной проблемы, жаль что в Excel есть такой баг... а может быть фича
Всем огромное спасибо!
Изменено: Viktor Vavilov - 29.11.2022 10:35:51
Копирование из Excel в другие приложения только выделенные ячейки
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
а выделили Вы до копирования какой диапазон? Были ли скрытые ячейки среди выделенных?

Выделялся до копирования НЕ весь тот диапазон, который вставился - в этом собственно и вся проблема. И ячейки/столбцы/строки не были скрыты.
Выше был код выделения и копирования (он есть и в файле примера).
Цитата
Range("B" & rr & ":F" & rr & ",K" & rr & ",A" & rr & ",M" & rr & ",V" & rr & ",AA" & rr).Copy
Но оно (выделение) может быть вообще рандомное. Суть такова, что при выделении ячеек A1 и С1 их копировании, в Excel вставится A1C1, а в остальные приложения A1B1C1, также и со столбцами - при выделении A1 и A3 - вставится в Excel A1A3, а в остальные приложения A1A2A3.


Попробовал ваше предложение, и ничего не получилось (см приложенный скрин).  Честно, мне уже начинает казаться, что я единственный с такой проблемой и у всех остальных это всё работает :cry:
Код
Sub Copy_to_1()
Dim rr As Long
    rr = Selection.Row
    Range("B" & rr & ":F" & rr & ",K" & rr & ",A" & rr & ",M" & rr & ",V" & rr & ",AA" & rr).Select
    Selection.SpecialCells(xlCellTypeVisible).Copy
End Sub
Изменено: Viktor Vavilov - 29.11.2022 05:03:29
Копирование из Excel в другие приложения только выделенные ячейки
 
Все верно, в MS Word вставился весь диапазон начиная с А5 до АА5 (27 полей) - просто у вас вставленная таблица за границы листа вышла, а должны было вставится эти диапазоны "A" ",B:F" ",K" ",M" ",V" ",AA" (10 выделенных полей)

PS Как прикрепить картинку чтобы в сообщении была? что-то совсем туплю
Изменено: Viktor Vavilov - 28.11.2022 08:49:05
Копирование из Excel в другие приложения только выделенные ячейки
 
New, спасибо за ценные замечания
1. Бесспорно Long для этих целей подойдет больше
2. Действительно, если не используется вначале листа какое либо количество строк есть большая вероятность затереть перекопированием начальные данные - тут как говорится пока не попадешь в просак - проблему не увидишь
3. В моем проекте первичный датасет я получаю каждый раз новый из БД (с предварительной очисткой и другими действиями) поэтому пошел по пути наименьшего сопротивления. Но честно-честно меня этот вариант очень коробил именно из-за описанных вами вещей (я это упоминал в первом посте). А реализовывать с доп листом (который надо скрывать от посторонних глаз) - просто в виду не нужности - не хочется

Что касается копирования - в любое место - блокнот, гуглшит, яндекс таблицы и даже внутри MS - тот же ворд, поверпоинт, аксесс и д.р. - везде не работает копирование выделенных (разнесенных) ячеек
Изменено: Viktor Vavilov - 28.11.2022 06:52:52
Копирование из Excel в другие приложения только выделенные ячейки
 
Еще раз здравствуйте.
К сожалению не нашлось ответов на мой вопрос.
Видимо действительно не существует подобного нативного решения

Однако как и обещал прикладываю вариант своего решения (из 1 сообщения это вариант №2)
Для начала поясню какой была задача:
Имеется датасет с определенной последовательностью полей, и для разных "внешних" приложений требуется различные данные из этого датасета, где-то только 1,2,4 и 6 поля (столбцы) где-то 2, 5 и 7 и т.д.
Было сделано несколько кнопок для каждого случая и при выборе необходимой строки выделялись и копировались необходимые столбцы ну а дальше проблема изложена в первом сообщении

Пример выбора необходимых полей и вызова процедуры рекопирования (на каждую кнопку можно вешать свой набор полей)
Код
    rr = Selection.Row
    Range("B" & rr & ":F" & rr & ",K" & rr & ",A" & rr & ",M" & rr & ",V" & rr & ",AA" & rr).Copy
    Call copy_to


Сама процедура рекопирования тут можно пользоваться одним из двух методов и у обоих есть свои минусы (см. в комментарии внутри)
Код
Sub copy_to()
Dim cc As Integer
cc = ActiveSheet.UsedRange.Rows.Count
'особенности: вставляет не переключаясь на выделенную ячейку, копирует форматы, может вставлять после вырезания range.cut
    ActiveSheet.Paste Range("B" & cc + 100)
'особенности: вставляет переключаясь на выделенную ячейку, копирует только значения, не вставляет вырезаные значения range.cut
   'ActiveSheet.Range("B" & cc + 100).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("B" & cc + 100).CurrentRegion.Copy
End Sub


Минусов у этого решения полно (о них я писал и начале, и в комментариях) но меня локально пока всё устраивает :)
В общем может кому-то поможет

P.S. ...и все интересно, есть ли другой более элегантный (и быстрый) способ? :sceptic: ....
Изменено: Viktor Vavilov - 28.11.2022 06:08:33 (добавил пример)
Копирование из Excel в другие приложения только выделенные ячейки
 
Цитата
Ham13 написал:
Я может не до конца понял, копирование выделенных ячеек на свободный участок в эксель (Например в ячейку AA1), а далее уже копирование в другое приложение
Range("AA1").CurrentRegion.Copy

Суть вы правильно поняли, и один из путей решения тоже (я указал этот способ под номером 2)
Так как проект планируется для использования условными "бабушками",  которым трудно объяснить даже такую простую последовательность действий - меня интересует возможность (если таковая есть) в естественном виде скопировать/вставить - хоть с помощью волшебного сочетания клавиш, хоть с помощью неизвестного мне параметра/функции/и т.д. в VBA (c реализацией в VBA у меня проблема не стоит - оба варианта за часок -другой можно накидать, но не дает это сделать мысль, что возможно существует другой нативный или более оптимальный способ)
Копирование из Excel в другие приложения только выделенные ячейки
 
Здравствуйте уважаемые форумчане.
Давно волновал вопрос, но до последнего времени остро не стоял - Как скопировать из Excel в другие приложения только выделенные ячейки?

Честно, уделил поиску ответа на данный вопрос пару дней (не полных конечно же :) )
Из того, что находится - только темы "...копировать только отфильтрованные ячейки..." и "...скопировать без скрытых ячеек..." и сводится к использованию сочетания Ctrl+G и  выделение только видимых ячеек. Нашлась только одна тема на хабре и то без нужного мне ответа.
Данные решения не подходят так как ячейки не скрыты - они видны, и просто не попадают в селекшон

Я понимаю что Excel внутри себя имеет некоторые "расширенные" свойства буфера данных, и при копировании только выделенных ячеек и вставки их на этот/другой лист - все происходит как задумано, но стоит тут же вставить эти данные например в блокнот - магии не происходит и туда вставляются все данные находящиеся между выделенными ячейками.

У меня возникло идея только 2 способов реализации этого:
1. Проходится циклом по всем выделенным ячейкам, с копированием данных в какой-нибудь массив и дальнейшем переносом этих данных в клипборд (смущает скорость выполнения особенно при больших выборках)
2. После стандартного копирования выделенных ячеек - вставка их на временный лист/диапазон - с последующим повторным копированием ячеек (уже без пропусков) с этого диапазона в клипборд (смущает наличие "временного листа/диапазона" особенно при больших выборка стремящихся к максимальному значению столбцов/строк)

Может кто-нибудь наставить на путь истинный и подсказать заветную функцию/параметр/свойство если таковой имеется в VBA в нативном виде ну или подсказать более легкий алгоритм чем предложенные выше?

Заранее спасибо!
Изменено: Viktor Vavilov - 24.11.2022 14:02:09 (орфография)
Условное форматирование созданное макросом не применяется
 
Цитата
vikttur написал:
В профиле.1. Регистрационная информация-Имя2. Профиль форума-показывать имя (поставить галку)
Цитата
Дмитрий(The_Prist) Щербаков написал:
а чем поля "Обращение:", "Имя", "Фамилия" не подходят? Ведь именно они и отображаются, если заполнены.

Видимо руки у меня не из того места  :cry:  но в прикреплённых ниже скринах все эти поля заполонены и галка включена...

P.S. Не смог засунуть картинки под спойлер
Скрытый текст


UPD Пока не опубликовал новое сообщение - разницу и не видел...  :D  Авторство старых постов не поменялось
Условное форматирование созданное макросом не применяется
 
Цитата
sokol92 написал:
Проблема, вероятно, связана с тем, что Вы используете формулу массива в качестве формулы условного форматирования. Попробуйте заменить в макросе СУММ на СУММПРОИЗВ.

Еще раз огромное спасибо, помогло - всё отлично!

Цитата
vikttur написал:
i3anan , измените логин. Не нужно буквы цифрами подменять

Я понимаю п.п. 3.2. должен быть выполнен беспрекословно, но всё-же, есть ли возможность поменять отображаемое имя без изменения логина? Просто для меня это будет крайне не удобно, т.к. имеется многолетняя привязка на многих форумах именно к этому логину.
Изменено: i3anan - 27.08.2020 09:04:10
Условное форматирование созданное макросом не применяется
 
Здравствуйте уважаемы форумчане.
Сразу к делу:
При попытке создать правило условного форматирования макросом, правило создается но формат не применяется.
Причем, стоит зайти в редактирование этого правила (а именно в редактирование формулы) и ничего не изменяя - нажать ок/применить форматирование - правило начинает работать.
При повторном применении макроса - правило снова перестает работать

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

Макрос:
Код
Range("A2:C30").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=СУММ(Ч($A2&$B2&$C2=$A$2:$A$30&$B$2:$B$30&$C$2:$C$30))>1"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Interior.Color = 49407
Selection.FormatConditions(1).StopIfTrue = False

MS Office Plus 2019

Буду рад за оказанную помощь и заранее спасибо!
Изменено: i3anan - 24.08.2020 06:08:30
Выделение символов в строке
 
Kuzmich спасибо, но я уже перелопатил пару руководств и нашел  :)
плюс мне параллельно подсказали с соседнего ресурса (ссылку на который дал многоуважаемый Z)
Хамам Не место на НАШЕМ форуме!, http://planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=50788&result=new
 
После моего Вопроса к администрации отписалось как минимум 2 представителя, но ни один не ответил на вопрос... Да - так хорошо, НЕТ - ну на нет, как говорится...
Хамам Не место на НАШЕМ форуме!, http://planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=50788&result=new
 
Здравствуйте уважаемые ТС, форумчане и администрация.
Честно говоря, поначалу после происшествия и столь "теплого" приема даже и писать что-либо не хотелось. Но увидев, что есть и адекватно воспринявшие ситуацию люди, решил всё-таки отписаться.

На сколько мне известно, форумы создаются для безвозмездной взаимопомощи, я думаю ваш - не исключение. И вот когда «новичок» попросил о такой помощи, его сразу отправляют в платный раздел. Ситуация двоякая – раз. Параллельно вставляя фразочки – явно показывающие недоброжелательный настрой – два, причем нисколько не помогающие решить проблему – три. Действительно "радушный" прием...

Я естественно до конца сохраняя спокойствие, и решив по вышеописанным причинам попросить подобной помощи на соседних ресурсах, естественно предварительно уточнив из правил не запрещено ли данное действие (п.п.4.1). После чего эти же «участники» видимо на правах «старичков» форума, начинают мнить из себя администрацию.

В общем не сдержался, за что и прошу прощения. НО настолько ли Я ХАМ? Называя вещи своими именами? Не грубя, выражаясь литературным языком…ну да ладно администрацию не осуждают.
Теперь по делу, на параллельном ресурсе (том самом, в которое меня как котенка тыкали) на вопрос, который я задал дали ответ. Вопрос к администрации, есть ли возможность открыть ту самую тему (возможно с удалением «ошибок» прошлого), для внесения мной же ответа. Так как я считаю, что тема не должна страдать из-за когнитивных ошибок отдельных форумчан (в т.ч. и меня). Возможно кому-то пригодится решение, или кто-то предложит альтернативное решение...
Изменено: i3anan - 30.08.2013 23:19:47
Выделение символов в строке
 
И правила я знаю, п.п 4.1 находится в разделе "Не рекомендуется" а не "Запрещено".
Вас не напрягает, что "...вы заставляете сразу нескольких людей параллельно думать над вашей задачей и обесцениваете усилия тех, кто даст ответ вторым-третьим и т.д."[МОДЕРАТОР]
Изменено: i3anan - 30.08.2013 23:42:11
Выделение символов в строке
 
Скорее второе... А по поводу поиска - все найденные темы по запросу "подсветка", "выделение" приводят, простите за тавтологию, к выделению всей ячейки\строки\столбца, а вот внутри ячейки не нашел, однако буду рад, даже если Вы меня ткнете носом в такую тему...

Цитата
А примерчик - файл XL - все-таки приложите
не стал прикладывать, так как прикладывать нужно что-то, а на текущий момент нет ничего кроме идеи, которую изложил в первом посте весьма доходчиво
Изменено: i3anan - 29.08.2013 15:46:26
Выделение символов в строке
 
Здравствуйте уважаемые гуру Excel'я.
В вашей статье Поиск символов латини... есть пункт про подсветку символов определенным цветом.
Мне необходима подобная функция, но с небольшим различием. Необходимо выделение конкретных символов в ячейке по заданному образцу, например:
Ячейка1______Ячейка2___Ячейка3___Ячейка4___Ячейка5
абвгд________аб________0_________1_________абвгд
абвгд________гд________1_________2_________абвГД

Яч1 - исходный текст
Яч2 - образец для выделения
Яч3 - да\нет смена регистра
Яч4 - код цвета (условно)
Яч5 - результат

В общем как то так
макросик то несложный, и для тех кто знает синтаксис VBA проблем не составит,
Буду рад за любую оказанную помощь
Страницы: 1
Наверх