Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Разбивка сводной таблицы, VBA Макрос
 
Да !! спасибо) работает
Разбивка сводной таблицы, VBA Макрос
 
День добрый
столкнулся с подобной задачей нашел решение на ссылке ниже
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=59002&TI...
использовал макрос от Sanja, но проблема если  если использовать цифры как критерий то каждая строка копируется на отдельный лист как обойти?
Поиск номера пустой ячейки в столбце, Макрос, VBA
 
Всем спасибо с этой проблемой разобрался

код работает на примере но в действительном файле   всегда r1=r2  соответственно ничего не удаляет
Код
r1 = Cells(Rows.Count, 3).End(xlUp).Row 
 r2 = Cells(Rows.Count, 1).End(xlUp).Row
  If r2 > r1 Then Rows(r1 + 1).Resize(r2 - r1).ClearContents
Код
тут срабатывает, удаляет

но находит не первую пустую а где-то в середине,  то есть удаляет только половину всего чего нужно удалить


iLastRowA = Cells(Rows.Count, 3).End(xlUp).Row + 1
'Затем последнюю строку в диапазоне

iLastRow = Cells.Find("*", [A1], SearchDirection:=xlPrevious).Row
'Очищаете лишние строки в диапазоне

Range(Cells(iLastRowA, 1), Cells(iLastRow, 8).ClearContents



вот этот кусок находит нужный номер ячейки
а дальше уже использую предыдущий код
Код
Columns("C:C").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
a = ActiveCell.Row
спасибо за помощь !!!)
Поиск номера пустой ячейки в столбце, Макрос, VBA
 
формул нет  
Поиск номера пустой ячейки в столбце, Макрос, VBA
 
дополнил пример  
Поиск номера пустой ячейки в столбце, Макрос, VBA
 
сорян не ту строку привел  
Поиск номера пустой ячейки в столбце, Макрос, VBA
 
да спасибо, без set  заработало

правильно понимаю что
Код
iLastRowA = Cells(Rows.Count, 1).End(xlUp).Row + 1
найдет последнюю ячейку в столбце , а не первую  пустую ячейку (ячейка может быть в рамке или были какието данные и удалили)


то есть строка кода находит мне 3115 ячейку
а когда делаю поиск то находится 2152 ячейка она и есть первая пустая  
Поиск номера пустой ячейки в столбце, Макрос, VBA
 
говорю что кусок кода не работает
Код
iLastRowA = Cells(Rows.Count, 3).End(xlUp).Row + 1





а не то что не ищет не в том столбце
Поиск номера пустой ячейки в столбце, Макрос, VBA
 
так тоже делал ничего
В примере выбивает ошибку Type Missmathc
Поиск номера пустой ячейки в столбце, Макрос, VBA
 
для примера, таблица в которой есть пустые строки ,
я сортирую таблицу  нахожу пустую ячейку в 3 столбце

iLastRowA = Cells(Rows.Count, 1).End(xlUp).Row + 1   - что не так  
Поиск номера пустой ячейки в столбце, Макрос, VBA
 
iLastRowA = Cells(Rows.Count, 1).End(xlUp).Row + 1 - пустое  через отладчик пишет "empty"
что может быть ?  
Поиск номера пустой ячейки в столбце, Макрос, VBA
 
День добрый

вопрос такой  
Отсортировал данные и получилось что в конце таблицы есть данные которые нужно удалить (строк всегда разное количество)

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

пытался сделать так  чтоб получить номер ячейки
Код
 Set myLastCell = ActiveSheet.Columns(3).Find(What:="", LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, _
        MatchCase:=False, SearchFormat:=False)
        
Сортировка на выбранном диапазоне ячеек
 
Да огромное спасибо все работает !!!
Сортировка на выбранном диапазоне ячеек
 
День добрый.

пытаюсь сделать сортировку на выбранном диапазоне ячеек  от второй строки первой ячейки до 9 столбца не известной ячейки  (каждый раз может быть разная)


lLastRow- номер последней ячейки
и не знаю как дальше выбрать участок
от А2 до Н lLastRow

