Поочередная вставка и массовая печать
rty
Дата: Среда, 27.02.2019, 20:38 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Добрый вечер! Прошу помощи так как в макросах не силен: для вставки данных использовал макрос который был написан одним из участников форума Проблема в том что при вставке на в нужное поле ячейка А2 и с последующим преобразованием в штрих код пропадают нули перед число. Например 00102030423 штрих код считается как 102030423
Добрый вечер! Прошу помощи так как в макросах не силен: для вставки данных использовал макрос который был написан одним из участников форума Проблема в том что при вставке на в нужное поле ячейка А2 и с последующим преобразованием в штрих код пропадают нули перед число. Например 00102030423 штрих код считается как 102030423 rty
Ответить
Сообщение Добрый вечер! Прошу помощи так как в макросах не силен: для вставки данных использовал макрос который был написан одним из участников форума Проблема в том что при вставке на в нужное поле ячейка А2 и с последующим преобразованием в штрих код пропадают нули перед число. Например 00102030423 штрих код считается как 102030423 Автор - rty Дата добавления - 27.02.2019 в 20:38
_Boroda_
Дата: Среда, 27.02.2019, 21:00 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16901
Репутация:
6613
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Попробуйте так
Sub PrintVse()
Cells(2 , 1 ).NumberFormat = "@"
With Sheets(1 ).Range("Table1" )
For i = 1 To .Count
Cells(2 , 1 ) = .Cells(i).Text
' Me.PrintOut
Next i
End With
End Sub
Попробуйте так
Sub PrintVse()
Cells(2 , 1 ).NumberFormat = "@"
With Sheets(1 ).Range("Table1" )
For i = 1 To .Count
Cells(2 , 1 ) = .Cells(i).Text
' Me.PrintOut
Next i
End With
End Sub
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Попробуйте так [vba]
Sub PrintVse() Cells(2; 1).NumberFormat = "@" With Sheets(1).Range("Тable1") For i = 1 To .Count Cells(2; 1) = .Cells(i ).Text ' Me.PrintOut Next i End WithEnd Sub
[/vba] Автор - _Boroda_ Дата добавления - 27.02.2019 в 21:00
rty
Дата: Среда, 27.02.2019, 22:30 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
_Boroda_ , Спасибо за быстрый ответ! Завтра на работе про тестирую
_Boroda_ , Спасибо за быстрый ответ! Завтра на работе про тестируюrty
Ответить
Сообщение _Boroda_ , Спасибо за быстрый ответ! Завтра на работе про тестируюАвтор - rty Дата добавления - 27.02.2019 в 22:30
rty
Дата: Среда, 27.02.2019, 23:07 |
Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
_Boroda_ , подскажите пожалуйста вставляю в макрос
Sub Paste()
Dim shSrc As Worksheet, shRes As Worksheet
Dim lr As Long
Application.ScreenUpdating = False
Set shSrc = Worksheets("Database" )
Set shRes = Worksheets("Pasport" )
Cells(26 , 6 ).NumberFormat = "@"
lr = shSrc.Cells(shSrc.Rows.Count, "A" ).End(xlUp).Row
shRes.Range("F26" ).Value = shSrc.Cells(lr, "B" ).Value
shRes.Range("F8" ).Value = shSrc.Cells(lr, "C" ).Value
shRes.Range("F9" ).Value = shSrc.Cells(lr, "D" ).Value
shRes.Range("F11" ).Value = shSrc.Cells(lr, "M" ).Value
MsgBox "Ok" , vbInformation
Application.ScreenUpdating = True
ActiveSheet.PrintOut
End Sub
строчку
Cells(26 , 6 ).NumberFormat = "@"
в ячейке F26 такая же фигня с номером и не помогает если 00102030423 то 102030423
_Boroda_ , подскажите пожалуйста вставляю в макрос
Sub Paste()
Dim shSrc As Worksheet, shRes As Worksheet
Dim lr As Long
Application.ScreenUpdating = False
Set shSrc = Worksheets("Database" )
Set shRes = Worksheets("Pasport" )
Cells(26 , 6 ).NumberFormat = "@"
lr = shSrc.Cells(shSrc.Rows.Count, "A" ).End(xlUp).Row
shRes.Range("F26" ).Value = shSrc.Cells(lr, "B" ).Value
shRes.Range("F8" ).Value = shSrc.Cells(lr, "C" ).Value
shRes.Range("F9" ).Value = shSrc.Cells(lr, "D" ).Value
shRes.Range("F11" ).Value = shSrc.Cells(lr, "M" ).Value
MsgBox "Ok" , vbInformation
Application.ScreenUpdating = True
ActiveSheet.PrintOut
End Sub
строчку
Cells(26 , 6 ).NumberFormat = "@"
в ячейке F26 такая же фигня с номером и не помогает если 00102030423 то 102030423rty
Ответить
Сообщение _Boroda_ , подскажите пожалуйста вставляю в макрос [vba]
Sub Paste() Dim shSrc As Worksheet ; shRes As Worksheet Dim lr As Long Application.ScreenUpdating = False Set shSrc = Worksheets("Database") Set shRes = Worksheets("Pasport") Cells(26; 6).NumberFormat = "@" lr = shSrc.Cells(shSrc.Rows.Count ; "A").End(xlUp ).Row shRes.Range("F26").Value = shSrc.Cells(lr ; "B").Value shRes.Range("F8").Value = shSrc.Cells(lr ; "C").Value shRes.Range("F9").Value = shSrc.Cells(lr ; "D").Value shRes.Range("F11").Value = shSrc.Cells(lr ; "M").Value MsgBox "Ok"; vbInformation Application.ScreenUpdating = Тrue ActiveSheet.PrintOutEnd Sub
[/vba] строчку [vba]
Cells(26, 6).NumberFormat = "@"
[/vba] в ячейке F26 такая же фигня с номером и не помогает если 00102030423 то 102030423Автор - rty Дата добавления - 27.02.2019 в 23:07
bmv98rus
Дата: Среда, 27.02.2019, 23:20 |
Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация:
772
±
Замечаний:
0% ±
Excel 2013/2016
а что у вас там shSrc.Cells(lr, "B").Value? Если есть уверенность что всегда 9 символов, то лучше
=Right("000000000"&shSrc.Cells(lr , "B").Value ,11)
или подобное.
а что у вас там shSrc.Cells(lr, "B").Value? Если есть уверенность что всегда 9 символов, то лучше
=Right("000000000"&shSrc.Cells(lr , "B").Value ,11)
или подобное. bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Четверг, 28.02.2019, 11:08
Ответить
Сообщение а что у вас там shSrc.Cells(lr, "B").Value? Если есть уверенность что всегда 9 символов, то лучше
=Right("000000000"&shSrc.Cells(lr , "B").Value ,11)
или подобное. Автор - bmv98rus Дата добавления - 27.02.2019 в 23:20
rty
Дата: Среда, 27.02.2019, 23:32 |
Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
bmv98rus , неа, не помогло
bmv98rus , неа, не помоглоrty
Ответить
Сообщение bmv98rus , неа, не помоглоАвтор - rty Дата добавления - 27.02.2019 в 23:32
_Boroda_
Дата: Четверг, 28.02.2019, 00:00 |
Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16901
Репутация:
6613
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Вы у меня где увидели Value? .Text дает не реальное значение из ячейки, а видимое. Например, реально в ячейке 1 и стоит формат 00000. Тогда Value даст 1, а Text даст 00001. А у Вас в исходной таблице нолики вначале сделаны с помощью формата
shRes.Range("F26" ).Value = shSrc.Cells(lr, "B" ).Text
Вы у меня где увидели Value? .Text дает не реальное значение из ячейки, а видимое. Например, реально в ячейке 1 и стоит формат 00000. Тогда Value даст 1, а Text даст 00001. А у Вас в исходной таблице нолики вначале сделаны с помощью формата
shRes.Range("F26" ).Value = shSrc.Cells(lr, "B" ).Text
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Вы у меня где увидели Value? .Text дает не реальное значение из ячейки, а видимое. Например, реально в ячейке 1 и стоит формат 00000. Тогда Value даст 1, а Text даст 00001. А у Вас в исходной таблице нолики вначале сделаны с помощью формата [vba]
shRes.Range("F26").Value = shSrc.Cells(lr , "B").Text
[/vba] Автор - _Boroda_ Дата добавления - 28.02.2019 в 00:00
bmv98rus
Дата: Четверг, 28.02.2019, 11:12 |
Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация:
772
±
Замечаний:
0% ±
Excel 2013/2016
Если честно, то лучше в ячейке со штрихкодом использовать
=Code_128(ПРАВСИМВ(ПОВТОР(0;11)&A2 ;11))
тогда отпадет надобность в что-то мудрить в коде. Александр _Boroda_ , прав, что можно использовать .Text, а не .Value, но я б предпочел не опираться на формат ячейки.
Если честно, то лучше в ячейке со штрихкодом использовать
=Code_128(ПРАВСИМВ(ПОВТОР(0;11)&A2 ;11))
тогда отпадет надобность в что-то мудрить в коде. Александр _Boroda_ , прав, что можно использовать .Text, а не .Value, но я б предпочел не опираться на формат ячейки. bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение Если честно, то лучше в ячейке со штрихкодом использовать
=Code_128(ПРАВСИМВ(ПОВТОР(0;11)&A2 ;11))
тогда отпадет надобность в что-то мудрить в коде. Александр _Boroda_ , прав, что можно использовать .Text, а не .Value, но я б предпочел не опираться на формат ячейки. Автор - bmv98rus Дата добавления - 28.02.2019 в 11:12
RAN
Дата: Четверг, 28.02.2019, 12:14 |
Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Не нравится красным, мазни зеленым
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
Application.EnableEvents = 0
Target.NumberFormat = "@"
Target.Value = Format (Target.Value, "000000000" )
Application.EnableEvents = -1
End If
End Sub
Не нравится красным, мазни зеленым
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
Application.EnableEvents = 0
Target.NumberFormat = "@"
Target.Value = Format (Target.Value, "000000000" )
Application.EnableEvents = -1
End If
End Sub
RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Не нравится красным, мазни зеленым [vba]
Private Sub Worksheet_Change(ByVal Target As Range ) If Target.Address = "$A$2" Then Application.EnableEvents = 0 Target.NumberFormat = "@" Target.Value = Format(Target.Value , "000000000") Application.EnableEvents = -1 End IfEnd Sub
[/vba] Автор - RAN Дата добавления - 28.02.2019 в 12:14
rty
Дата: Четверг, 28.02.2019, 21:48 |
Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
_Boroda_ , RAN , bmv98rus , Спасибо огромное за помощь
_Boroda_ , RAN , bmv98rus , Спасибо огромное за помощьrty
Ответить
Сообщение _Boroda_ , RAN , bmv98rus , Спасибо огромное за помощьАвтор - rty Дата добавления - 28.02.2019 в 21:48
boa
Дата: Пятница, 01.03.2019, 16:00 |
Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 563
Репутация:
167
±
Замечаний:
0% ±
365
rty, один из способов, что бы не обрезало нули, передать переменную как строку, т.е.
shRes.Range("F26" ).Value = cstr(shSrc.Cells(lr, "B" ).Text)
rty, один из способов, что бы не обрезало нули, передать переменную как строку, т.е.
shRes.Range("F26" ).Value = cstr(shSrc.Cells(lr, "B" ).Text)
boa
Ответить
Сообщение rty, один из способов, что бы не обрезало нули, передать переменную как строку, т.е. [vba]
shRes.Range("F26").Value = cstr(shSrc.Cells(lr , "B").Text )
[/vba] Автор - boa Дата добавления - 01.03.2019 в 16:00
_Boroda_
Дата: Пятница, 01.03.2019, 16:08 |
Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 16901
Репутация:
6613
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
передать переменную как строку, т.е.
Какую переменную? И что, вот такshRes.Range("F26").Value = shSrc.Cells(lr, "B").Text
кусок shSrc.Cells(lr, "B").Text - не строка будет?
передать переменную как строку, т.е.
Какую переменную? И что, вот такshRes.Range("F26").Value = shSrc.Cells(lr, "B").Text
кусок shSrc.Cells(lr, "B").Text - не строка будет?_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение передать переменную как строку, т.е.
Какую переменную? И что, вот такshRes.Range("F26").Value = shSrc.Cells(lr, "B").Text
кусок shSrc.Cells(lr, "B").Text - не строка будет?Автор - _Boroda_ Дата добавления - 01.03.2019 в 16:08
boa
Дата: Пятница, 01.03.2019, 17:10 |
Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 563
Репутация:
167
±
Замечаний:
0% ±
365
_Boroda_, исправлюсь передать *значение как строку значение shSrc.Cells(lr, "B").Text может быть любым и автоформатирование может его преобразовать на свое усмотрение. Так вот, если передавать значение обработав cstr, даже если формат ячейки куда вставляется значение = "0", будет вставлено как текст, со всеми нулями в начале.
_Boroda_, исправлюсь передать *значение как строку значение shSrc.Cells(lr, "B").Text может быть любым и автоформатирование может его преобразовать на свое усмотрение. Так вот, если передавать значение обработав cstr, даже если формат ячейки куда вставляется значение = "0", будет вставлено как текст, со всеми нулями в начале. boa
Сообщение отредактировал boa - Пятница, 01.03.2019, 17:12
Ответить
Сообщение _Boroda_, исправлюсь передать *значение как строку значение shSrc.Cells(lr, "B").Text может быть любым и автоформатирование может его преобразовать на свое усмотрение. Так вот, если передавать значение обработав cstr, даже если формат ячейки куда вставляется значение = "0", будет вставлено как текст, со всеми нулями в начале. Автор - boa Дата добавления - 01.03.2019 в 17:10
bmv98rus
Дата: Пятница, 01.03.2019, 18:02 |
Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация:
772
±
Замечаний:
0% ±
Excel 2013/2016
вставлено как текст, со всеми нулями в начале.
Уверены на 100%? Я лично убежден что это не так . Это совсем не правильно, но только "'"&shSrc.Cells(lr, "B").Text поможет если не трогать формат ячейки.
вставлено как текст, со всеми нулями в начале.
Уверены на 100%? Я лично убежден что это не так . Это совсем не правильно, но только "'"&shSrc.Cells(lr, "B").Text поможет если не трогать формат ячейки.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Пятница, 01.03.2019, 18:28
Ответить
Сообщение вставлено как текст, со всеми нулями в начале.
Уверены на 100%? Я лично убежден что это не так . Это совсем не правильно, но только "'"&shSrc.Cells(lr, "B").Text поможет если не трогать формат ячейки.Автор - bmv98rus Дата добавления - 01.03.2019 в 18:02
boa
Дата: Пятница, 01.03.2019, 18:22 |
Сообщение № 15
Группа: Друзья
Ранг: Ветеран
Сообщений: 563
Репутация:
167
±
Замечаний:
0% ±
365
bmv98rus, Я лично убежден что это не так .
проверил, согласен. с SQL-запросами попутал
bmv98rus, Я лично убежден что это не так .
проверил, согласен. с SQL-запросами попутал boa
Ответить
Сообщение bmv98rus, Я лично убежден что это не так .
проверил, согласен. с SQL-запросами попутал Автор - boa Дата добавления - 01.03.2019 в 18:22