Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2013, 22:11   #1
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию как исправить макрос?

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

вопрос: как сделать чтобы макрос работал с кнопки, т.е. все значения из указанных ячеек записывались в файл не атоматически, а при нажатии кнопки.

заранее огромное спасибо.

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
'On Error Resume Next
If Target.Value <> "" Then
Select Case Target.Address

Case "$B$4"
 UdateDat Replace(Target.Text, ",", "."), 7, 5, 5
 Case "$C$4"
 UdateDat Replace(Target.Text, ",", "."), 7, 14, 5
Case "$D$4"
 UdateDat Replace(Target.Text, ",", "."), 7, 23, 5
Case "$E$4"
 UdateDat Replace(Target.Text, ",", "."), 7, 33, 5
Case "$F$4"
 UdateDat Replace(Target.Text, ",", "."), 7, 43, 5
Case "$G$4"
 UdateDat Replace(Target.Text, ",", "."), 7, 52, 5


Case "$B$7"
 UdateDat Replace(Target.Text, ",", "."), 14, 5, 4
 Case "$C$7"
 UdateDat Replace(Target.Text, ",", "."), 14, 15, 4
Case "$D$7"
 UdateDat Replace(Target.Text, ",", "."), 14, 24, 4
Case "$E$7"
 UdateDat Replace(Target.Text, ",", "."), 14, 34, 4
Case "$F$7"
 UdateDat Replace(Target.Text, ",", "."), 14, 44, 4
Case "$G$7"
 UdateDat Replace(Target.Text, ",", "."), 14, 53, 4


End Select

End If

End Sub

Private Sub UdateDat(s, St As Integer, Poz As Integer, Dlinna As Integer)
        On Error Resume Next
        Dim Path As String, X, strLine As String
        Path = ThisWorkbook.Path & "\IDSAPRK.DAT"
        Set oFSO = CreateObject("Scripting.FileSystemObject")
        Set oText = oFSO.OpenTextFile(Path, 1)
        strLine = oText.ReadAll
        oText.Close
        X = Split(strLine, vbCrLf, -1)
        Mid(X(St), Poz, Dlinna) = Space(2) & s & Space(Dlinna - 2 - Len(s))
        strLine = Join(X, vbCrLf)
        Set TextSave = oFSO.OpenTextFile(Path, 2)
        TextSave.Write strLine
        TextSave.Close
        Set oFSO = Nothing: Set TextSave = Nothing: Set oText = Nothing
End Sub

Последний раз редактировалось Nicolas_46; 06.01.2013 в 22:15.
Nicolas_46 вне форума Ответить с цитированием
Старый 07.01.2013, 04:44   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
'On Error Resume Next
If Target.Value <> "" Then
Заменить на
Код:
Private Sub CommandButton1_Click()
 Dim Target As Range
 Set Target = ActiveCell
'On Error Resume Next
If Target.Value <> "" Then
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 07.01.2013, 17:16   #3
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

При замене, автоматическая запись убирается,
но при нажатии Run ничего не происходит.
даже не ругается. как быть?
Nicolas_46 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исправить Парик454 Общие вопросы Delphi 0 11.12.2012 16:41
Дата записана как текст - как програмно исправить? riko_ltd Microsoft Office Excel 1 26.11.2012 08:01
Как исправить ? kiryxa(cyc) Помощь студентам 0 17.05.2012 09:49
Как исправить............. trash1205 Microsoft Office Word 2 21.03.2012 12:56
как исправить! lexinvest Операционные системы общие вопросы 1 08.05.2011 18:03