Подскажите как докрутить макрос, что бы он искал значения с использованием символов замещения "*", "?". Другими словами при вводе в поле textbox значения 7* необходимо что бы выгрузились строки содержащие в определенном столбце значения 711111, 72222, 7444, 73.
Код
Sub Macros2()
Application.DisplayAlerts = False
On Error GoTo MsgErr
Dim iLastRow As Long
Dim j As Long
Dim i As Long
Dim LastRowReport As Long
Dim ТекстДляПоиска As Long
ТекстДляПоиска = LCase(Trim(Me.TextBox1.Text))
iLastRow = Cells(Rows.Count, 2).End(xlUp).Row
Range(Cells(3, 1), Cells(iLastRow + 1, 24)).ClearContents
iLastRow = 2
For j = 1 To Sheets.Count - 1
With Sheets(j)
LastRowReport = .Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To LastRowReport
If LCase(Trim(.Cells(i, 2).Value)) = ТекстДляПоиска Then
Range(Cells(iLastRow + 1, 1), Cells(iLastRow + 1, 23)).Value = Range(.Cells(i, 1), .Cells(i, 23)).Value
Cells(iLastRow + 1, 24) = Sheets(j).Name
iLastRow = iLastRow + 1
End If
Next
End With
Next
Application.DisplayAlerts = True
MsgBox "Данные выгружены! Если данных нет, проверте корректность введенных данных", vbExclamation + vbOKOnly
Exit Sub
MsgBox "Данные выгружены!", vbExclamation + vbOKOnly
MsgErr:
MsgBox "Что-то пошло не так! Проверте данные", vbExclamation + vbOKOnly
Application.DisplayAlerts = True
End Sub
Столкнулся со следующей задачей, в книге несколько листов, необходимо что бы форма запущенная с параметром vbModeless, отображалась только на последнем листе книги, а при переходе с последнего листа на 1,2,3 и т.д. - сворачивалась.
Такое реально реализовать? Буду благодарен за помощь!
P.S. Название книги, а так же названия и количество листов всегда меняется, постоянно только название последнего листа на котором и должна отображаться и выполнять скрипты форма.
Добрый день, уважаемые форумчане. Подскажите и направьте, пожалуйста, в нужном направлении. Необходимо собрать данные с нескольких листов по заданному фильтру. Перелопатил кучу тем и примеров со сборкой данных с нескольких листов, но примеры не подходят т.к. мне необходим сбор не всех данных а по заданному значению. Пример во вложении. Можно конечно отфильтровать+копировать+вставить но проблема в том, что на каждом листе около миллиона строк
В сети интернет нашел скрипт который определяет координаты по адресу ( http://grindgis.com/software/microsoft-excel/geocoding-excel-and-google ) Единственная проблема в том, что необходимо адрес прописывать на латинице! Прошу помощи адаптировать данную функцию, так что бы адрес можно было прописывать на русском!
Код
Function MyGeocode(address As String) As String
Dim strAddress As String
Dim strQuery As String
Dim strLatitude As String
Dim strLongitude As String
strAddress = URLEncode(address)
'Assemble the query string
strQuery = "http://maps.googleapis.com/maps/api/geocode/xml?"
strQuery = strQuery & "address=" & strAddress
strQuery = strQuery & "&sensor=false"
'define XML and HTTP components
Dim googleResult As New MSXML2.DOMDocument
Dim googleService As New MSXML2.XMLHTTP
Dim oNodes As MSXML2.IXMLDOMNodeList
Dim oNode As MSXML2.IXMLDOMNode
'create HTTP request to query URL - make sure to have
'that last "False" there for synchronous operation
googleService.Open "GET", strQuery, False
googleService.send
googleResult.LoadXML (googleService.responseText)
Set oNodes = googleResult.getElementsByTagName("geometry")
If oNodes.Length = 1 Then
For Each oNode In oNodes
strLatitude = oNode.ChildNodes(0).ChildNodes(0).Text
strLongitude = oNode.ChildNodes(0).ChildNodes(1).Text
MyGeocode = strLatitude & "," & strLongitude
Next oNode
Else
MyGeocode = "Not Found (try again, you may have done too many too fast)"
End If
End Function
Public Function URLEncode(StringVal As String, Optional SpaceAsPlus As Boolean = False) As String
Dim StringLen As Long: StringLen = Len(StringVal)
If StringLen>0 Then
ReDim result(StringLen) As String
Dim i As Long, CharCode As Integer
Dim Char As String, Space As String
If SpaceAsPlus Then Space = "+" Else Space = "%20"
For i = 1 To StringLen
Char = Mid$(StringVal, i, 1)
CharCode = Asc(Char)
Select Case CharCode
Case 97 To 122, 65 To 90, 48 To 57, 45, 46, 95, 126
result(i) = Char
Case 32
result(i) = Space
Case 0 To 15
result(i) = "%0" & Hex(CharCode)
Case Else
result(i) = "%" & Hex(CharCode)
End Select
Next i
URLEncode = Join(result, "")
End If
End Function
Спасибо!
P.S. На форуме есть примеры с использованием Яндекса, и в тоже время интересует именно Гугл
Доброго времени суток, уважаемые форумчане! Прошу помочь допилить код! Подскажите что необходимо добавить что бы значения ячеек копировались без формул? Спасибо!
Код
Sub Кнопка3_Щелчок()
Application.ScreenUpdating = False
With Sheets("Данные")
.Visible = xlSheetVisible
Worksheets("Данные").Select
Lr = 2
While Cells(Lr, 1) <> ""
Lr = Lr + 1
Wend
Dim sourceRange As Range
Dim destrange As Range
'Lr = LastRow_1(Sheets(2)) + 1
Set sourceRange = Worksheets("Данные").Range("a1:u" & Lr)
Set destrange = Worksheets("Для Алексея").Range("a2")
sourceRange.Copy destrange
Worksheets("Для Алексея").Select
.Visible = xlSheetVeryHidden
End With
Application.ScreenUpdating = True
End Sub
Доброго времени суток! Уважаемые форумчане, подскажите плиз, как функцию МАКС подружить с диапазоном ячеек в ячейках которого имеются значения #Н/Д. #Н/Д - необходимо для построения графика и какие либо действия производить с данной ячейкой нельзя.
Доброго времени суток! Подскажите как можно поменять максимальное значение Элемента управления формы "Полоса прокрутки" (не ActiveX), в зависимости от количества заполненных ячеек столбца A?
Необходимо что бы при добавлении данных изменялось максимальное значение элемента управления.
Доброго времени суток! Подскажите как включить отображение общих итогов по строкам в сводных таблицах Excel 2007. Все перерыл... "Конструктор - Общие итоги - Включить для строк и столбцов" и "Конструктор - Общие итоги - Включить только для строк" колонку с общими итогами по строкам не добавляет.
На форуме есть множество примеров по созданию маски ввода для textbox (dd/mm/yyyy , +7-(###)###-##-## и др. подобных), в моем же случае необходимо реализовать ввод типа GG/1111 (две буквы - косая черта - четыре цифры). Возможно ли такое реализовать средствами VBA Excel 2007. Спасибо!
Нарыл тему 2010 года по поводу изменения модальности при запуске формы. ТЫЦ За окном уже 2016 и хотелось бы проконсультироваться у многоуважаемых Гуру этого форума, появилась ли возможность изменения модальности формы - онлайн, без перезапуска самой формы.
Есть заготовка. Хочу реализовать следующее: 1. Пользователь вводит какое то значение в TextBox1 2. Нажимает "поиск" поиск осуществляется на листе "Base" 3. В "результатах поиска" в ListBox отображаются найденные значения из листа "Base"
К примеру: Введена цифра 4 макрос ищет где встречается "4" и на выходе я получаю :
id
name
adres
1
Иванов
Симф, Ленина,4
4
Иванович
Ялта, Ленина, 5
14
Петрива
Симф, Ялтинская, 8
Буду признателен за любую информацию по этому поводу. Спасибо!