ExceLifeHack

ExceLifeHack

Прокачиваем знания о Microsoft Excel. Обучение Excel https://dreamhr.ru/excel Макросы VBA на заказ https://wa.me/79264771362
На Пикабу
16К рейтинг 2239 подписчиков 1 подписка 36 постов 32 в горячем
Награды:
самый сохраняемый пост недели более 1000 подписчиков

Перенос строк в Microsoft Excel

В Excel существует возможность переноса текста в ячейке для его отображения на нескольких строках. Ячейку можно настроить для автоматического переноса текста или ввести разрыв строки вручную.

Короткое видео ⬇⬇⬇

Рассмотрим каждый из вариантов переноса подробнее и разберём обратную операцию –удаление переносов.

Автоматический перенос текста

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

На вкладке Главная ► Перенести текст (Выравнивание):

Перенос строк в Microsoft Excel Microsoft Excel, Microsoft, Полезное, Vba, Обучение, Видео, Длиннопост, Microsoft office

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

Если текст отображается не полностью, то задана точная высота строки (столбца) или текст находится в объединенных ячейках.

Ручной ввод разрыва строки

Новую строку текста можно начать в любом месте ячейки.

1. Дважды щелкните ячейку или выделите ячейку, а затем нажмите F2, в которую требуется ввести разрыв строки.

2. Дважды щелкните в ячейке на место, в которое нужно вставить разрыв строки, и нажмите сочетание клавиш Alt+Enter:

Перенос строк в Microsoft Excel Microsoft Excel, Microsoft, Полезное, Vba, Обучение, Видео, Длиннопост, Microsoft office

Результат:

Перенос строк в Microsoft Excel Microsoft Excel, Microsoft, Полезное, Vba, Обучение, Видео, Длиннопост, Microsoft office

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

Перенос строк в Microsoft Excel Microsoft Excel, Microsoft, Полезное, Vba, Обучение, Видео, Длиннопост, Microsoft office

Удаление переносов строк

Ок, с переносами строк разобрались, а как быть в ситуации когда переносы не нужны?

В случае с автоматическими переносами, их просто нужно отключить, на вкладке Главная ► Перенести текст (Выравнивание).

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

1. Выделите область в которой нужно удалить переносы.

2. Нажмите сочетание клавиш Ctrl+H, в открывшемся окне выделите курсором поле Найти и нажмите сочетание клавиш Ctrl+J.

Вроде ничего не произошло, но для Excel запрос для поиска понятен:

Перенос строк в Microsoft Excel Microsoft Excel, Microsoft, Полезное, Vba, Обучение, Видео, Длиннопост, Microsoft office

Нажмите Заменить. Готово!

Если в строке, до переноса, нет пробела замена его не добавит!

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

Решить задачу, можно встроенной функцией =ПЕЧСИМВ(), которая очищает текст от всех непечатаемых символов, включая переносы строк:

Перенос строк в Microsoft Excel Microsoft Excel, Microsoft, Полезное, Vba, Обучение, Видео, Длиннопост, Microsoft office

Если в строке, до переноса, нет пробела формула его не добавит!

Более продвинутый вариант, использование макросов:

Sub RemoveCarriageReturnsSelection() 'Удаление переноса каретки в выделенном диапазоне
Selection.Replace What:=Chr(10), Replacement:=" " ' заменяем перенос на пробел
Selection.Replace What:=Chr(160), Replacement:="" ' удаляем символ "похожий" на пробел
Selection.Replace What:=" ", Replacement:=" " ' удаляем двойной пробел
End Sub

Sub RemoveCarriageReturnsSheet() 'Удаление переноса каретки на листе
Cells.Replace What:=Chr(10), Replacement:=" " ' заменяем перенос на пробел
Cells.Replace What:=Chr(160), Replacement:="" ' удаляем символ "похожий" на пробел
Cells.Replace What:=" ", Replacement:=" " ' удаляем двойной пробел
End Sub

Спасибо, что дочитали до конца!

Было полезно? Ставьте лайк, пишите, что думаете в комментариях и подписывайтесь на канал, если еще не сделали этого.

Показать полностью 6

Отправка писем через Gmail, ЯндексПочта и @mail из Excel

Создать интеграцию Microsoft Excel с Outlook, легко, средствами VBA. Можно ли отправлять письма другими почтовыми сервисами? Например, через Gmail, самый популярный в мире почтовый сервис, от Google.

