Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как при инициализации формы в Texbox получить десятичное число через запятую
 
MikeVol, Спасибо Вам
Как при инициализации формы в Texbox получить десятичное число через запятую
 
Подскажите ещё момент, если когда я отчищаю TextBox1, то "0,0" остаётся в ячейки как убрать эти нули
У меня получилось только с кнопкой
Код
Private Sub CommandButton1_Click()
TextBox1.Value = Empty
ActiveCell.Offset(0, 10).Value = Me.TextBox1
ActiveCell.Offset(0, 10).Value = Empty
End Sub
А если просто, внутри поля "TextBox1", отчистить через backspace и delete как быть тогда?
Как при инициализации формы в Texbox получить десятичное число через запятую
 
MikeVol, спасибо за помощь
Дмитрий(The_Prist) Щербаков, , спасибо за помощь и развёрнутый ответ
Вопрос а мой вариант, подойдет: вроде сработал,
Код
Private Sub UserForm_Initialize()
Me.TextBox1.Text = Format(ActiveCell.Offset(0, 10), "0.0")
End Sub

Изменено: Вал Бал - 30.11.2025 11:18:25
Как при инициализации формы в Texbox получить десятичное число через запятую
 
Цитата
написал:
вашу. Что у вас там отображается в
вот
Цитата
написал:
число "3.7". А мне нужно чтобы отображалось в "TextBox1" число "3,7".
Как при инициализации формы в Texbox получить десятичное число через запятую
 
MikeVol, хорошо подправьте как надо правильно? Чтобы я встал на ячейку "B7"->вызвал форму->записал число через "TextBox1"->в ячейку "L7". И при инициализации формы встаю на ячейку "B7", и нужно получить число в таком же формате если с запятой число, то с запятой, а не с точкой.
Изменено: Вал Бал - 30.11.2025 10:44:14
Как при инициализации формы в Texbox получить десятичное число через запятую
 
Цитата
написал:
И что за запись такая, прости Господи, ActiveCell.Range("A1").Offset(0, 0).Value? Почему
Sanja, потому что у меня работает следующим образом. Например я двойным щелчком По любой ячейки столбца "B:B"вызываю форму
Пускай это будит ячейка "B7", данные я получаю в Texbox  соответственно с ячейки "L7". Туда же и записываются данные с "TextBox1".
Если я это
Цитата
ActiveCell.Range("A1").Offset(0, 0).Value
поменяю на это
Цитата
ActiveCell.Value
Вот в данном примере встаньте на ячейку "B7", и вызовите форму. Вы получите из ячейки "L7" в "TextBox1" число "3.7". А мне нужно чтобы отображалось в "TextBox1" число "3,7". И я не знаю как это сделать
 
Изменено: Вал Бал - 30.11.2025 09:56:13
Как при инициализации формы в Texbox получить десятичное число через запятую
 
Sanja здравствуйте, хорошо для наглядности поменял.
1. На листе "Лист1",  встаньте на ячейка "B7", запустите форму по кнопке.
2. В ячейки "B7" записано число "3,7", при инициализации формы, в Texbox я получаю "3.7", мне нужно чтобы отобразилось не "3.7", а "3,7"
Код
Private Sub TextBox1_Change()
ActiveCell.Range("A1").Offset(0, 0).Value = Val(Replace(Me.TextBox1, ",", "."))
ActiveCell.Range("A1").Offset(0, 0).NumberFormat = "0.0"
End Sub

Private Sub UserForm_Initialize()
Me.TextBox1 = ActiveCell.Range("A1").Offset(0, 0)
End Sub
Как при инициализации формы в Texbox получить десятичное число через запятую
 
Здравствуйте, подскажите пожалуйста как можно при инициализации формы в Texbox получить десятичное число через запятую, а не через точку. Например если я ввожу число в Texbox "2,5", то он заносит в ячейку как "2,5", но когда форма перезагружается то получаю "2.5", или если будит например целое число "5" то получить "5", а не "5,0"
так ввожу число
Код
Private Sub TextBox1_Change()
ActiveCell.Range("A1").Offset(0, 10).Value = Val(Replace(Me.TextBox1, ",", "."))
ActiveCell.Range("A1").Offset(0, 10).NumberFormat = "0.0"
End Sub
так получаю
Код
Private Sub UserForm_Initialize()
Me.TextBox1 = ActiveCell.Range("A1").Offset(0, 10)
End Sub
Изменено: Вал Бал - 29.11.2025 20:23:09
Скопировать данные во все книги папки
 