что бы сортировку применить на этом диапазоне ячеек
Код
 lLastRow = Cells.SpecialCells(xlLastCell).Row
    
   Range("A3", Rows.Count).Select
     'Set ra = sh.Range(sh.Range("a11"), sh.Range("a" & sh.Rows.Count).End(xlUp)).Resize(, 10)
    'Selection.ra
    'ni?oe?iaea
 '   Range("A3:H4107").Select
    ActiveWorkbook.Worksheets("Pivot Table").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Pivot Table").Sort.SortFields.Add Key:=Range( _
        "B3:Rows.Count"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    ActiveWorkbook.Worksheets("Pivot Table").Sort.SortFields.Add Key:=Range( _
        "A3:Rows.Count"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    ActiveWorkbook.Worksheets("Pivot Table").Sort.SortFields.Add Key:=Range( _
        "H3:Rows.Count"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Pivot Table").Sort
        .SetRange Range("A3", Rows.Count).Select
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Замена в exel точки на запятую через макрос - MS Excel
 
Код
  Columns("C:C").Select
       Selection.Value = Selection.Value '  Добавил заработало
        Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

спасибо заработало  а в чем причина была это глюк какой то или что то еще
Замена в exel точки на запятую через макрос - MS Excel
 
как это использовать?
Замена в exel точки на запятую через макрос - MS Excel
 
там 3-и листа
1) Тот где работает
2) что  есть  с чем работаю
3) что выводит после замены . на ,
Замена в exel точки на запятую через макрос - MS Excel
 
Для полноты картины добавлю .
это 2 случай данных с которыми мне надо провести замену  и с ними проблема

в первом случае все тоже самое
- после открытия из txt файла копирую значения в колонку на листе, запускаю
поиск/замену и
в колонке  получаются те данные которые мне нужны (запятая стоит на своем месте, разряды не теряются)
одно отличие в том что все ячейки отмены Восклицательным знаком и подписаны "число сохранено как текст"  - но я это пропускаю и все рабоатет как надо ,  а вот во 2 случае беда
 
Замена в exel точки на запятую через макрос - MS Excel
 
День добрый столкнулся с проблеммой
есть стобец с данными вида :

0.000
0.000
0.000
0.000
533333.330
0.000
533333.330
0.000
0.000
0.000

необходимо поменять . на , чтоб можно было работать с числами
если делать это в ручную (на вкладке главная найти и заменить ) то все срабатывает нормально :

0
0
0
0
533333,33
0
533333,33
0
0
0
если это же действие делать через макрос ( "Записать макрос" и поторить действия по замене ) результат другой :
0,000
0,000
0,000
0,000
533 333 330
0,000
533 333 330
0,000
0,000
0,000

как можно это исправить ??


код макроса на всякий случай  
Код
Columns("C:C").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Как сделать текст датой, При сцеплении ячеек получаю данные в виде 01.02.2014 (текст) - как из этого сделать дату
 
формула с --  помогла

как раз то что надо

Код
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
k = ActiveCell.Row 'iiia? iineaaiae caiieiaiiie no?iee

 Range("K1").Select
p = Range("K1")
   ' ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[-6]),CONCATENATE(""01.01.1753"",),CONCATENATE(IF(RC[-6]<10,CONCATENATE(0,RC[-6]),RC[-6]),""."",IF(RC[-5]<10,CONCATENATE(0,RC[-5]),RC[-5]),""."",CONCATENATE(20,RC[-4])))"
    
    ActiveCell.FormulaR1C1 = "=--CONCATENATE(""01"",""."",IF(RC[-8]<10,CONCATENATE(0,RC[-8]),RC[-8]),""."",RC[-9])"
    Selection.AutoFill Destination:=Range("K1:K1" + CStr(k)), Type:=xlFillDefault
    Columns("K:K").Select
    Selection.NumberFormat = "m/d/yyyy"
    
    
    Columns("K:K").Select
    Selection.Copy
    Columns("L:L").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
        
    Columns("K:K").Select
    Selection.ClearContents
    Columns("L:L").Select
    Selection.Copy
    Columns("B:B").Select
    ActiveSheet.Paste
    Selection.NumberFormat = "m/d/yyyy"
    Columns("C:C").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    
    Columns("L:L").Select
    Selection.ClearContents
    
    Columns("K:K").Select
    Selection.ClearContents
Как сделать текст датой, При сцеплении ячеек получаю данные в виде 01.02.2014 (текст) - как из этого сделать дату
 
Цитата
Hugo написал: - так ключевое и не поменяли
не понял? что у vikttur ключевое...

Цитата
kuklp написал: задаются в новых темах с соответствующими названиями. Таковы Правила.
Так тема вроде не закончена
Как сделать текст датой, При сцеплении ячеек получаю данные в виде 01.02.2014 (текст) - как из этого сделать дату
 
вопрос в продолжение
Код
ActiveSheet.Range("H1") = CDate(ActiveSheet.Range("C1") & "." & ActiveSheet.Range("B1"))  -- работает  но как сделать тоже самое для каждой строки 