Отправка писем через Gmail, ЯндексПочта и @mail из Excel Microsoft Excel, Компьютер, Полезное, Программирование, Mail ru, Vba, Длиннопост, Gmail, Яндекс Почта

Ответ можно, используя настройки SMTP, IMAP, POP.

Макросы приложенные к данной статье дают возможность отправить отдельный лист или книгу с помощью CDO.

CDO является библиотекой объектов, которая предоставляет интерфейс Messaging Application Programming Interface (MAPI), позволяет отправлять и получать сообщения.

Решение для MS Office без Outlook.

Алгоритм настройки макросов

Копируйте код в Личную книгу макросов или в файл своей надстройки;

Добавьте в код адрес нужной почты и пароль:

.Item(msConfigURL & "/sendusername") = "ДОБАВЬТЕ ВАШУ ПОЧТУ"

.Item(msConfigURL & "/sendpassword") = "ДОБАВЬТЕ ПАРОЛЬ"

.From = "ДОБАВЬТЕ ВАШУ ПОЧТУ" ' От кого = username почты

Подключите в редакторе VBA (Alt+F11) библиотеку Microsoft CDO для Windows 2000:

Отправка писем через Gmail, ЯндексПочта и @mail из Excel Microsoft Excel, Компьютер, Полезное, Программирование, Mail ru, Vba, Длиннопост, Gmail, Яндекс Почта
Отправка писем через Gmail, ЯндексПочта и @mail из Excel Microsoft Excel, Компьютер, Полезное, Программирование, Mail ru, Vba, Длиннопост, Gmail, Яндекс Почта

Код макроса на GitHub

Отправить текущий активный лист, как вложение по эл.почте

Отправить текущую книгу, как вложение по эл.почте

Скачать файл с макросами

Копируйте код на русской раскладке клавиатуры, чтобы сохранить комментарии.

Особенности настройки почты

Как настроить доступ к Gmail в сторонних почтовых клиентах

Если вы используете двухэтапную проверку, следуйте инструкции:

Пароль при установленной двухэтапной проверке
Отправка писем через Gmail, ЯндексПочта и @mail из Excel Microsoft Excel, Компьютер, Полезное, Программирование, Mail ru, Vba, Длиннопост, Gmail, Яндекс Почта

А как же наши дорогие Яндекс.Почта и @mail?

Чтобы их использовать, удалите или закомментируйте в коде макроса строки .Item(msConfigURL & "/smtpserver") кроме:

Отправка писем через Gmail, ЯндексПочта и @mail из Excel Microsoft Excel, Компьютер, Полезное, Программирование, Mail ru, Vba, Длиннопост, Gmail, Яндекс Почта

.Item(msConfigURL & "/smtpserver") = "smtp.yandex.ru"

Отправка писем через Gmail, ЯндексПочта и @mail из Excel Microsoft Excel, Компьютер, Полезное, Программирование, Mail ru, Vba, Длиннопост, Gmail, Яндекс Почта

tem(msConfigURL & "/smtpserver") = "smtp.mail.ru"

В заключение, удобный макрос для открытия почты Gmail из Excel при помощи Send Keys:

Sub ActivateGmail() " Активировать почту Gmail
' Открыть
Handle = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
RetVal = Shell(Handle, 1)
Application.Wait Now + TimeValue("00:00:02")
SendKeys ("https://mail.google.com/mail/u/0/#inb..."), True
Application.Wait Now + TimeValue("00:00:03")
SendKeys ("{ENTER}"), True
Application.Wait Now + TimeValue("00:00:02")
'Создать письмо
SendKeys ("C"), True
End Sub

Для браузера Chrome.

Чтобы сразу открывалось окно нового сообщения, в настройках включите Быстрые клавиши.

Измените Handle на путь вашего браузер, а SendKeys ("https://mail.google.com/mail/u/0/#inb...") на другой почтовый клиент, по логике должно работать.

Спасибо, что дочитали до конца!

Было полезно? Ставьте лайк, пишите, что думаете в комментариях и подписывайтесь на канал, если еще не сделали этого.

Показать полностью 5

Вывод списка файлов в папке на лист Excel

Перед вами стоит задача вывести списком содержимое папки? Этот пост для вас.

Вывод списка файлов в папке на лист Excel Microsoft Excel, Компьютер, Программирование, Полезное, Microsoft, Длиннопост

Вывести cписок файлов в папке можно макросом:

