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

Страницы: 1
Перенос ячеек (VBA): группировка входов и выходов работника
 
Всех приветствую!
Есть таблица выгрузки по ключам в которой по очереди идёт вход и выход (различные дубли уже убираются, по этому более-менее чисто).
Есть только когда человек вошел не вышел, или вышел не вошел (обычно такое у суточников).
В общем макрос ориентируясь по совпадению фамилии в столбце А проверяет наличие слова "Выход" и переносит его на одну строку ко "Входу".
Таким образом на одной строке дата и время входа и дата и время выхода.
Массив за месяц около 50 тыс. строк. Написал небольшой макрос который сам переносит диапазон по заданным условиям.
Есть проблема, что похоже офисному компу это сложно вытянуть и процедура просто зависает, домашний комп справляется нормально.

Может подскажите возможный вариант оптимизации?
Я так понимаю что дается трудно момент вырезки и вставки.
Код
Sub Копирование()
    Dim V As String
    V = 2
    While Range("A" & V).Value <> ""
    If Range("A" & V) = Range("A" & V - 1) Then

    If Range("D" & V) = "Выход" Then
    Application.CutCopyMode = False
    Range("B" & V, "E" & V).Cut Destination:=Range("G" & V - 1, "J" & V - 1)
    Range("K" & V - 1) = "Формула"
    Range("L" & V - 1) = "Формула2"
        End If
    Else
    If Range("D" & V) = "Выход" Then
    Application.CutCopyMode = False
    Range("B" & V, "E" & V).Cut Destination:=Range("G" & V, "J" & V)
    Range("K" & V) = "Формула"
    Range("L" & V) = "Формула2"
        End If
    End If
    V = V + 1
    Wend
End Sub
Сбор полной фразы в одной ячейке
 
Всем привет!
Помогите придумать решение.
В таблице все значения указаны в одной строчке, но название услуги зачем-то разбито(или разбивается само) на еще некоторые строчки.
А мне нужно, чтобы полное название было собранно в одной ячейке в той же строке где указана остальная информа-ция.
Таблица довольно большая, может достигать более 6700 строк, по этому собирать кусочки слов в одну ячейку ручками - времязатратно.
Колдовство с формулами ЕЧИСЛО- ЕПУСТО не к чиму не привели, получалось только что полностью фраза собиралась только к концу пустой строки, а нужно на оборот (чтобы полностью была в первой).
Файлик с примером прикладываю, как и где должны собираться услуги при этом оставляя строки без информации так же пустыми или с отметкой по которой пожмно будет потом фильтрануть и удалить.
Как прописать выделение цветом, если формула не срабатывает
 
Всем привет! Есть работающая формула.
Код
=ЕСЛИ($AA748="USD";ОКРУГЛ(AM748*ВПР($L748;USD!$A:$B;2;1);2);ЕСЛИ($AA748="EUR";ОКРУГЛ(AM748*ВПР($L748;EUR!$A:$B;2;1);2);ЕСЛИ($AA748="RUR";AM748;"")))
Которая, как не сложно догадаться, в одной из ячеек смотрит какая стоит валюта и какая дата, затем идет на страничку с этой валютой и находит в табличке курс на дату, умножает сумму валюты на курс рубля.
Вопрос. Можно как-нибудь сделать, чтобы сумма была красного цвета если формула не находит нужную дату в валютной таблице?
Автоматическое определение не резидентов., формула или функция
 
Всем привет!
У меня два столбца рядом с юр.лицами, а следующей в котором указывается резидент это или нет.
Я вижу тут два варианта. Либо на другом листе создать таблицу с наименованием всех юр.лиц и проставить резидент/не резидент и применять функцию ВПР.
Либо использовать функцию или формулу которая будет смотреть какой язык используется в соседней ячейке. Если написано по русский- значит резидент, если по английски - значит не резидент.
Такое вообще возможно?
Общая сумма складывает из разных сумм.
 
