Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Заполнение столбца номерами,с учетом их количества - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнение столбца номерами,с учетом их количества (Макросы/Sub)
Заполнение столбца номерами,с учетом их количества
ASWP Дата: Суббота, 09.06.2018, 18:32 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
Добрый день. Как сделать заполнение столбца номерами, с учетом их количества, при нажатии на кнопку с макросом?
К сообщению приложен файл: dtott.xlsm(18.7 Kb)


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Суббота, 09.06.2018, 19:27
 
Ответить
СообщениеДобрый день. Как сделать заполнение столбца номерами, с учетом их количества, при нажатии на кнопку с макросом?

Автор - ASWP
Дата добавления - 09.06.2018 в 18:32
_Boroda_ Дата: Суббота, 09.06.2018, 19:12 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12744
Репутация: 5226 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Такой вариант
[vba]
Код
Sub tt()
    x1_ = Range("H19").Value
    x2_ = Range("K19").Value
    If x1_ = "" Or x2_ = "" Then Exit Sub 'непустые
    On Error Resume Next
    aaa = x1_ / x2_ 'оба числа и кол-во не равно 0
    If Err Then Exit Sub
    On Error GoTo 0
    With Sheets("Список")
        .Columns(1).ClearContents
        ReDim ar(1 To x2_, 1 To 1)
        For i = 1 To x2_
            ar(i, 1) = WorksheetFunction.Text(x1_ + i - 1, String(Len(x1_), "0"))
        Next i
        With .Cells(1).Resize(x2_)
            .Value = ar
        End With
    End With
End Sub
[/vba]
К сообщению приложен файл: dtott_1.xlsm(21.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТакой вариант
[vba]
Код
Sub tt()
    x1_ = Range("H19").Value
    x2_ = Range("K19").Value
    If x1_ = "" Or x2_ = "" Then Exit Sub 'непустые
    On Error Resume Next
    aaa = x1_ / x2_ 'оба числа и кол-во не равно 0
    If Err Then Exit Sub
    On Error GoTo 0
    With Sheets("Список")
        .Columns(1).ClearContents
        ReDim ar(1 To x2_, 1 To 1)
        For i = 1 To x2_
            ar(i, 1) = WorksheetFunction.Text(x1_ + i - 1, String(Len(x1_), "0"))
        Next i
        With .Cells(1).Resize(x2_)
            .Value = ar
        End With
    End With
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 09.06.2018 в 19:12
ASWP Дата: Суббота, 09.06.2018, 19:30 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Спасибо, макрос работает, но нужно, чтобы новые номера добавлялись в конец списка. И номера не всегда будут идти строго по порядку, а будут зависеть от номера введенного на первом листе.


я знаю что ничего не знаю, но другие не знают и этого
 
Ответить
Сообщение_Boroda_, Спасибо, макрос работает, но нужно, чтобы новые номера добавлялись в конец списка. И номера не всегда будут идти строго по порядку, а будут зависеть от номера введенного на первом листе.

Автор - ASWP
Дата добавления - 09.06.2018 в 19:30
_Boroda_ Дата: Суббота, 09.06.2018, 20:09 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12744
Репутация: 5226 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
нужно, чтобы новые номера добавлялись в конец списка

А в первом сообщении об этом никак нельзя было написать?
номера не всегда будут идти строго по порядку, а будут зависеть от номера введенного на первом листе.
А у меня что, не так разве? Или Вы снова что-то скрываете?
[vba]
Код
Sub tt()
    x1_ = Range("H19").Value
    x2_ = Range("K19").Value
    If x1_ = "" Or x2_ = "" Then Exit Sub 'непустые
    On Error Resume Next
    aaa = x1_ / x2_ 'оба числа и кол-во не равно 0
    If Err Then Exit Sub
    On Error GoTo 0
    ReDim ar(1 To x2_, 1 To 1)
    For i = 1 To x2_
        ar(i, 1) = WorksheetFunction.Text(x1_ + i - 1, String(Len(x1_), "0"))
    Next i
    With Sheets("Список")
        r1_ = .Cells(Rows.Count, 1).End(3).Row
        r1_ = r1_ + 1 + (.Cells(r1_, 1) = "")
        .Cells(r1_, 1).Resize(x2_).Value = ar
        .Select
    End With
End Sub
[/vba]
К сообщению приложен файл: dtott_2.xlsm(21.2 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
нужно, чтобы новые номера добавлялись в конец списка

А в первом сообщении об этом никак нельзя было написать?
номера не всегда будут идти строго по порядку, а будут зависеть от номера введенного на первом листе.
А у меня что, не так разве? Или Вы снова что-то скрываете?
[vba]
Код
Sub tt()
    x1_ = Range("H19").Value
    x2_ = Range("K19").Value
    If x1_ = "" Or x2_ = "" Then Exit Sub 'непустые
    On Error Resume Next
    aaa = x1_ / x2_ 'оба числа и кол-во не равно 0
    If Err Then Exit Sub
    On Error GoTo 0
    ReDim ar(1 To x2_, 1 To 1)
    For i = 1 To x2_
        ar(i, 1) = WorksheetFunction.Text(x1_ + i - 1, String(Len(x1_), "0"))
    Next i
    With Sheets("Список")
        r1_ = .Cells(Rows.Count, 1).End(3).Row
        r1_ = r1_ + 1 + (.Cells(r1_, 1) = "")
        .Cells(r1_, 1).Resize(x2_).Value = ar
        .Select
    End With
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 09.06.2018 в 20:09
ASWP Дата: Суббота, 09.06.2018, 20:24 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Спасибо, все отлично работает. Шестой рабочий день дает о себе знать %)


я знаю что ничего не знаю, но другие не знают и этого
 
Ответить
Сообщение_Boroda_, Спасибо, все отлично работает. Шестой рабочий день дает о себе знать %)