Sub FileListInFolder() 'Вывод содержимого папки на лист Excel
Dim V As String
Dim BrowseFolder As String
'открывает диалоговое окно выбора папки
With Application.FileDialog(msoFileDialogFolderPicker)
.title = "Выберите папку или диск"
.Show
On Error Resume Next
Err.Clear
V = .SelectedItems(1)
If Err.Number <> 0 Then
MsgBox "Вы ничего не выбрали!"
Exit Sub
End If
End With
BrowseFolder = CStr(V)
'добавляет лист и выводит на него шапку таблицы
ActiveWorkbook.Sheets.Add
With Range("A1:E1")
.Font.Bold = True
.Font.Size = 12
End With
Range("A1").Value = "Имя файла"
Range("B1").Value = "Путь"
Range("C1").Value = "Размер"
Range("D1").Value = "Дата создания"
Range("E1").Value = "Дата изменения"
'вызывает процедуру вывода списка файлов
'измените True на False, если не нужно выводить файлы из вложенных папок
ListFilesInFolder BrowseFolder, True
End Sub
Private Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean)
Dim FSO As Object
Dim SourceFolder As Object
Dim SubFolder As Object
Dim FileItem As Object
Dim r As Long
Dim x
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.getfolder(SourceFolderName)
r = Range("A65536").End(xlUp).Row + 1 'находит первую пустую строку
'выводит данные по файлу
For Each FileItem In SourceFolder.Files
Cells(r, 1).Formula = FileItem.Name
Cells(r, 2).Formula = FileItem.Path
Cells(r, 3).Formula = FileItem.Size
Cells(r, 4).Formula = FileItem.DateCreated
Cells(r, 5).Formula = FileItem.DateLastModified
r = r + 1
x = SourceFolder.Path
Next FileItem
'вызывает процедуру повторно для каждой вложенной папки
If IncludeSubfolders Then
For Each SubFolder In SourceFolder.SubFolders
ListFilesInFolder SubFolder.Path, True
Next SubFolder
End If
Columns("A:E").AutoFit
Set FileItem = Nothing
Set SourceFolder = Nothing
Set FSO = Nothing
End Sub

Копируйте код и сохраните его в Личной книге макросов.

Открыть редактор VBA Alt +F11, вызвать меню для выполнения или изменения макросов Alt + F8.

Показать полностью

Как отключить изменение ширины столбцов Сводной таблицы в Excel

Настроили красивый отчет, но при обновлении данных столбцы съезжают?

Для отключения изменения ширины столбцов Сводной таблицы при обновлении данных, установите курсор на любую ячейку таблицы.

Нажмите правую кнопку мыши и в появившемся меню выберите Параметры сводной таблицы:

Как отключить изменение ширины столбцов Сводной таблицы в Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Отчет, Длиннопост

На вкладке Макет и формат, уберите галку с пункта Автоматически изменять ширину столбцов при обновлении:

Как отключить изменение ширины столбцов Сводной таблицы в Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Отчет, Длиннопост

Готово! Теперь ширина столбцов будет такой, какую вы задали.

Если, часто работаете с сводными, есть смысл использовать макрос:

Sub PivotStaticColumn() 'Отключение автоматического изменения ширины столбцов при обновлении
Dim pvtTable As PivotTable
On Error Resume Next
Set pvtTable = ActiveSheet.PivotTables(ActiveCell.PivotTable.Name)
On Error GoTo 0
If Not pvtTable Is Nothing Then
ActiveSheet.PivotTables(ActiveCell.PivotTable.Name).HasAutoFormat = False
Else
MsgBox "Выделите ячейку Сводной таблицы!", vbExclamation, "Подсказка"
End If
End Sub

Копируйте нужный код и сохраните его в Личной книге макросов.

Открыть редактор VBA Alt +F11, вызвать меню для выполнения или изменения макросов Alt + F8.

Спасибо, что дочитали до конца!

Если Вам было интересно, ставьте лайк, пишите, что думаете в комментариях и подписывайтесь на канал, если еще не сделали этого.

Еще готовые решения:

Удаление пустых строк в Excel

Удаление пустых столбцов Excel

Показать полностью 2

Макрос для удаления пустых строк в Excel

Встречались в работе с ситуацией, когда исходные данные содержат пустые строки, мешающие дальнейшей, обработке информации, до их удаления?

Например, не строится Сводная таблица по всем данным или правильно не работает стандартный фильтр .

Исключая "ручной привод", максимально просто решает проблему, такой макрос:

Макрос для удаления пустых строк в Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Офис, Длиннопост

Копируйте код и сохраните его в Личной книге макросов или создайте свою надстройку:

Sub DelEmptyRows() 'Удаление пустых строк на активном листе

