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

Вход

Регистрация

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

 

= Мир MS Excel/Автоматическое нумерация ячеек до заданного значения - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическое нумерация ячеек до заданного значения (Макросы/Sub)
Автоматическое нумерация ячеек до заданного значения
ksplinter Дата: Среда, 28.10.2015, 17:33 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте.
В ячейках B3 и B4 заданы числа, допустим 48 и 22 соответственно. Необходимо, чтобы при нажатии на кнопку запуска макроса автоматически нумеровались строка 1 с ячейки Е1 от 1 до 22 и столбец D c ячейки D2 от 1 до 48, т.е. как бы образовывалась таблица, в которую потом вносились значения.
Не подскажете, как это сделать? Весь инет перерыл, не нашел ничего подобного.
Заранее спасибо.
 
Ответить
СообщениеЗдравствуйте.
В ячейках B3 и B4 заданы числа, допустим 48 и 22 соответственно. Необходимо, чтобы при нажатии на кнопку запуска макроса автоматически нумеровались строка 1 с ячейки Е1 от 1 до 22 и столбец D c ячейки D2 от 1 до 48, т.е. как бы образовывалась таблица, в которую потом вносились значения.
Не подскажете, как это сделать? Весь инет перерыл, не нашел ничего подобного.
Заранее спасибо.

Автор - ksplinter
Дата добавления - 28.10.2015 в 17:33
pechkin Дата: Среда, 28.10.2015, 18:28 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 49 ±
Замечаний: 0% ±

2003
Здравствуйте! Посмотрите...
К сообщению приложен файл: 4958785.xls (22.5 Kb)
 
Ответить
СообщениеЗдравствуйте! Посмотрите...

Автор - pechkin
Дата добавления - 28.10.2015 в 18:28
Wasilich Дата: Среда, 28.10.2015, 18:58 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Чуть короче
[vba]
Код
Sub Tаблица()
  Dim i&
  For i = 2 To Range("B3") + 1
    Cells(i, 4).Value = i - 1
  Next
  For i = 5 To Range("B4") + 4
    Cells(1, i).Value = i - 4
  Next
End Sub
[/vba]
 
Ответить
СообщениеЧуть короче
[vba]
Код
Sub Tаблица()
  Dim i&
  For i = 2 To Range("B3") + 1
    Cells(i, 4).Value = i - 1
  Next
  For i = 5 To Range("B4") + 4
    Cells(1, i).Value = i - 4
  Next
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 28.10.2015 в 18:58
ksplinter Дата: Среда, 28.10.2015, 19:18 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо большое, работает!
Последняя просьба, если не затруднит. Было бы здорово, если при нажатии на кнопку макроса, автоматически менялось заполнение ячеек в зависимости от введенных данных. Если вводить значения большие предыдущих, то все нормально - новые ячейки заполняются. А вот если вводить значения меньше предыдущих, то старые заполненные значения остаются.
 
Ответить
СообщениеСпасибо большое, работает!
Последняя просьба, если не затруднит. Было бы здорово, если при нажатии на кнопку макроса, автоматически менялось заполнение ячеек в зависимости от введенных данных. Если вводить значения большие предыдущих, то все нормально - новые ячейки заполняются. А вот если вводить значения меньше предыдущих, то старые заполненные значения остаются.

Автор - ksplinter
Дата добавления - 28.10.2015 в 19:18
Wasilich Дата: Среда, 28.10.2015, 19:29 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Ну установите очистку столбца и строки в начале кода.
[vba]
Код
Sub Tаблица()
  Dim i&
  Range("D1:D150").ClearContents
  Range("D1:CC1").ClearContents
  For i = 2 To Range("B3") + 1
    Cells(i, 4).Value = i - 1
  Next
  For i = 5 To Range("B4") + 4
    Cells(1, i).Value = i - 4
  Next
End Sub
[/vba]


Сообщение отредактировал Wasilic - Среда, 28.10.2015, 19:43
 