Автор - ASWP
Дата добавления - 09.06.2018 в 20:24
Kuzmich Дата: Суббота, 09.06.2018, 23:18 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 363
Репутация: 69 ±
Замечаний: 0% ±

Excel 2003
[vba]
Код
Sub iNumber()
    n = Worksheets("Список").Cells(Rows.Count, "A").End(xlUp).Row + 1
  With Worksheets("Список").Range("A" & n)
    .Value = Val(Range("H19"))
    .DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
       Step:=1, Stop:=Val(Range("H19")) + Range("K19") - 1, Trend:=False
    .Resize(Range("K19")).NumberFormat = "00000000"
  End With
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Sub iNumber()
    n = Worksheets("Список").Cells(Rows.Count, "A").End(xlUp).Row + 1
  With Worksheets("Список").Range("A" & n)
    .Value = Val(Range("H19"))
    .DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
       Step:=1, Stop:=Val(Range("H19")) + Range("K19") - 1, Trend:=False
    .Resize(Range("K19")).NumberFormat = "00000000"
  End With
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 09.06.2018 в 23:18
ASWP Дата: Суббота, 09.06.2018, 23:31 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, А можно еще функцию добавить , которая будет добавлять текст, в столбец B и C, при заполнении столбца А. Или новую тему создавать?
К сообщению приложен файл: dtott_3.xlsm(21.4 Kb)


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Суббота, 09.06.2018, 23:34
 
Ответить
Сообщение_Boroda_, А можно еще функцию добавить , которая будет добавлять текст, в столбец B и C, при заполнении столбца А. Или новую тему создавать?

Автор - ASWP
Дата добавления - 09.06.2018 в 23:31
boa Дата: Понедельник, 11.06.2018, 22:27 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 20 ±
Замечаний: 0% ±

2013, 2016
ASWP,
перед "End with" добавьте
[vba]
Код
.Cells(r1_, 1).Resize(x2_).Offset(, 1).Value = "текст1"
.Cells(r1_, 1).Resize(x2_).Offset(, 2).Value = "текст2"
[/vba]




Сообщение отредактировал boa - Понедельник, 11.06.2018, 22:29
 
Ответить
СообщениеASWP,
перед "End with" добавьте
[vba]
Код
.Cells(r1_, 1).Resize(x2_).Offset(, 1).Value = "текст1"
.Cells(r1_, 1).Resize(x2_).Offset(, 2).Value = "текст2"
[/vba]

Автор - boa
Дата добавления - 11.06.2018 в 22:27
ASWP Дата: Вторник, 12.06.2018, 19:12 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
А как сделать чтобы после выполнения макроса, не открывался второй лист, а оставался первый?


я знаю что ничего не знаю, но другие не знают и этого
 
Ответить
СообщениеА как сделать чтобы после выполнения макроса, не открывался второй лист, а оставался первый?

Автор - ASWP
Дата добавления - 12.06.2018 в 19:12
boa Дата: Вторник, 12.06.2018, 19:50 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 20 ±
Замечаний: 0% ±

2013, 2016
ASWP,
ну такие вопросы...
вы макрорекодером вообще не пользуетесь?
какие-то действия записать..., а потом почитать листинг кода...

Перед "end sub" добавьте:
[vba]
Код
Worksheets("[имя нужного листа]").activate
[/vba]




Сообщение отредактировал boa - Вторник, 12.06.2018, 19:54
 
Ответить
СообщениеASWP,
ну такие вопросы...
вы макрорекодером вообще не пользуетесь?
какие-то действия записать..., а потом почитать листинг кода...

Перед "end sub" добавьте:
[vba]
Код
Worksheets("[имя нужного листа]").activate
[/vba]

Автор - boa
Дата добавления - 12.06.2018 в 19:50
ASWP Дата: Вторник, 12.06.2018, 20:48 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
boa, Почему же пользуюсь, только я всегда по сложному пути иду, вот иногда и не получается :D


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Вторник, 12.06.2018, 20:49
 
Ответить
Сообщениеboa, Почему же пользуюсь, только я всегда по сложному пути иду, вот иногда и не получается :D

Автор - ASWP
Дата добавления - 12.06.2018 в 20:48
Kuzmich Дата: Вторник, 12.06.2018, 21:29 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 363
Репутация: 69 ±
Замечаний: 0% ±

