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

Вход

Регистрация

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

 

= Мир MS Excel/Нумерация строк - Мир MS Excel

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

Excel 2010
Есть такая проблема, не могу придумать как пронумеровать позиции
в общем есть такая табличка предположим

№, п/п Наименование Показатель, Макс. Периметр или Диаметр Материал Объем, м2 Цена Итого, руб.
Воздуховод прямоугольный 2200,00 Лист оц. 0,55 42,00 791,04 33223,73
Воздуховод прямоугольный 2200,00 Лист оц. 0,55 42,00 791,04 33223,73
Воздуховод прямоугольный 2200,00 Лист оц. 0,55 42,00 791,04 33223,73

Число строк естественно меняется в зависимости от числа позиций. Как что бы перед наименованием проставить порядковый номер позиции.
Макрос выглядит так
[vba]
Код
Sub Прямик_фас()
Application.ScreenUpdating = False

' Вставим наименование
Sheets("прямоугольный с фас.").Select
Range("B1").Select
Selection.Copy
Sheets("Ком.пред").Select
Range("B4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Вставим показатель
Sheets("прямоугольный с фас.").Select
Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ком.пред").Select
Range("C4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' вставим материал
Sheets("прямоугольный с фас.").Select
Range("A7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ком.пред").Select
Range("D4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Вставим объем
Sheets("прямоугольный с фас.").Select
Range("F2").Select
Selection.Copy
Sheets("Ком.пред").Select
Range("E4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Вставим цену
Sheets("прямоугольный с фас.").Select
Range("F24").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ком.пред").Select
Range("G4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Вставим итого
Application.ScreenUpdating = True
Sheets("прямоугольный с фас.").Select
Range("E24").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ком.пред").Select
Range("H4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("прямоугольный с фас.").Select
Application.Cursor = xlDefault
End Sub
[/vba]
 
Ответить
СообщениеЕсть такая проблема, не могу придумать как пронумеровать позиции
в общем есть такая табличка предположим

№, п/п Наименование Показатель, Макс. Периметр или Диаметр Материал Объем, м2 Цена Итого, руб.
Воздуховод прямоугольный 2200,00 Лист оц. 0,55 42,00 791,04 33223,73
Воздуховод прямоугольный 2200,00 Лист оц. 0,55 42,00 791,04 33223,73
Воздуховод прямоугольный 2200,00 Лист оц. 0,55 42,00 791,04 33223,73

Число строк естественно меняется в зависимости от числа позиций. Как что бы перед наименованием проставить порядковый номер позиции.
Макрос выглядит так
[vba]
Код
Sub Прямик_фас()
Application.ScreenUpdating = False

' Вставим наименование
Sheets("прямоугольный с фас.").Select
Range("B1").Select
Selection.Copy
Sheets("Ком.пред").Select
Range("B4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Вставим показатель
Sheets("прямоугольный с фас.").Select
Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ком.пред").Select
Range("C4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' вставим материал
Sheets("прямоугольный с фас.").Select
Range("A7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ком.пред").Select
Range("D4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Вставим объем
Sheets("прямоугольный с фас.").Select
Range("F2").Select
Selection.Copy
Sheets("Ком.пред").Select
Range("E4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Вставим цену
Sheets("прямоугольный с фас.").Select
Range("F24").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ком.пред").Select
Range("G4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Вставим итого
Application.ScreenUpdating = True
Sheets("прямоугольный с фас.").Select
Range("E24").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ком.пред").Select
Range("H4").Select
вниз
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("прямоугольный с фас.").Select
Application.Cursor = xlDefault
End Sub
[/vba]

Автор - Гисер
Дата добавления - 04.10.2013 в 08:13
ShAM Дата: Пятница, 04.10.2013, 08:19 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
в общем есть такая табличка предположим

Давайте не будем предполагать, а почитаем Правила, покажем все это в файле (что, куда, зачем), будем оформлять коды соответственно.
 
Ответить
Сообщение
в общем есть такая табличка предположим

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

Автор - ShAM
Дата добавления - 04.10.2013 в 08:19
Гисер Дата: Пятница, 04.10.2013, 13:06 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Как скажете, прошу прощения...
К сообщению приложен файл: _Microsoft_Exce.xlsx (28.8 Kb)
 
Ответить
СообщениеКак скажете, прошу прощения...

Автор - Гисер
Дата добавления - 04.10.2013 в 13:06
SkyPro Дата: Пятница, 04.10.2013, 13:13 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Гисер,
(что, куда, зачем)
?
Вы можете ВНИМАТЕЛЬНО прочитать правила и составить нормальный пример с исходными данными, откуда и что нужно брать, что с этим делать и куда это вставить? Или вы полагаете, что это форум "битвы экстрасенсов" ?


skypro1111@gmail.com
 
Ответить
СообщениеГисер,
(что, куда, зачем)
?
Вы можете ВНИМАТЕЛЬНО прочитать правила и составить нормальный пример с исходными данными, откуда и что нужно брать, что с этим делать и куда это вставить? Или вы полагаете, что это форум "битвы экстрасенсов" ?

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

2003
Можно воспользоваться формулой в колонке А.
Код
=ЕСЛИ(B5="";"";СТРОКА()-4)

Макросом так можно, (если угадал с копированием):
К сообщению приложен файл: 5472920.xls (61.0 Kb)
 
Ответить
СообщениеМожно воспользоваться формулой в колонке А.
Код
=ЕСЛИ(B5="";"";СТРОКА()-4)

Макросом так можно, (если угадал с копированием):

Автор - Wasilich
Дата добавления - 04.10.2013 в 18:57
wild_pig Дата: Пятница, 04.10.2013, 19:21 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
вариант от я
К сообщению приложен файл: 3238832.xls (25.5 Kb)
 
Ответить
Сообщениевариант от я

Автор - wild_pig
Дата добавления - 04.10.2013 в 19:21
Гисер Дата: Вторник, 08.10.2013, 12:16 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Объясняльшик из меня так себе, но нашлись понимающие люди) Огромное спасибо!
 
Ответить
СообщениеОбъясняльшик из меня так себе, но нашлись понимающие люди) Огромное спасибо!

Автор - Гисер
Дата добавления - 08.10.2013 в 12:16
Гисер Дата: Пятница, 11.10.2013, 05:59 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub Гнутье()
PS = Sheets("Ком.пред").Range("B" & Rows.Count).End(xlUp).Row + 1
With Sheets("Гнутье")
Sheets("Ком.пред").Range("A" & PS) = PS - 4
Sheets("Ком.пред").Range("B" & PS) = .Range("A2") ' Вставим наименование
Sheets("Ком.пред").Range("C" & PS) = .Range("F5") ' Вставим показатель
Sheets("Ком.пред").Range("D" & PS) = .Range("A8") ' Вставим материал
Sheets("Ком.пред").Range("E" & PS) = .Range("E3") ' Вставим объем
Sheets("Ком.пред").Range("G" & PS) = .Range("F26") ' Вставим цену
Sheets("Ком.пред").Range("H" & PS) = .Range("E26") ' Вставим итого
End With
End Sub
[/vba]

Спасибо за макрос очень лаконично и правильно. Можно как то так же для диапазона написать.

Как будет выглядеть если не одну ячейку вставить нужно а диапазон A2:F5.?
 
Ответить
Сообщение[vba]
Код
Sub Гнутье()
PS = Sheets("Ком.пред").Range("B" & Rows.Count).End(xlUp).Row + 1
With Sheets("Гнутье")
Sheets("Ком.пред").Range("A" & PS) = PS - 4
Sheets("Ком.пред").Range("B" & PS) = .Range("A2") ' Вставим наименование
Sheets("Ком.пред").Range("C" & PS) = .Range("F5") ' Вставим показатель
Sheets("Ком.пред").Range("D" & PS) = .Range("A8") ' Вставим материал
Sheets("Ком.пред").Range("E" & PS) = .Range("E3") ' Вставим объем
Sheets("Ком.пред").Range("G" & PS) = .Range("F26") ' Вставим цену
Sheets("Ком.пред").Range("H" & PS) = .Range("E26") ' Вставим итого
End With
End Sub
[/vba]

Спасибо за макрос очень лаконично и правильно. Можно как то так же для диапазона написать.

Как будет выглядеть если не одну ячейку вставить нужно а диапазон A2:F5.?

Автор - Гисер
Дата добавления - 11.10.2013 в 05:59
KuklP Дата: Пятница, 11.10.2013, 06:26 | Сообщение № 9
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Народная мудрость гласит, что нет такой программы, к-рую нельзя было бы сократить, хотя бы на одну строку :)
[vba]
Код
Sub ВСТАВИТЬ()
       PS = Sheets("Ком.пред").Cells(Rows.Count, 2).End(xlUp)(2).Row
       With Sheets("прямоугольный с фас.")
           Sheets("Ком.пред").Range("A" & PS & ":H" & PS) = _
           Array(PS - 4, .[b1], .[g4], .[a7], .[f2], .[f24], .[e26])
       End With
End Sub
[/vba] beer


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Пятница, 11.10.2013, 06:30
 
Ответить
СообщениеНародная мудрость гласит, что нет такой программы, к-рую нельзя было бы сократить, хотя бы на одну строку :)
[vba]
Код
Sub ВСТАВИТЬ()
       PS = Sheets("Ком.пред").Cells(Rows.Count, 2).End(xlUp)(2).Row
       With Sheets("прямоугольный с фас.")
           Sheets("Ком.пред").Range("A" & PS & ":H" & PS) = _
           Array(PS - 4, .[b1], .[g4], .[a7], .[f2], .[f24], .[e26])
       End With
End Sub
[/vba] beer

Автор - KuklP
Дата добавления - 11.10.2013 в 06:26
Гисер Дата: Пятница, 11.10.2013, 07:01 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KuklP, спасибо, но это на будущее) Переписывать все лень...сейчас бы выяснить вопрос как таким же образом написать для диапазона
A2:F5
 
Ответить
СообщениеKuklP, спасибо, но это на будущее) Переписывать все лень...сейчас бы выяснить вопрос как таким же образом написать для диапазона
A2:F5

Автор - Гисер
Дата добавления - 11.10.2013 в 07:01
KuklP Дата: Пятница, 11.10.2013, 07:42 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Я не понимаю, в чем тут сложность(не знаю задачи). Так и пишите:
[vba]
Код
[c27:h30] = [a2:f5].Value
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЯ не понимаю, в чем тут сложность(не знаю задачи). Так и пишите:
[vba]
Код
[c27:h30] = [a2:f5].Value
[/vba]

Автор - KuklP
Дата добавления - 11.10.2013 в 07:42
Гисер Дата: Пятница, 11.10.2013, 07:43 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Сложнось в моем знании VBA)))
 
Ответить
СообщениеСложнось в моем знании VBA)))

Автор - Гисер
Дата добавления - 11.10.2013 в 07:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Нумерация строк (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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