Всем привет!
Снова я. И наверно я единственный у вас на форуме, кто придумывает дурацкие задачи))
Даже тему толком нормально не смог обозвать :)
В общем такая суть.
Возможно ли вообще каким-то способом реализовать что-то подобное.
К примеру на пустом листе в А1 вписываю сумму к примеру 4 500 676,20
На остальных листах по всей книге в  столбце F написаны более мелкие суммы (в остальных столбцах другие данные типо валюты и прочего).
Далее запускается макрос и он начинает перебирать все суммы до тех пор пока из мелких не получится та же что в А1, либо до тех пор пока не кончатся варианты.

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

Код
=ЕСЛИ(ЕЧИСЛО(ПОИСК("Хлеб";A1));"Черствый хлеб";"?"))
 
Есть вот такая формула. Которая Ищет слово "Хлеб" в ячейке А1 ( и не важно там целое слово сочетании или предложение) и заменяет на фразу "Черствый хлеб".
Можно ли вшить эту формулу в саму ячейку А1 и сделать так, чтобы скопировав в ячейку А1 предложение со словом "Хлеб", формула срабатывала и автоматом сама в себе меняла на "Черствый хлеб"?  
Собственный словарь орфографии., Создание собственного словаря.
 
В общем проблема такая.
Из разных источников в экселевский файл методом копирования попадают названия юр.лиц.
А потом когда делаешь сводную, оказывается они все написаны по разному. Из-за этого по фильтру нужно искать похожих, протягивать... в общем приводить всех к единому виду и потом только делать таблицу.
Различаются в плане: ООО "Хлеб-Колбаса";  ООО Хлеб Колбаса; Хлеб-Колбаса ООО ну итд.

Есть мысль создать собственный словарь, и чтобы при копировании он автоматом неверные названия менял на корректные.
Конечно идея, идей но может кто-то уже сталкивался с похожей проблемой и решил проблемы более лучшим путем?

Или может функцию какую сочинить, чтобы находя конкретно в столбце W слово  %Колбаса%, менял на полное ООО "Хлеб-Колбаса"?
Изменено: Spaunrus - 16.02.2015 16:48:47
Макрос или формула разбивает номер на 3 части.
 
Всем привет!
В файле с примером постарался показать, может так же с помощью функции как-то можно, или макроса.
В столбце В есть единый номер. Который должен разбиваться по столбцам на 3 части.
Пример разбивки указал в столбцах Q S T
При этом может быть и так что первый номер есть, а второго и третьего нет. Таким образом заполняется только столбец Q а S и T остаются пустыми. В файлике постарался указать всевозможную вариацию номера.
Может есть у кого идеи?( Я тут вообще руки опустил, задачка кажется нерешаемой. По крайней мере мне с моим набором знаний.
Макрос. Текст по столбцам при условии.
 
Ребята, изменил немного тему.
Задача усложнилась, объяснить сложновато.
В файле с примером постарался показать, может так же с помощью функции как-то можно, или макроса.
В столбце В есть единый номер. Который должен разбиваться по столбцам на 3 части.
Пример разбивки указал в столбцах Q S T
При этом может быть и так что первый номер есть, а второго и третьего нет. Таким образом заполняется только столбец Q а S и T остаются пустыми.
Может есть у кого идеи?( Я тут вообще руки опустил, задачка кажется нерешаемой. По крайней мере мне с моим набором знаний.
Изменено: Spaunrus - 30.01.2015 18:21:30
Макрос. Во время замены символов ставит дату m/d/yyyy, а не положенную d/m/yyyy
 
Всем привет!
Это снова я. Признаться сильно не копался по форуму, лишь бегло пробежался, нужного не нашел.
В большом макросе есть такое дело:
После копирования столбцов макрос выделяет столбец B и удаляет из него дефис вместе со всеми символами -* .
Изначально в столбец B копируются даты среди которых встречаются не только 11.10.2014, но и к примеру 11.10.2014-15.10.2014.
По этому после копирования макрос запускает автозамену -* и дата преобразовывается в 11.10.2014, но увы ее формат меняется на месяц/дата/год.
Как я понял, это из-за того, что VBA использует европейский стандарт, когда проставляет дату, а не тот, что идет по  эксель.

Код
Columns("B").Select             'выделение 2-й колонки (B)'
    Selection.Replace _
    What:="-*", Replacement:=""     'замена в выделенном "-*" на ""`
 
Собственно вот кусочек кода, если его убрать из макроса и после того, как основной отработает, сделать это вручную в эксель, дата становится нормальной.
Что прописать в коде, чтобы при авто замене он не выставлял свой формат даты?
Пытался даже в самом макросе прописать, чтобы конкретно столбцу B перед началом автозамены был выставлен формат ячейки d/m/yyyy, но все равно тоже самое.
Изменено: Spaunrus - 30.01.2015 21:25:25
Макрос. Поиск ячейки с текстом и использование ее адрес.
 
Друзья! Снова, я. Подскажите, где ошибка? При запуске макросы он должен находить в столбце В слово "ФИО" и начиная с этой строки копировать все по 65536. Еще одно условия, что ячейка с текстом ФИО, объединенная, но это же не должно мешать поиску?
Код
Sub one()
   Dim Stroka As Integer
   Set Stroka Columns("B").Find("ФИО", , xlValues, xlPart) 
   Rows("Stroka:65536").Select
   Selection.Copy
End Sub
Макрос. Удаление пустых строк .
 
Все привет!
Это снова я!
Нашел вот такой код:
Код
Sub Del_SubStr()
    Dim sSubStr As String 'искомое слово или фраза(может быть указанием на ячейку)
    Dim lCol As Long 'номер столбца с просматриваемыми значениями
    Dim lLastRow As Long, li As Long
 
    sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "Запрос параметра", ""
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "Запрос параметра", 1))
    If lCol = 0 Then Exit Sub
 
    lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
 
    Application.ScreenUpdating = 0
    For li = lLastRow To 1 Step -1
     If Cstr(Cells(li, lCol)) = sSubStr Then Rows(li).Delete
    Next li
    Application.ScreenUpdating = 1