Дмитрий(The_Prist) Щербаков, да получилось!!! Спасибо Вам БОЛЬШОЕ!!!
Скопировать данные во все книги папки
 
Дмитрий(The_Prist) Щербаков, здравствуйте, выдаёт ошибку:
Цитата
не удаётся вставить данные так как размер копируемой области не соответствует области вставки
выберите только одну ячейку в области вставки или выделите диапазон того же размера, что и вставляемая область, и повторите попытку
Вот код:
Код
Option Explicit

Private Function sInitialFileName_IL_PR() As String
    sInitialFileName_IL_PR = ThisWorkbook.Sheets("Настройки").Range("AA5").Value
    If Right(sInitialFileName_IL_PR, 1) <> "\" Then sInitialFileName_IL_PR = sInitialFileName_IL_PR & "\"
End Function

Sub Обновить_Информация_ИЛ()
Dim wb As Workbook, c As Range, arrWB(), w
    arrWB = ShowFileDialog_IL_PR()
    With Application
       .EnableEvents = False
       .Calculation = xlCalculationManual
       .ScreenUpdating = False
       .Visible = False
            
            For Each w In arrWB
    
            Set wb = Workbooks.Open(w)  ' Этот метод копирует данные в книги находящиеся по пути с главной
            ThisWorkbook.Worksheets("Информация_ИЛ").Cells.Copy 'копируем все данные с активного листа
            'вставляем только значения и форматы
            wb.Worksheets("Информация_ИЛ").Cells(1, 1).PasteSpecial xlPasteValues
            wb.Worksheets("Информация_ИЛ").Cells(1, 1).PasteSpecial xlPasteFormats
            Application.CutCopyMode = False
            wb.Close (True)
        Next w
            
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
        .Visible = True
    End With
    'MsgBox "Готово"
End Sub

Private Sub DeleteNames_IL_PR(wb As Workbook) ' метод копирует формулы без диспетчера имён
    On Error Resume Next
    Dim nn As Name
    For Each nn In wb.Names
        nn.Delete
    Next
    On Error GoTo 0
End Sub
  
Private Function ShowFileDialog_IL_PR() As Variant
    Dim arr As Variant
    Dim sName As String
    sName = Dir(sInitialFileName_IL_PR & "*.xl*")
    Do
        If sName = "" Then Exit Do
        If Left(sName, 2) <> "~$" Then
            If sName <> ThisWorkbook.Name Then
                If IsEmpty(arr) Then
                    ReDim arr(1 To 1)
                Else
                    ReDim Preserve arr(1 To UBound(arr) + 1)
                End If
                arr(UBound(arr)) = sInitialFileName_IL_PR & sName
            End If
        End If
        sName = Dir
        DoEvents
    Loop
    ShowFileDialog_IL_PR = arr
End Function
Скопировать данные во все книги папки
 
МатросНаЗебре, и та формула которая была создана через диспетчер имён копируется как "#ИМЯ?"
Скопировать данные во все книги папки
 
МатросНаЗебре, если на листе нет не одной формулы, то выдаёт ошибку
Цитата
написал:
Не найдено ни одной ячейки, удовлетворяющей указанным условия
Скопировать данные во все книги папки
 
МатросНаЗебре, вот пример
1. В книге "Откуда", на листе "Настройки" ячейка "AA4" укажите путь к папке, например "C:\Users\Val\Desktop\Обновление\Получение", и  в неё поместите эти две книги "Шаблон1" и "Шаблон2"
2. В книге "Откуда", на листе "Информация_ИЛ" ячейка "B7", есть формула "ВОТ" созданная в "Диспетчер имён". Формул созданные в "Диспетчере имён" может быть на листе много. И при копирование они переносятся, в книги.
Изменено: Вал Бал - 28.11.2025 12:12:30
Скопировать данные во все книги папки
 
МатросНаЗебре, спасибо что откликнулись
1. Открываю книгу откуда копируем данные->выполнению макрос, захожу в книгу куда копировались данные->заходим в "Диспетчер имён", и эта формула всё равно перенеслась.
2. В открытой книге откуда копируем данные, если есть на листе формула созданная через диспетчер имён, то макрос копирует данные. А если нет, то выдаёт ошибку
Цитата
Не найдено ни одной ячейки, удовлетворяющей указанным условия
я добавил, эту строку, чтобы копировал без формул, но всё рано переносит в диспетчер имён:
Цитата
c.FormulaLocal = Replace(c.FormulaLocal, "[" & ThisWorkbook.Name & "]", "")
c.Value = c.Value
Помогите, чтобы в "Диспетчер имён" не переносилась формула


