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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2011, 11:53   #1
sersh1
Пользователь
 
Регистрация: 22.09.2011
Сообщений: 20
По умолчанию Как сделать что бы макрос переходил к следующему циклу

Добрый день!
помогите, пожалуйста:
в колонке А и В может быть до 7 городов и ФИО, необходимо что бы макрос брал по каждому городу все фио, сначала по первому городу выводил все ФИО, затем по второму городу и т.д. Сейчас макрос проверяет только один город не переходит ко второму.
В примере должно быть понятнее. спасибо.
Вложения
Тип файла: zip Книга2.zip (40.4 Кб, 32 просмотров)
sersh1 вне форума Ответить с цитированием
Старый 22.09.2011, 12:09   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Этот код пугает...
А это что?:
If Cells(3, 1) = " " Then
Exit Sub
End If
Т.е. если вместо Москвы в примере забить пробел, то ничего анализировать не нужно, а если просто пусто - то работаем?

Вообще я бы сделал так - города в словарь, фамилии в массив в Item словаря.
Если памяти не жалко - массивы сразу задаём по максимуму, если жалко, но не жалко времени - переопределяем по Redim Preserve.
А вот куда и как выгружать - это не понял, из примера не ясно.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 22.09.2011, 12:10   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

1. архив битый, не открывается (или только у меня?)
2. посортируйте данные, запишите свои действия рекордером - будет вам готовый макрос без циклов.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.09.2011, 12:12   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я открыл - скопировал из архива коммандером.
А винраром извлечь не получилось - конфликт версий?
Сортировка не поможет - там данные вида

Цитата:
Москва Иванов
Сочи Петров
____ Сидоров
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 22.09.2011 в 12:14.
Hugo121 вне форума Ответить с цитированием
Старый 22.09.2011, 12:20   #5
sersh1
Пользователь
 
Регистрация: 22.09.2011
Сообщений: 20
По умолчанию

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

If Cells(3, 1) = " " Then
Exit Sub
End If

подскажите как можно это сделать?
sersh1 вне форума Ответить с цитированием
Старый 22.09.2011, 12:21   #6
sersh1
Пользователь
 
Регистрация: 22.09.2011
Сообщений: 20
По умолчанию

города и фио расположены в колонке А и В и их может быть до 7 шт. каждого
sersh1 вне форума Ответить с цитированием
Старый 22.09.2011, 12:28   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

С расположением фамилий и городов понятно.
Не понятно, как выводить нужно - где пример по Сочям? Или по Сочи?
А макрос нужно переписать!
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 22.09.2011, 12:32   #8
sersh1
Пользователь
 
Регистрация: 22.09.2011
Сообщений: 20
По умолчанию

я понимаю что его нужно переписать, но как не знаю,
В итоге должна быть такая таблица, если введено в колонку А два города и в колонку В 3 ФИО, города разные а фио одни и те же.


Город фио
Москва Иванов
Петров
Сидоров
Сочи Иванов
Петров
Сидоров
sersh1 вне форума Ответить с цитированием
Старый 22.09.2011, 12:44   #9
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

> В примере должно быть понятнее.

Что тут можно понять - одна фамилия на город. А Сидоров относится к Сочи, или он отдельно?

Скорее всего, нужно заполнение пустых ячеек ( http://www.planetaexcel.ru/tip.php?aid=86 ) и сортировка.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 22.09.2011 в 12:45. Причина: Не видел предыдущего поста
Казанский вне форума Ответить с цитированием
Старый 22.09.2011, 12:46   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ничего не понял...

А пока такой код подобрал (чуть переделал) - создаёт новые книги, куда на первый лист (под именем города) выгружает фамилии:

Код:
Sub tt()
Dim a, oDict As Object, i&, temp$, kk

a = [a3].CurrentRegion.Value
Set oDict = CreateObject("Scripting.Dictionary")
oDict.CompareMode = vbTextCompare

For i = 1 To UBound(a)
If Len(a(i, 1)) Then temp = a(i, 1)
        If Not oDict.Exists(temp) Then
            ReDim b(1 To UBound(a) + 1, 1 To 1)
            b(UBound(a) + 1, 1) = 1
            b(1, 1) = a(i, 2)
            oDict.Add temp, b
        Else
        b = oDict.Item(temp)
            b(UBound(a) + 1, 1) = b(UBound(a) + 1, 1) + 1
            b(b(UBound(a) + 1, 1), 1) = a(i, 2)
            oDict.Item(temp) = b
        End If
Next

    For Each kk In oDict.keys
    
    With Workbooks.Add
        .Worksheets(1).Name = kk
        .Worksheets(1).Range("A1").Resize(oDict.Item(kk)(UBound(a) + 1, 1)) = oDict.Item(kk)
'        .SaveAs ThisWorkbook.Path & "\" & kk
'        .Close 0
    End With
    
    Next

End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формула или макрос?? Как это сделать? Deni55 Microsoft Office Excel 1 07.04.2011 16:15
Как передать фокус следующему по TabOrder'у элементу? TwiX Общие вопросы Delphi 5 11.02.2010 21:44
как сделать не доступными ячейки использяю макрос mars56 Microsoft Office Excel 2 12.01.2010 09:40
Как сделать макрос вставки строк? Григорий_краснодар Microsoft Office Excel 1 26.11.2009 14:31
Как сделать макрос для ComboBoxa anahronism Microsoft Office Excel 0 28.05.2008 15:40