Dim i As Long

Dim rMay1 As Range

Dim rMay2 As Range

Set rMay1 = Application.Range(ActiveSheet.Range("A1"), _

ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))

Application.ScreenUpdating = False

'удаляем пустые строки

For i = 1 To rMay1.Rows.Count

If WorksheetFunction.CountA(rMay1.Rows(i).EntireRow) = 0 Then

If rMay2 Is Nothing Then

Set rMay2 = rMay1.Rows(i).EntireRow

Else

Set rMay2 = Application.Union(rMay2, rMay1.Rows(i).EntireRow)

End If

End If

Next

If rMay2 Is Nothing Then

MsgBox "Пустых строк не найдено.", vbInformation, "Информация"

Else:

rMay2.[Delete]

End If

Application.ScreenUpdating = True

End Sub

В продолжение к посту  Макрос для удаления пустых столбцов в книгах Excel.

Показать полностью 1

Создаём Личную книгу макросов VBA

Вам необходимо использовать один и тот же макрос (пользовательскую функцию) в разных рабочих книгах? Нет ничего проще, сохраните его в Личной книге макросов, файл которой имеет название — PERSONAL.XLSB. Он скрыто открывается при запуске программы MS Excel и доступен только на вашем ПК.

Создание и сохранение кода в Личной книге макросов

1. В строке состояния, нажмите иконку записи макроса:

Создаём Личную книгу макросов VBA Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

Или на вкладке Разработчик ► Запись макроса (Код):

Создаём Личную книгу макросов VBA Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

Если вкладка Разработчик отсутствует, нажмите в Строке меню или на Панели инструментов правую кнопку мыши и выберите в меню вариант Настройка ленты...:

Создаём Личную книгу макросов VBA Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

В окне настройки, установите галку Разработчик:

Создаём Личную книгу макросов VBA Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

2. В открывшемся диалоговом окне Запись макроса, из выпадающего списка Сохранить в: выберите вариант Личная книга макросов, нажмите на кнопку :

Создаём Личную книгу макросов VBA Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

На вкладке Разработчик ► Остановить запись (Код).

3. Закройте текущую книгу нажав Сохранить в диалоговом окне:

Создаём Личную книгу макросов VBA Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

Файл Личной книги макросов создан.

Создаём Личную книгу макросов VBA Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

Чтобы узнать путь к файлу, откройте новую книгу, нажмите клавиши ALT + F11, редакторе Visual Basic (VBE) вставьте в «Project-VBAProject» (PERSONAL.XLSB) макрос:

Sub ПутькФайлу()
ActiveCell.Value = ThisWorkbook.Path
End Sub

В любом случае, книга PERSONAL.XLSB находится в папке XLSTART , которую можно найти с помощью поиска в проводнике Windows.

Создаём Личную книгу макросов VBA Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

Закройте VBE и выполните макрос в окне MS Excel.

В любом случае, книга PERSONAL.XLSB находится в папке XLSTART, которую можно найти с помощью поиска в проводнике Windows.

Добавление макросов

Если вы хотите написать свой макрос (пользовательскую функцию) или добавить готовый из интернета, откройте редактор VBE (ALT + F11), выберите папку «Project-VBAProject» (PERSONAL.XLSB) и вставьте в модуль нужный код. Уже записанные в книгу макросы удалять не нужно, они не будут конфликтовать между собой, если в одном модуле не хранить макросы с одинаковыми именами.

Подпрограммы, размещенные в Личной книге макросов, можно просмотреть в окне Список макросов, открыв его из любой рабочей книги MS Excel (Alt + F8):

Создаём Личную книгу макросов VBA Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

Они будут перечислены с приставкой PERSONAL.XLSB!.

Пользовательские функции в этом окне не отображаются:

Создаём Личную книгу макросов VBA Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

Пользовательские функции, размещенные в Личной книге макросов, доступны для просмотра, выбора и вставки их в ячейки рабочего листа через Мастер функций, расположены в категории Определенные пользователем. Выбираются и вставляются в ячейки так же, как и все остальные функции.

Вызов процедур из Личной книги макросов осуществляется, как и запуск процедур из любой другой рабочей книги.

Удаление Личной книги макросов

Для удаления, найдите с помощью поиска в проводнике папку XLSTART и удалите из нее файл PERSONAL.XLSB.

Особенности работы с Личной книгой макросов

1. Возможны сложности, у корпоративных пользователей, т.к. файл в системной папке скрытой, для решения, обратитесь к своему Системному администратору;

