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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2012, 00:41   #1
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию перенос данных из Excel в DAT при снятии активации с яейки

Доброго времени суток товарищи макросоведы. пытаюсь разобраться вот с таким вопросом.
Активирую ячейку B12, далее меняю значение с 633,0 на 551,0
далее при нажатии Inter хочу сделать так, чтобы в файле DAT заменялись значения в 22 строке с 38 символа последующие 5.

пытался сделать вот таким способом:

Range("B12").Select
MyFile = "C:\варианты_исследования\IDSAPRK.D AT"
Open MyFile For Output As #1
For Each i In Selection
Print #1, i
Next
Close #1

значение вставляется, но в первую строчку

теперь сам вопрос:
1) как сделать чтобы макрос работал при нажатии inter (при снятии активации с ячейки)
2)как сделать чтобы значение менялось в определенном месте файла DAT
3)как сделать чтобы запятая при вставке менялась на точку

VBA начал осваивать недавно, кое что знаю но многого нет(

Помогите пожалуйста, заранее примного благодарен.
Вложения
Тип файла: zip эскизное_проектирование.zip (187.4 Кб, 9 просмотров)
Nicolas_46 вне форума Ответить с цитированием
Старый 14.09.2012, 02:45   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Вы не ошиблись с ячейкой B12,возможно Е12

Код вставите в модуль листа с именем Лист1

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$E$12" And Target.Value <> "" Then
                UdateDat Replace(Target.Text, ",", ".")
        End If
End Sub

Private Sub UdateDat(s)
        Dim Path As String, X, strLine As String
        Path = "C:\Documents and Settings\Сергей\Рабочий стол\оп\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(22), 35, 11) = Space(4) & s & Space(7 - 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
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 14.09.2012, 15:16   #3
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
Хорошо

благодарю!!!!!) работает как часы.
возник такой вопрос чтобы организовать тоже самое для других ячеек
нужно поменять значение в этой строчке

If Target.Address = "$E$12" And Target.Value <> "" Then

и вот тут:

Mid(X(22), 35, 11) = Space(4) & s & Space(7 - Len(s))

во второй строчке какие цифры за что отвечают?

оставлять макрос в этом же модуле?

Последний раз редактировалось Nicolas_46; 14.09.2012 в 15:22.
Nicolas_46 вне форума Ответить с цитированием
Старый 14.09.2012, 15:23   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

где-то я уже это видел
http://www.cyberforum.ru/vba/thread651118.html
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 14.09.2012, 15:30   #5
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

пытаюсь разобраться) одна голова хорошо а две лучше)
Казанский, знаете ответ на вопрос в предыдущем посте?
Nicolas_46 вне форума Ответить с цитированием
Старый 14.09.2012, 15:32   #6
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

подскажи пожалуйста.
Nicolas_46 вне форума Ответить с цитированием
Старый 14.09.2012, 15:49   #7
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

какие цифры за что отвечают я разобрался)
как сделать чтобы несколько ячеек работали
одновременно c несколькими макросами ?
(макросы настроены на замену разных значений)

Последний раз редактировалось Nicolas_46; 14.09.2012 в 17:12.
Nicolas_46 вне форума Ответить с цитированием
Старый 14.09.2012, 19:01   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Адреса и конкретные числа проставите под себя
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value <> "" Then
Select Case Target.Address
Case "$E$12"
 UdateDat Replace(Target.Text, ",", "."), 22, 35, 11

Case "$C$10"
UdateDat Replace(Target.Text, ",", "."), ??, ??, ??

Case "$F$22"
UdateDat Replace(Target.Text, ",", "."), ??, ??, ??

End Select

End If

End Sub

Private Sub UdateDat(s, St As Integer, Poz As Integer, Dlinna As Integer)
        Dim Path As String, X, strLine As String
        Path = "C:\Documents and Settings\Сергей\Рабочий стол\оп\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(4) & s & Space(Dlinna - 4 - 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
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 11.02.2013, 15:37   #9
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

Появился вопрос по старой теме. Ситуация такая;
Я програмно копирую значение из ячейки(с другого листа) в ячейку где настроена связь с текстовым файлом, значение в ячейке меняется, а в текстовом файле нет, но если в ручную активировать и снять активацию то значение изменится и в текстовике.
Почему так происходит?
Nicolas_46 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отображение данных первого листа, при активации ячейки второго листа Akmal-Sharipov Microsoft Office Excel 4 03.12.2010 14:48
Перенос данных из DbGrid в Excel Nigadyai Общие вопросы Delphi 1 21.03.2010 02:31
Перенос данных в Excel barmy Microsoft Office Word 1 17.12.2009 09:09
Перенос данных из Excel в Word Volch Microsoft Office Excel 6 19.10.2008 20:36