когда делал формулой то
Код
 ActiveCell.FormulaR1C1 = _
        "=CDate(CONCATENATE(""01"",""."",IF(R[-1]C[-1]<10,CONCATENATE(0,R[-1]C[-1]),R[-1]C[-1]),""."",R[-1]C[-2]))"
           
    Selection.AutoFill Destination:=Range("H1:H1" + CStr(k)), Type:=xlFillDefault
вся колонка получалась заполнена данными , а сейчас заполнена только та ячейка которую указал в коде (H1)

может кто знает чтоб сделать это приведение к дате через формулу ?  
Как сделать текст датой, При сцеплении ячеек получаю данные в виде 01.02.2014 (текст) - как из этого сделать дату
 
ActiveSheet.Range("H1") = CDate(ActiveSheet.Range("C1") & "." & ActiveSheet.Range("B1"))  -- работает  спасибо



еще вопрос как узнать сколько строк заполнено  
Как сделать текст датой, При сцеплении ячеек получаю данные в виде 01.02.2014 (текст) - как из этого сделать дату
 
Run-time error '424': Object required
Код
 Sheet.Range("H1") = CDate(Sheet.Range("C1") & "." & Sheet.Range("B1"))
если так оставить тоже ошибка
Как сделать текст датой, При сцеплении ячеек получаю данные в виде 01.02.2014 (текст) - как из этого сделать дату
 
Argument not optional
Код
    NAC.Range("H1") = CDate(Sheet.Range("C1") & "." & Sheet.Range("B1")) 
так ?
Nac - если оставить Sheet то все равно ошибка
Как сделать текст датой, При сцеплении ячеек получаю данные в виде 01.02.2014 (текст) - как из этого сделать дату
 

Вот кусок кода в котором добавляю формулу  расчитываю и результат формулы (значение) копирую в другую колонку

Код
 ActiveCell.FormulaR1C1 = _
        "=CONCATENATE(""01"",""."",IF(RC[-5]<10,CONCATENATE(0,RC[-5]),RC[-5]),""."",RC[-6])"
    'Selection.AutoFill Destination:=Range("H1:H1"), Type:=xlFillDefault
    Selection.AutoFill Destination:=Range("H1:H1" + CStr(k)), Type:=xlFillDefault
    
    CDate(.Range("C1") & "." & .Range("B1"))
    
    
    Columns("H:H").Select
    Selection.Copy
    Columns("I:I").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
        
    Columns("H:H").Select
    Selection.ClearContents
    Columns("I:I").Select
    Selection.Copy
    Columns("B:B").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.NumberFormat = "m/d/yyyy"
    Columns("C:C").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    
    Columns("I:I").Select
    Selection.ClearContents

Как сделать текст датой, При сцеплении ячеек получаю данные в виде 01.02.2014 (текст) - как из этого сделать дату
 
1)dateserial([a1],[b1],"1")
2)CDate(.Range("C1") & "." & .Range("B1"))

это в код макроса добавлять ? пишет нет такой команды CDATE
Как сделать текст датой, При сцеплении ячеек получаю данные в виде 01.02.2014 (текст) - как из этого сделать дату
 
vikttur ,
переделал формулу добавив &
Код
=СЦЕПИТЬ("01."&ЕСЛИ(C1<10;СЦЕПИТЬ(0;C1);C1)&"."&B1)

ничего не поменялось

забыл добавить в текстовой ячейке которую я получаю (прижата к левому краю) если двойным щелчкем открываю и нажимаю ENTER то ячейка сохраняется как дата и можно ее копировать все нормально
(только все так ячейки не проклацать их несколько тысяч)

сейчас буду разбираться с dateserial([a1],[b1],"1") - напишу что выйдет  
Как сделать текст датой, При сцеплении ячеек получаю данные в виде 01.02.2014 (текст) - как из этого сделать дату
 
День добрый
Такая ситуация делаю макрос для конвертации файлов в exel и застрял на одном моменте

есть 2-е ячейки
2014   --- пярвая ячейка данные
3---- вторая ячейка данные

с помощью формулы
Код
=СЦЕПИТЬ("01";".";ЕСЛИ(C1<10;СЦЕПИТЬ(0;C1);C1);".";B1)

получаю 01.03.2014   - то что мне надо но в ячейке храниться как текст  ( тоесть прижат к левому краю)  а мне нужно получить дату  как это сделать?
( на других листах была похожая ситуация но результат сохраняется как дата)
(менял формат ячейки после как скопировал данные , перед, не помогает)
Страницы: 1
Наверх