2. На слабых компьютерах, при использовании, MS Excel будет запускаться медленнее;

3. Периодически очищайте от старых и ненужных макросов.

Показать полностью 9

Макрос для удаления пустых столбцов в книгах Excel

При выгрузке из 1С, часто файлы содержат пустые столбцы (в т.ч. и скрытые), которые мешают дальнейшей обработке данных. Приходится удалять их руками, что совсем не продуктивно. Макрос решит задачу мгновенно.

Копируйте код и сохраните его в Личной книге макросов.

Sub ColumnDel()
'Удаляем пустые столбцы
Dim i As Long
Dim rgMy1 As Range
Dim rgMy2 As Range
Set rgMy1 = Application.Range(ActiveSheet.Range("A1"), _
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))
Application.ScreenUpdating = False
For i = 1 To rgMy1.Columns.Count
If WorksheetFunction.CountA(rgMy1.Columns(i).EntireColumn) = 0 Then
If rgMy2 Is Nothing Then
Set rgMy2 = rgMy1.Columns(i).EntireColumn
Else
Set rgMy2 = Application.Union(rgMy2, rgMy1.Columns(i).EntireColumn)
End If
End If
Next
If rgMy2 Is Nothing Then
MsgBox "Не найдено пустых столбцов", vbInformation, "Для информации"
Else:
rgMy2.[Delete]
End If
Application.ScreenUpdating = True
End Sub

Открыть редактор VBA Alt +F11:

Макрос для удаления пустых столбцов в книгах Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

Вызвать меню для выполнения или изменения макросов Alt + F8:

Макрос для удаления пустых столбцов в книгах Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

На выполнение макроса можно назначить "Горячие клавиши", нажав в окне Параметры:

Макрос для удаления пустых столбцов в книгах Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост

В поле Сочетание клавиш введите прописные или строчные буквы, которые вы хотите использовать. Важен регистр и язык. Нельзя назначить макрос на функциональные клавиши Excel.

Для Windows сочетание клавиш для строчных букв — Ctrl + буква. Для прописных букв — Ctrl + Shift + БУКВА.

Для Mac сочетание клавиш для строчных букв — Option + Command + буква или Ctrl + буква. Для прописных букв — Ctrl + Shift + БУКВА.

Показать полностью 3

Как снять защиту с листа или книги Excel2

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

Как снять защиту с листа или книги Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост, Пароль

Первый способ, используя Блокнот

1. Переименуйте файл, изменив расширение с .xlsx на .zip.

Для отображения расширений файлов в названиях выберите в окне навигации Файл ► Изменить параметры попок и поиска:

Как снять защиту с листа или книги Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост, Пароль

В открывшемся окне, на вкладке Вид, уберите галку Скрывать расширения для зарегистрированных типов файлов:

Как снять защиту с листа или книги Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост, Пароль

2. Откройте архив. Перейдите в папку xl ► worksheets:

Как снять защиту с листа или книги Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост, Пароль

3. Копируйте, в папку с исходным файлом, файл sheet1, или тот который у вас защищен, или файл workbook.xml из папки xl, если защита на книге.

4. Нажмите на файл правой кнопкой мыши (п.к.м) ► Открыть с помощью ► Блокнот. При помощи поиска (Ctrl+F) найдите строку:

* Для снятия защиты с листа: <sheetProtection и удалите целиком текст строки в файле <sheetProtection ..........> вместе со скобками;

* Для снятия защиты с книги: <workbookProtection и удалите целиком текст строки в файле <workbookProtection ..........> вместе со скобками.

5. Сохраните файл(-ы) и перенесите его обратно в архив.

6. Верните файлу исходное расширение .xlsx.

Защита снята.

Второй способ, через с Google Диск

1. Откройте в браузере Google Диск (нужно иметь аккаунт).

2. Перетащите в него защищённый файл.

3. Кликните п.к.м на него и выберите Открыть с помощью ► Google Таблицы:

Как снять защиту с листа или книги Excel Microsoft Excel, Microsoft office, Обучение, Программирование, Полезное, Длиннопост, Пароль

4. Сохраните файл: Файл ► Сохранить как таблицу Google.

5. В открывшемся окне, выберите Файл ► Скачать ► Microsoft Excel.

Готово. Защита будет снята и с листов и с книги целиком.

Интересное по теме Excel:

ВПР (вертикальный просмотр)

Трюки с листами книги

Мгновенное заполнение

"Умные" таблицы в Excel

Показать полностью 4
Отличная работа, все прочитано!