Здравствуйте! Имеется умная таблица на листе "Данные" (ежедневно дополняется) и два отчета на разных листах "отчет_ТС" и "отчет_ТАБ". Каким образом возможно организовать заполнение этих отчетов данными из листа "Данные".
Здравствуйте. Опять прошу помощи. Имеем таблицу с данными на Лист1. Необходимо посчитать кол-во строк по 4-м условиям и составить список или таблицу на Лист2 с перечислением всех возможных совпадений и подсчетом количества строк по ним. Ранее мне уже помогли за что большое спасибо, но задача не много изменилась (руководство ставит новые преграды на трудовом пути). Подробнее изложил в файле (Лист2). Буду очень признателен Вам.
Приветствую! Помогите пожалуйста с макросом. На Лист1 есть некая таблица, которая будет пополняться новыми строками с данными (строки вставляются с верху). Есть форма с 4-мя combobox в которых выбираются значения из столбцов в таблице на Лист1. Необходимо при совпадении всех 4-х значений в combobox со строкой в таблице на Лист1 скопировать эту строку на Лист2. Если таких строк несколько, то копируем все на Лист2.
Добрый день. В форме имеется два TextBox. В которые вводим данные. Потом по кнопке и вставляем их в нужное место. Проблема в том что данные из первого TextBox данные переносятся не правильно. Если в конце значения присутствует буква или слово, то данные вставляются без текстовой составляющей. Если в начале, то вообще вставляется 0. Со вторым TextBox все в порядке.
Код
Private Sub CommandButton1_Click()
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 2) = _
Array(Val(Me.TextBox1), Me.TextBox2)
End Sub
Добрый день! Помогите пожалуйста переделать макрос определения принтеров в системе. Макрос служит для определения списка доступных принтеров в системе с номером порта типа "Ne:00" Брал где то здесь на форуме. Поменял офис на 64 bit версию и он перестал работать. Макрос написан для 32 bit офиса на 64 bit версии он не работает ошибку выдает в первой строке кода.
Код
Private Declare Function GetProfileString Lib "kernel32" _
Alias "GetProfileStringA" (ByVal lpAppName As String, _
ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long) As Long
Dim vaList
Sub Print_Select()
On Error Resume Next
Application.ScreenUpdating = False
Dim prncnt As Integer
vaList = PrinterFind
For prncnt = LBound(vaList) To UBound(vaList) ' èùåì ïðèíòåðû
PrintForm.ComboBox1.AddItem vaList(prncnt)
Next
PrintForm.ComboBox1.Value = Application.ActivePrinter ' âûáîð ïðèíòåðà
PrintForm.Show
Application.ScreenUpdating = True
End Sub
Public Function PrinterFind(Optional Match As String) As String()
Dim n%, lRet&, sBuf$, sCon$, aPrn$()
Dim prnstr As Boolean
Const lLen& = 1024, sKey$ = "devices"
aPrn = Split(Excel.ActivePrinter)
If InStr(aPrn(UBound(aPrn)), "(") Then prnstr = True
sCon = " " & aPrn(UBound(aPrn) - 1) & " " '
sBuf = Space(lLen)
lRet = GetProfileString(sKey, vbNullString, vbNullString, sBuf, lLen)
If lRet = 0 Then
Err.Raise vbObjectError + 513, , "Can't read Profile"
Exit Function
End If
aPrn = Split(Left(sBuf, lRet - 1), vbNullChar)
If Match <> vbNullString Then aPrn = Filter(aPrn, Match, -1, 1)
For n = LBound(aPrn) To UBound(aPrn)
sBuf = Space(lLen)
lRet = GetProfileString(sKey, aPrn(n), vbNullString, sBuf, lLen)
If prnstr Then
aPrn(n) = aPrn(n) & " (" & Mid(sBuf, InStr(sBuf, ",") + 1, lRet - InStr(sBuf, ",") - 1) & ":)"
Else
aPrn(n) = aPrn(n) & " on " & Mid(sBuf, InStr(sBuf, ",") + 1, lRet - InStr(sBuf, ",") - 1) & ":"
End If
Next
PrinterFind = aPrn
End Function
Доброго времени! В примерах на сайте нашел макрос (3 вариант) для отправки письма через Outlook.
Скрытый текст
Код
Sub SendMail()
Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application") 'запускаем Outlook в скрытом режиме
OutApp.Session.Logon
On Error GoTo cleanup 'если не запустился - выходим
Set OutMail = OutApp.CreateItem(0) 'создаем новое сообщение
On Error Resume Next
'заполняем поля сообщения
With OutMail
.To = Range("A1").Value
.Subject = Range("A2").Value
.Body = Range("A3").Value
.Attachments.Add Range("A4").Value
'команду Send можно заменить на Display, чтобы посмотреть сообщение перед отправкой
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub
Выбор вложения осуществляется указанием полного пути до файла в ячейке А4.
Код
.Attachments.Add Range("A4").Value
Необходимо изменить макрос так что бы была возможность выбирать несколько файлов в качестве вложения из директории рабочей книги. Другими словами после запуска макроса появляется окно с выбором файлов из того же места на диске где расположена книга с этим макросом. После выбора файлов происходит их вставка в тело письма как вложений и потом отправка адресату.
В общем имеем два макроса, которые меняют заливку фигуры на листе (красный или белый). Необходимо, в зависимости от значения в ячейке В4, фигуре на листе поменять цвет, посредством запуска этих макросов. Значения в ячейке текстовые. Данные в ячейке меняются при помощи ComboBox из элементов ActiveX.
Доброго времени вам! Данный макрос работает только если изменяются данные в ячейке В4. Как его изменить так что бы он работал при изменении данных в обоих ячейках В4 и В6.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B4")) Is Nothing Then Exit Sub
If IsNumeric(Target.Value) Then
If Target.Value > Range("B6") Then
ActiveSheet.Shapes("фигура").Fill.ForeColor.RGB = vbRed
Else
ActiveSheet.Shapes("фигура").Fill.ForeColor.RGB = vbWhite
End If
End If
End Sub
Доброго времени суток. Подскажите пожалуйста как доработать или что добавить в макрос, что бы полученный после печати файл пдф автоматически открывался.
Код
Sub Save_DT_1()
Application.ScreenUpdating = False
strFullName = "C:\Отправка\" & ActiveSheet.Range("R12") & "_" & ActiveSheet.Range("S12") & ".pdf"
Application.ActivePrinter = "Microsoft Print to PDF (Ne02:)"
ActiveSheet.PrintOut Copies:=1, PrToFileName:=strFullName
End Sub
Имеется таблица, в ней по числам месяца руками вносятся данные. Макрос выбирает из столбцов таблицы ячейки с красным шрифтом и помещает их в другую таблицу на листе. Таблица содержит 10 столбцов т.е. с 1 по 10 число. Необходимо видоизменить макрос так что бы он работал с 31-ним столбцом т.е. с 1 по 31 число месяца и n-ным количеством строк. Или если можно то в коде макроса должен быть прописан диапазон ячеек с которым он работает.
Код
Sub RedFontMerge()
Dim arrOut(1 To 10, 1 To 2), strS As String, lngI As Long, lngJ As Long
For lngJ = 1 To 10
For lngI = 2 To ActiveSheet.UsedRange.Rows.Count
If Cells(lngI, lngJ + 1).Font.Color = vbRed Then
strS = strS & "," & Cells(lngI, lngJ + 1).Value
End If
Next lngI
arrOut(lngJ, 1) = lngJ: arrOut(lngJ, 2) = Mid(strS, 2, Len(strS) - 1)
strS = ""
Next lngJ
[AH2].Resize(10, 2).NumberFormat = "@"
[AH2].Resize(10, 2) = arrOut
End Sub
В таблице 10 столбцов с данными, первая строка это числа месяца. В каждом из столбцов имеются ячейки с красным шрифтом. Необходимо в соседнюю на листе таблицу выбрать по числам месяца все ячейки с красным шрифтом. Файл прилагаю. предыстория
Здравствуйте. Помогите с макросом для таблицы пожалуйста. В данный момент макрос выбирает все уникальные значения и определенного диапазона и помещает их в столбец рядом с таблицей. Дальше формулой считаем количество повторений каждого значения. Необходимо рядом с количеством повторений проставить даты из первой строки таблицы. В файле все понятней будет.
Помогите изменить макрос. Имеем 4 столбца с данными: 1 - цифры, 2 - буквы, 3 - цифры, 4 - буквы. Макрос переносит все столбцы в один столбец. Нужно получить два столбца отдельно цифры отдельно буквы.
Доброго времени! Помогите пожалуйста с макросом. В VBA вообще не силен. Необходимо сохранить область печати листа в ПДФ с возможностью присвоения имени файла из ячеек на этом листе. Поиском по сети нашел что то похожее но не то что нужно в итоге. Макрос не работает если закрыть и открыть файл снова. Я предпологаю что не активируется принтер ПДФ. Если переключить в меню печати на принтер ПДФ то работает. И как еще сделать что бы имя файла брал из ячеек листа.
Доброго времени суток. Помогите с макросом сортировки. Нужно сортировать числовые данные в не связанных диапазонах ячеек (выделены красным). Сортировка должна быть по возрастанию т.е. от большего к меньшему.
Доброго времени суток. Проблема в том что появляется ошибка в макросе при отказе или отмене сохранения файла. Подскажите пожалуйста как и что добавить или исправить.
Код
Sub save_z()
Application.ScreenUpdating = False
Dim Rng As Range
Sheets("Лист1").Copy
Set Rng = Sheets("Лист1").UsedRange
With Rng
.Cells.Value = .Cells.Value
End With
ActiveSheet.DrawingObjects.Delete
ActiveWorkbook.SaveAs Filename:="C:\"& Cells (1, 1) & ".xlsx"
ActiveWindow.Close
Application.ScreenUpdating = True
End Sub
Приветствую Вас гуру Excel. Есть макрос взятый с этого форума написанный Юрий_М . Не много переделан. Подскажите пожалуйста как переделать макрос что бы при копировании строки ячейки этой строки копировались в нужном порядке. Например в таком:
Код
Sub spisok_gsm()
Application.ScreenUpdating = False
Dim LastRow As Long, Rw As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
With Sheets("Лист1")
Rw = .Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 6 To LastRow
If Cells(i, 11) <> " " Then
Union(Cells(i, 1), Cells(i, 6), Cells(i, 7), Cells(i, 4), Cells(i, 2), Cells(i, 3), Cells(i, 5), Cells(i, 11), Cells(i, 15)).Copy .Cells(Rw, 1)
Rw = Rw + 1
End If
Next
End With
Application.ScreenUpdating = True
End Sub
Доброго времени суток. Макрос нашел на этом форуме в архиве. Не много переделал под свои нужды. Подскажите пожалуйста как в данном макросе изменить код так что бы он копировал например только 2,4,7,9, и 15 ячейки. Заранее благодарен за помощь.
Код
Sub spisok_vid()
Application.ScreenUpdating = False
Dim LastRow As Long, Rw As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
With Sheets("Отчет1")
Rw = .Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 4 To LastRow
If Cells(i, 1) = "a" Then
Range(Cells(i, 1), Cells(i, 24)).Copy .Cells(Rw, 1)
Rw = Rw + 1
End If
Next
End With
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
If Not Intersect(target, Range("AU3") Is Nothing Then
Call showform(target)
Cancel = True
End If
End Sub
Как его заставить работать только в двух ячейках листа, например AU3 и FE12 ???
Здравствуйте!!! Наткнулся на Ваш форум и решил попросить помощи у гуру VBA. Помогите пожалуйста с макросом вставки строк в таблицу с последующим их заполнением данными с другого листа книги. Более подробно в файле. Очень надеюсь на вашу помощь.Спасибо.