Страницы: 1
RSS
Никак не ставится ноль перед числом
 
Что только не делаю, не хочет ставится ноль перед числом. Собираю дату из нескольких ячеек.

В каждой ячейке выпадающий список, с заданными значениями


Год в C4 - 2016;2017;2018;2019;2020
Месяц в C5 - 01;02;03;04;05;06;07;08;09;10;11;12
День в C6 - 01;02;03;04;05;06;07;08;09;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31

Когда выбираю месяц и день до 10, например 7 месяц и 8 день, то перед этим числом нет нуля, а он нужен.

Задаю собственный формат типа 00 для этих ячеек


Визуально меняется число на нужное, но если использовать эту ячейку в макросах, то ноля в них нет.

В A3 вставил СЕГОДНЯ и ниже по ячейкам разобрал год - =ТЕКСТ(A3;"ГГГГ"), месяц - =ТЕКСТ(A3;"ММ") и день - =ТЕКСТ(A3;"ДД").

Сделал кнопку чтобы в выпадающие списки копировались значения из этих ячеек
Код
Private Sub CommandButton1_Click()
    Range("C4").FormulaR1C1 = "=RC[-2]"
    Range("C5").FormulaR1C1 = "=RC[-2]"
    Range("C6").FormulaR1C1 = "=RC[-2]"
End Sub
И когда копируются значения, то ноль в них есть, ни только визуально, но и в макросах его видно. Но только выбираю снова из выпадающих списков что-то, как ноль теряется.

Как правильно добавить туда ноль этот, подскажите пожалуйста?
 
Попробуйте формат конечной ячейки "Текстовый" Или если сцепить по другому, то тоже результат преобразуется в текст
Код
=F9&G9
Изменено: gling - 30.07.2017 11:18:44
 
gling,с текстовым форматом получается, в выпадающих списках всё норм. Но только одно тогда не выходит, при попытке вставить с кнопки сегодняшнюю дату получается вот такая картина


теперь проблема в самом макросе)
Код
Private Sub CommandButton1_Click()
    Range("C4").FormulaR1C1 = "=RC[-2]"
    Range("C5").FormulaR1C1 = "=RC[-2]"
    Range("C6").FormulaR1C1 = "=RC[-2]"
End Sub
Получается макрос выполняет такую операцию, задаёт ячейке C5 ссылку на ячейку A5, просто вставляет в неё =A5 и готово) но надо как-то иначе это сделать, тогда будет толк
 
Я понял так, что нужен конечный результат в ячейке J9, при чем здесь столбцы А и В?
Цитата
gling написал:
Попробуйте формат конечной ячейки "Текстовый"
Ведь в А и В ноль  в начале чисел отображается правильно.
Если нужно в С вписать макросом, можно ещё текстовый формат ячейки и
Код
Range("C5").Value = Range("A5").Text
Изменено: gling - 30.07.2017 11:47:29
 
А зачем там вообще формулы?
Код
Private Sub CommandButton1_Click()
    Debug.Print Date
    Debug.Print Year(Date)
    Debug.Print Format(Month(Date), "00")
    Debug.Print Day(Date)
End Sub
 
gling, Юрий М, просто я не разбираюсь в VBA, потому и приходится лепить такие конструкции, чтобы хоть как-то реализовать задачу, а не лезть по простейшим вопросам на форум, плодя миллионы новых, бесполезных тем)

gling, конечный результат должен быть в ячейке с выпадающим списком, для месяца C5, для дня C6.
Используется это всё в макросах, пример:
Код
'
' Загружаем 3
'
Sub DateSheetCopy_3()
  With Workbooks.Open("C:/DOCUMENTS/Arhives/3_" & Range("C4").Value & "" & Range("C5").Value & "" & Range("C6").Value & ".xls", ReadOnly:=True)
    ActiveSheet.Cells.Copy ThisWorkbook.Sheets("Блок 3").Cells(1, 1)
    .Close False
  End With
End Sub

если бы просто сцепить надо было я бы и не мучился)
 
Цитата
Добрый написал:
я не разбираюсь в VBA
Ну а чем мой вариант не устраивает?
 
Юрий М,гуглю как это все разбить по ячейкам) а так конечно же подойдет!

Юрий М, gling, спасибо!!!)
 
Код
Private Sub CommandButton1_Click()
    Range("A1") = Date
    Range("A2") = Year(Date)
    Range("A3") = Month(Date)
    Range("A3").NumberFormat = "00" 'Форматируем ячейку
    Range("A4") = Day(Date)
End Sub
 
Юрий М,благодарю!!!)
 
Если нужно отформатируйте аналогично и день в ячейке А4 )
 
Юрий М,да,так и сделал, спасибо!!!)
 
В ячейке применяется формула ДАТА, пользовательский формат ДД
Изменено: z_sir - 30.07.2017 14:51:37
 
z_sir, это понятно, но когда в этой же ячейке расположен выпадающий список с датами у которых в начале стоит ноль, то этот ноль при выборе любого значения слетает) решение получилось найти благодаря "Текстовому" формату ячейки, с ним ноль остаётся.
 
Код
Private Sub CommandButton1_Click()
    Range("C4:C6") = Application.Transpose(Split(Format(Date, "'YYYY.'MM.'DD"), "."))
End Sub


PS В список проверки данных записать номера с апострофом впереди.
'01;'02;'03;'04;.....
Тогда это всегда будет текстом
Изменено: RAN - 30.07.2017 15:19:09
 
RAN,Спасибо!!! Знал бы раньше про апострофы, не было бы столько мороки)
 
Цитата
Добрый написал:
расположен выпадающий список с датами у которых в начале стоит ноль, то этот ноль при выборе любого значения слетает)
но в предлагаемом решении ничего не слетает
 
z_sir, у меня просто всё чуть иначе организовано, не вся дата в единой ячейке, а разбита на несколько ячеек. Одна ячейка - месяц, вторая ячейка под ней - день. Вот в них и слетает, в документе из старпоста это чётко видно)
Страницы: 1
Читают тему
Наверх