End Sub 
Как бы его так переписать, чтобы он определял последнюю заполненную ячейку по столбцу G, а потом удалял СТРОКИ определяя нужные по пустым ячейкам столбца C. При этом не выдавая никаких запросов?
Макрос на протягивание данных из последней заполненой ячейки.
 
Дело такое.
К примеру
в А1 и В1 есть данные
А2 и В2 пустые
в А3 и В3 уже другие данные
с А4 и В4 по А6 и В6 - ячейки пустые
Затем в А7 и В7 снова есть данные.
Вопрос:
Как прописать макрос который бы находил заполненные ячейки  А1 и В1 протягивал их до А2 и В2 (примерно так же как тянем за угол ячейки).
Затем находил данные в А3 и В3 и протягивал до А6 и В6.
При этом данные в зависимости от таблицы могут менять свое место положение, неизменным остаются столбцы.
Я понимаю, что тут нужно что-то типо:
определить заполненную ячейку после которой идет пустая
найденная ячейка + 1 = найденная ячейка. Дальше цикл повторяется, опять ищет ячейку после которой нет данных, берет эти данные и тянет опять до след. заполненной ячейки.И этот цикл должен повторятся до тех пор пока он не дойдет до строчки на которой находится последняя заполненная ячейка столбца G.
Улучшить макрос: если одно из условий не выполняется...
 