Скопировать данные во все книги папки
 
МатросНаЗебре, не могу сообразить как вставить, чтобы из диспетчера имён формулы не копировались. Попробовал так, вставляются значения, но и формулы созданный через диспетчер имён тоже перенеслись, потом при повторной отправке, они требуют их заменить
Цитата
написал:
c.FormulaLocal = Replace(c.FormulaLocal, "[" & ThisWorkbook.Name & "]", "")c.Value = c.Value
сделать так
Код
         Set wb = Workbooks.Open(iCl.Value)
            ThisWorkbook.Worksheets("Настройки").Cells.Copy wb.Worksheets("Настройки").Cells 'копируем все данные с активного листа
            For Each c In wb.Worksheets("Настройки").Cells.SpecialCells(xlCellTypeFormulas, 23)
                c.FormulaLocal = Replace(c.FormulaLocal, "[" & ThisWorkbook.Name & "]", "")
                c.Value = c.Value
            Next c
            wb.Close (True)
        Next
так тоже получаю сообщение
Код
         Set wb = Workbooks.Open(iCl.Value)
            ThisWorkbook.Worksheets("Настройки").Cells.Copy wb.Worksheets("Настройки").Cells 'копируем все данные с активного листа
             wb.Worksheets("Средства измерений").UsedRange.Value = wb.Worksheets("Средства измерений").UsedRange.Value
            wb.Close (True)
        Next
Можете подправить чтобы копировались все данные с листа, и вставлялись только значение, без формул из диспетчера имён??
Изменено: Вал Бал - 27.11.2025 20:11:24
Скопировать данные во все книги папки
 
МатросНаЗебре здравствуйте подскажите, а как можно прописать чтобы вот здесь путь брался из листа "Прог" ячейка "G12"?
Цитата
написал:
Private Const sInitialFileName = "E:\Сервер\Сервер 1\Сервер 2\Сервер 3\Сервер 4\РАБОЧИЕ\Журнал выездов\
Перенести данные из открытой книги в закрытую в определенные листы
 
Классный макрос!!! В работе пригодиться
Изменено: Вал Бал - 26.11.2025 21:46:15
При создании колонтитула макросом выдаёт ошибку
 
Дмитрий(The_Prist) Щербаков, спасибо Вам, то что надо!!!
При создании колонтитула макросом выдаёт ошибку
 
Здравствуйте, помогите решить, данный вопрос. У меня есть макрос который создаёт средний и правый колонтитул. Когда формат текста у колонтитула стоит "Calibri,обычный", то колонтитул создаётся, а когда "Times New Roman,обычный", ты выдаёт ошибку
Цитата
Нельзя установить свойство CenterFooter  класса PageSetup
Как-то можно это обойти???
Как подключить надстройку только к определенному файлу excel
 
Цитата
Nordheim написал:
Смысл надстройки, что бы при открытии любого файла макросы были в них доступны
Не обязательно только в этом смысл
Цитата
Nordheim написал:
Перенесите все процедуры в этот файл и будут они доступны, только в этом файле.
Это я и сам знаю. Вопрос в другом.
Как подключить надстройку только к определенному файлу excel
 
Здравствуйте подскажите пожалуйста, можно ли как-то подключить надстройку только к определенному файлу excel? Если можно то как?
Удалить из VBA определенные формы и макросы
 
buchlotnik, спасибо за ответ коротко и ясно, теперь я буду спать спокойно

я так понимаю вот так
Код
Sub delForm
ActiveWorkbook.VBProject.VBComponents("UserForm1").Collection.Remove ActiveWorkbook.VBProject.VBComponents("UserForm1")
End Sub
Изменено: Вал Бал - 17.10.2020 22:04:00
Удалить из VBA определенные формы и макросы
 
Здравствуйте подскажите пожалуйста. Можно ли Удалить из VBA определенные формы и макросы. Например составил список форм и макросов, которые нужно удалить и разом их удалил. Или есть специальные программы с помощью которых можно удалить?
Страницы: 1
Наверх