Ответить
СообщениеНу установите очистку столбца и строки в начале кода.
[vba]
Код
Sub Tаблица()
  Dim i&
  Range("D1:D150").ClearContents
  Range("D1:CC1").ClearContents
  For i = 2 To Range("B3") + 1
    Cells(i, 4).Value = i - 1
  Next
  For i = 5 To Range("B4") + 4
    Cells(1, i).Value = i - 4
  Next
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 28.10.2015 в 19:29
sv2014 Дата: Среда, 28.10.2015, 19:34 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 61 ±
Замечаний: 0% ±

Excel 2013
ksplinter, добрый вечер,протестируйте такой макрос,кнопка test на Лист2

[vba]
Код
Sub test()
   Dim i%
   For i = 2 To 49
      Range("D" & i) = i - 1
   Next
   For i = 1 To 22
    Range("E1:Z1").Cells(i) = i
  Next
End Sub
[/vba]
К сообщению приложен файл: 4958785_28_10_2.xlsm (24.6 Kb)
 
Ответить
Сообщениеksplinter, добрый вечер,протестируйте такой макрос,кнопка test на Лист2

[vba]
Код
Sub test()
   Dim i%
   For i = 2 To 49
      Range("D" & i) = i - 1
   Next
   For i = 1 To 22
    Range("E1:Z1").Cells(i) = i
  Next
End Sub
[/vba]

Автор - sv2014
Дата добавления - 28.10.2015 в 19:34
sv2014 Дата: Среда, 28.10.2015, 20:30 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 61 ±
Замечаний: 0% ±

Excel 2013
ksplinter, добавлю,что если надо менять числовые значения в соответствующих ячейках,
то макросы такие

[vba]
Код
Sub test()
   очистить
   Dim i%
  For i = 2 To Range("B3")
    Range("D" & i+1) = i
  Next
For i = 1 To Range("B4")
  Range("D1").Offset(, i) = i
Next
End Sub
[/vba]

Sub очистить()
Dim i1%, t$, a%
i1 = Range("D" & Cells.Rows.Count).End(xlUp).Row
Range("D2:D" & i1).ClearContents
a = Range("B4")
t = Split(Range("D1").Offset(, a).Address, "$")(1)
Range("D1:" & t & "1").ClearContents
End Sub
К сообщению приложен файл: 3324041.xlsm (25.1 Kb)


Сообщение отредактировал sv2014 - Среда, 28.10.2015, 21:07
 
Ответить
Сообщениеksplinter, добавлю,что если надо менять числовые значения в соответствующих ячейках,
то макросы такие

[vba]
Код
Sub test()
   очистить
   Dim i%
  For i = 2 To Range("B3")
    Range("D" & i+1) = i
  Next
For i = 1 To Range("B4")
  Range("D1").Offset(, i) = i
Next
End Sub
[/vba]

Sub очистить()
Dim i1%, t$, a%
i1 = Range("D" & Cells.Rows.Count).End(xlUp).Row
Range("D2:D" & i1).ClearContents
a = Range("B4")
t = Split(Range("D1").Offset(, a).Address, "$")(1)
Range("D1:" & t & "1").ClearContents
End Sub

Автор - sv2014
Дата добавления - 28.10.2015 в 20:30
RAN Дата: Среда, 28.10.2015, 20:39 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

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

:D Я его и так, и эдак, со словами, и без слов...
Если все нормально, как быть со старыми?
А если не нормально, что с новыми делать?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Если вводить значения большие предыдущих, то все нормально - новые ячейки заполняются. А вот если вводить значения меньше предыдущих, то старые заполненные значения остаются.

:D Я его и так, и эдак, со словами, и без слов...
Если все нормально, как быть со старыми?
А если не нормально, что с новыми делать?

Автор - RAN
Дата добавления - 28.10.2015 в 20:39
ksplinter Дата: Среда, 28.10.2015, 20:41 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем спасибо, воспользовался кодом от Wasilic


Сообщение отредактировал ksplinter - Среда, 28.10.2015, 20:41
 
Ответить
СообщениеВсем спасибо, воспользовался кодом от Wasilic

Автор - ksplinter
Дата добавления - 28.10.2015 в 20:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическое нумерация ячеек до заданного значения (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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