Excel 2003
Цитата
А как сделать чтобы после выполнения макроса, не открывался второй лист

В моем варианте макроса вы так и остаетесь на листе фвд.
В макросе из сообщения #4 закомментируйте строку кода
[vba]
Код
.Select
[/vba]
 
Ответить
Сообщение
Цитата
А как сделать чтобы после выполнения макроса, не открывался второй лист

В моем варианте макроса вы так и остаетесь на листе фвд.
В макросе из сообщения #4 закомментируйте строку кода
[vba]
Код
.Select
[/vba]

Автор - Kuzmich
Дата добавления - 12.06.2018 в 21:29
ASWP Дата: Вторник, 12.06.2018, 21:45 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
Kuzmich, Я пробовал ваш макрос, просто я не знаю, как в нем сделать вставку доп. текста, сообщение #7, поэтому использую макрос _Boroda_.
закомментируйте строку кода
Точно, это же элементарно :D Спасибо


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Вторник, 12.06.2018, 21:46
 
Ответить
СообщениеKuzmich, Я пробовал ваш макрос, просто я не знаю, как в нем сделать вставку доп. текста, сообщение #7, поэтому использую макрос _Boroda_.
закомментируйте строку кода
Точно, это же элементарно :D Спасибо

Автор - ASWP
Дата добавления - 12.06.2018 в 21:45
Kuzmich Дата: Вторник, 12.06.2018, 21:52 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 363
Репутация: 69 ±
Замечаний: 0% ±

Excel 2003
Цитата
как в нем сделать вставку доп. текста

Добавьте строку перед End With
[vba]
Код
.Offset(, 1).Resize(Range("K19")) = "Текст1"
[/vba]
 
Ответить
Сообщение
Цитата
как в нем сделать вставку доп. текста

Добавьте строку перед End With
[vba]
Код
.Offset(, 1).Resize(Range("K19")) = "Текст1"
[/vba]

Автор - Kuzmich
Дата добавления - 12.06.2018 в 21:52
ASWP Дата: Вторник, 12.06.2018, 22:47 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
Добавьте строку перед End With

Спасибо, все понял. Но все же буду пользоваться макросом _Boroda_ ,он универсальный.


я знаю что ничего не знаю, но другие не знают и этого
 
Ответить
Сообщение
Добавьте строку перед End With

Спасибо, все понял. Но все же буду пользоваться макросом _Boroda_ ,он универсальный.

Автор - ASWP
Дата добавления - 12.06.2018 в 22:47
_Boroda_ Дата: Среда, 13.06.2018, 09:40 | Сообщение № 16
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12744
Репутация: 5226 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У меня наконец-то сайт заработал. Не давало войти с пятницы, только из дома можно было
Перед "end sub" добавьте:
Worksheets("[имя нужного листа]").activate
Достаточно в моем макросе просто убрать строку
[vba]
Код
.Select
[/vba]
А насчет добавления текста - то это смотря какого текста. Если для всех строк одинакового, то да,
[vba]
Код
.Cells(r1_, 1).Resize(x2_).Offset(, 1).Value = "текст1"
[/vba]
, а если для каждой строки свой текст, то опишите подробнее условия

* Не дочитал тему, сразу отвечать полез. Про Select уже было, пардоньте.
**Тьфу, редактирование поста с двумя и более цитатами вообще весь пост перекосило, ссылки на цитаты неверные получились


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995


Сообщение отредактировал _Boroda_ - Среда, 13.06.2018, 21:43
 
Ответить
СообщениеУ меня наконец-то сайт заработал. Не давало войти с пятницы, только из дома можно было
Перед "end sub" добавьте:
Worksheets("[имя нужного листа]").activate
Достаточно в моем макросе просто убрать строку
[vba]
Код
.Select
[/vba]
А насчет добавления текста - то это смотря какого текста. Если для всех строк одинакового, то да,
[vba]
Код
.Cells(r1_, 1).Resize(x2_).Offset(, 1).Value = "текст1"
[/vba]
, а если для каждой строки свой текст, то опишите подробнее условия

* Не дочитал тему, сразу отвечать полез. Про Select уже было, пардоньте.
**Тьфу, редактирование поста с двумя и более цитатами вообще весь пост перекосило, ссылки на цитаты неверные получились

Автор - _Boroda_
Дата добавления - 13.06.2018 в 09:40
ASWP Дата: Среда, 13.06.2018, 18:52 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Мы со всеми задачами в этой теме уже разобрались, спасибо. У меня осталось еще одна задача, по этому примеру, но это уже в другой теме.


я знаю что ничего не знаю, но другие не знают и этого
 
Ответить
Сообщение_Boroda_, Мы со всеми задачами в этой теме уже разобрались, спасибо. У меня осталось еще одна задача, по этому примеру, но это уже в другой теме.

Автор - ASWP
Дата добавления - 13.06.2018 в 18:52
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнение столбца номерами,с учетом их количества (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!