Код
   For a = 1 To 37350
    If Sheets("Лист1".Cells(a, 1) = Sheets("москва".Cells(1, 3) Then
    For b = 7 To 66
    If Sheets("Лист1".Cells(a, 2) = Sheets("москва".Cells(6, b) Then
    For c = 10 To 80
    If Sheets("Лист1".Cells(a, 3) = Sheets("москва".Cells(c, 6) Then
    q = Sheets("Лист1".Cells(a, 4)
    Sheets("москва".Cells(c, b) = Sheets("москва".Cells(c, b) + q
    v = Sheets("Лист1".Cells(a, 5)
    Sheets("москва".Cells(c + 144, b) = Sheets("москва".Cells(c + 144, b) + v
    Else: Sheets("Лист1".Cells(a, 6) = "вошло"
     End If
    Next c
     End If
    Next b
     End If
    Next a
Добрый день!
Имеется такой макрос.
Который проверяет столбец А, если находит совпадение идет, в В, потом в С, И все что сошлось складываем с тем, что уже было в той таблице с которой все совпало.
Вопрос в том, можно ли как-то сделать, чтобы к примеру в столбцам H I и K, появлялась "Не вошло"- для строк которые не совпали.
Изменено: Spaunrus - 23.12.2014 18:24:00
Переход между листами по условию
 
Товарищи!
Помогите написать код с условиями.
Если ячейка А6 содержит текст "Готово" то открывается страничка "А-В"
Если в ячейке А6 НЕ находит текст "Готово" то открывается страничка "В-А"
При условии, что в ячейке А6 может быть полный текст такой "Всего заданий было готово"- нашел, перешел в "А-В"
Если вдруг так оказался другой текст тогда переходит на страничку "В-А"

Это нужно для остального массивного кода.
Макрос. Копировать по строчку в которой есть определенный текст.
 
И снова здравствуйте  :)  
С вами дружелюбный новичек Spaunrus  :)  
Имеется такой кусочек кода, который нужно модернизировать.

Код
    Sheets("Отчет").Select
    Range("B6").Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Sheets("Раздел 1 (Премия) B-A").Select
    Rows("14:1000").Select
    Selection.Copy
 
Который копирует массивные таблицы с данными, стоит сейчас по 1000 строку, потому, что не известно, в каждом файле может быть от 1 строки до этой 1000.
Что жутко мешает в последствии.
Нужно как-нибудь его изменить так, чтобы копирование происходило с 14 строки по ту строку в которой по столбцу "А" есть слово "Итоги".
К примеру в файле нужная таблица занимает с 14 по 50 строку, на 51 строке написано Итоге в столбце "А". Макрос это проверяет и копирует с 14 по 50, не захватывая строку с "Итогами".
Изменено: Spaunrus - 30.09.2014 15:55:13
Копирование в след. пустую ячейку.
 
Добрый день!
Помогите усовершенствовать код. Первый опыт в написании и мало что получается ( Пытался экспеременитровать с тем, что на ходил на просторах интернета, но в итоге выходило все коряво =(

Код
    Sheets("Список файлов").Select
    Range("B6").Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Sheets("Раздел 1 (премии) A-B").Select
    Rows("14:399").Select
    Selection.Copy
    Windows("FilenamesCollectionEx - копия.xlsm").Activate
    Sheets("вх").Select
    Range("A2:A400").Select
    ActiveSheet.Paste
    Sheets("Список файлов").Select
    Range("B6").Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Sheets("Раздел 1 (премии) A-B").Select
    Range("A6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("FilenamesCollectionEx - копия.xlsm").Activate
    Sheets("вх").Select
    Range("Y2:Y400").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Список файлов").Select
    Range("B6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("вх").Select
    Range("Z2:Z400").Select
    ActiveSheet.Paste
    Sheets("Список файлов").Select
Смысл макроса:
При запуске открывается файл по гиперссылке из ячейки B6 на странице "Список файлов".
После запуска книги переходит на страницу с премиями, копируется данные и переносит их на лист "ВХ" в рабочую книгу.
Дальше опять по гиперссылке переходит в тот же файл из другого места копирует данные и вставляет на против скопированных до этого данных.
И потом копирует саму гиперссылку рядом еще в один столбец.

В чем смысл. Гиперссылки и название самих сторонних книг меняются, остаются неизменными название страниц в них.
Это код будет повторять от B6 до B204 открываю одну книгу за другой и копируя все эти данные.
Код
Sheets("Список файлов".Select
    Range("B6".Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Sheets("Раздел 1 (премии) A-B".Select 
    Rows("14:399".Select  -здесь хотелось бы изменить как-то, чтобы копировалось с 14 строки по первую пустую.
    Selection.Copy


    Range("Y2:Y400".Select  - а этих местах, чтобы данные на оборот вставлялись в первую пустую ячейку (и протягивались) с теми данными
    Range("Z2:Z400".Select       что уже были скопированы и вставлены до этого. 
    ActiveSheet.Paste
    Sheets("Список файлов".Select
К примеру:
Скрытый текст
Страницы: 1
Наверх