Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с макросом для Excel / 8 сообщений из 8, страница 1 из 1
24.02.2006, 16:10:33
    #33563953
zergik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с макросом для Excel
Помогите пожалуйста решить такую задачу:
Есть текстовый файл в котором хранится такая информация:

№ 35/98 // номер заказа
10.01.06 // дата оформления заказа
1500 // цена заказа
20% // скидка
1200 // цена со скидкой
+ другие данные

Именем файла является номер заказа, т.е. 35-98.txt
Тепер эти данные нужно передать в таблицу Excel. Сам процес мне представляется так: Я ввожу в ячейку номер заказа --> Запускаю макрос, который берет информацию с файла в соответствии с введенным номером и записывает в ячейки (находящиеся в одной строке с номером заказа) информацию из файла.
Или сделать какую-то формочку на которой есть например ComboBox со списком имен файлов (хранящихся в опр. папке), и после выбора файла данные занеслись в соотв. ячейки.
В VB я не силен (так что если это возможно, то поподробнее).
Заранее благодарен всем откликнувшимся!!!
...
Рейтинг: 0 / 0
26.02.2006, 10:04:06
    #33565108
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с макросом для Excel
помести этот код в модуль листа
текстовые файлы должны находится в той же папки что и этот файл
при вводе в ячейку "A1" имени файла например: "35-85.txt"
данные занесутся на лист начиная с ячейки "А3"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ImpRng As Range
    Dim Filename As String
    Dim r As Long
    Dim c As Integer
    Dim txt As String
    Dim Char As String *  1 
    Dim Impt
    If Target.Address <> "$A$1" Then Exit Sub ' проверка ввода данных в "А1"
    Set ImpRng = ActiveSheet.Cells( 3 ,  1 ) 'ячейка откуда начнут вставлятся данные
    Filename = Left(ThisWorkbook.fullname, Len(ThisWorkbook.fullname) - Len(ThisWorkbook.name)) & _
        cells( 1 , 1 ).value 'путь к текущему файлу + имя файла из ячейки "А1"
    If Dir(Filename, vbNormal) = "" Then 'проверка существования файла
        MsgBox "Фаил " & cells( 1 , 1 ).value & " был удалён или перемещён.", vbCritical
        Exit Sub
    End If
    r =  0 
    c =  0 
    txt = ""
    Open Filename For Input As # 1  'открытие файла
        Do Until EOF( 1 )
            Line Input # 1 , Impt 'считывание строки
            For i =  1  To Len(Impt)
                Char = Mid(Impt, i,  1 )
                If Char = "," Then 'разделитель между значениями
                    ImpRng.Offset(r, c) = txt 'вставка данных
                    c = c +  1 
                    txt = ""
                ElseIf i = Len(Impt) Then 'проверка конца строки
                    If Char <> Chr( 34 ) Then txt = txt & Char
                    ImpRng.Offset(r, c) = txt 'вставка данных
                    txt = ""
                ElseIf Char <> Chr( 34 ) Then
                    txt = txt & Char
                End If
            Next i
            c =  0 
            r = r +  1 
        Loop
    Close # 1 
End Sub
...
Рейтинг: 0 / 0
26.02.2006, 15:10:16
    #33565851
Помогите пожалуйста с макросом для Excel
Посмотри.
...
Рейтинг: 0 / 0
27.02.2006, 09:45:58
    #33566856
zergik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с макросом для Excel
Большое спасибо!!!.
И еще один вопросик по макросу. Можно ли сделать так, чтоб например в ячейку 1.2 ввел номер заказа - в ячейках 1.2...1.3... и т.д. появились данные.
Потом в ячейку 2.1 ввел номер заказа, вызвал макрос и уже в ячейках 2.2...2.3... и т.д. появились данные. (т.е. добавлять заказы в таблицу.)
...
Рейтинг: 0 / 0
27.02.2006, 10:42:30
    #33567060
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с макросом для Excel
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ImpRng As Range
Dim Filename As String
Dim r As Long
Dim c As Integer
Dim txt As String
Dim Char As String * 1
Dim Impt
If Target.Address <> "$A$1" Then Exit Sub ' проверка ввода данных в "А1"
Set ImpRng = ActiveSheet.Cells(3, Target.Column) 'ячейка откуда начнут вставлятся данные
Filename = Left(ThisWorkbook.fullname, Len(ThisWorkbook.fullname) - Len(ThisWorkbook.name)) & _
cells(1,1).value 'путь к текущему файлу + имя файла из ячейки "А1"
If Dir(Filename, vbNormal) = "" Then 'проверка существования файла
MsgBox "Фаил " & cells(1,1).value & " был удалён или перемещён.", vbCritical
Exit Sub
End If
r = 0
c = 0
txt = ""
Open Filename For Input As #1 'открытие файла
Do Until EOF(1)
Line Input #1, Impt 'считывание строки
For i = 1 To Len(Impt)
Char = Mid(Impt, i, 1)
If Char = "," Then 'разделитель между значениями
ImpRng.Offset(r, c) = txt 'вставка данных
c = c + 1
txt = ""
ElseIf i = Len(Impt) Then 'проверка конца строки
If Char <> Chr(34) Then txt = txt & Char
ImpRng.Offset(r, c) = txt 'вставка данных
txt = ""
ElseIf Char <> Chr(34) Then
txt = txt & Char
End If
Next i
c = 0
r = r + 1
Loop
Close #1
End Sub
...
Рейтинг: 0 / 0
27.02.2006, 14:08:45
    #33567905
zergik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с макросом для Excel
Еще такой вопрос:
Как определить номер строки в которой выделена ячейка, какой метод за это отвечает?
...
Рейтинг: 0 / 0
27.02.2006, 15:03:05
    #33568107
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с макросом для Excel
Код: plaintext
MsgBox ActiveCell.Row
...
Рейтинг: 0 / 0
27.02.2006, 15:04:28
    #33568117
Дмит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с макросом для Excel
ActiveCell.Row
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с макросом для Excel / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]