Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/как удалить структуру начинающуюся с ячейки "X" - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » как удалить структуру начинающуюся с ячейки "X" (Макросы Sub)
как удалить структуру начинающуюся с ячейки "X"
sportsmen Дата: Понедельник, 13.01.2014, 00:55 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Есть файл, в котором сотни фамилий и меняющиеся цифры относящиеся к этим ФИО (ФИО- постоянные величины), периодически надо отправлять отчет в котором нужно удалять строки относящиеся к конкретной фамилии(созданные структуры-группировки)
Вопрос: как подготовить макрос, в котором можно было бы указав фамилии, удалять всю группировку относящуюся к ним ?
Во вложенном файле, например, удалить "петров петр петрович" и "астафьев гаврила петрович" (выделено желтым цветом).
Фамилии в основном повторяющиеся(90% от общего списка)
К сообщению приложен файл: Primer.xlsx (10.4 Kb)


Сообщение отредактировал sportsmen - Понедельник, 13.01.2014, 22:26
 
Ответить
СообщениеЕсть файл, в котором сотни фамилий и меняющиеся цифры относящиеся к этим ФИО (ФИО- постоянные величины), периодически надо отправлять отчет в котором нужно удалять строки относящиеся к конкретной фамилии(созданные структуры-группировки)
Вопрос: как подготовить макрос, в котором можно было бы указав фамилии, удалять всю группировку относящуюся к ним ?
Во вложенном файле, например, удалить "петров петр петрович" и "астафьев гаврила петрович" (выделено желтым цветом).
Фамилии в основном повторяющиеся(90% от общего списка)

Автор - sportsmen
Дата добавления - 13.01.2014 в 00:55
Матраскин Дата: Понедельник, 13.01.2014, 09:58 | Сообщение № 2
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
sportsmen,
[vba]
Код
Sub mac()
     Dim i As Long, lastUsedRow As Long
     FIO = InputBox("Введите ФИО ", "ФИО") ' вводим нужное ФИО
     lastUsedRow = Sheets("Лист1").Cells(Sheets("Лист1").Rows.Count, 1).End(xlUp).Row 'номер последн. заполн. строки
     For i = 2 To lastUsedRow
         If Cells(i, 1) = FIO And TypeName(Cells(i + 1, 1).Value) <> "String" Then ' удаляем строки под ФИО
             Rows(i + 1).Delete Shift:=xlUp
             i = i - 1
             lastUsedRow = lastUsedRow - 1
         ElseIf Cells(i, 1) = FIO And TypeName(Cells(i + 1, 1).Value) = "String" Then ' удаляем само ФИО
             Rows(i).Delete Shift:=xlUp
             i = i - 1
             lastUsedRow = lastUsedRow - 1
         End If
     Next
End Sub
[/vba]


в интернете опять кто-то не прав
 
Ответить
Сообщениеsportsmen,
[vba]
Код
Sub mac()
     Dim i As Long, lastUsedRow As Long
     FIO = InputBox("Введите ФИО ", "ФИО") ' вводим нужное ФИО
     lastUsedRow = Sheets("Лист1").Cells(Sheets("Лист1").Rows.Count, 1).End(xlUp).Row 'номер последн. заполн. строки
     For i = 2 To lastUsedRow
         If Cells(i, 1) = FIO And TypeName(Cells(i + 1, 1).Value) <> "String" Then ' удаляем строки под ФИО
             Rows(i + 1).Delete Shift:=xlUp
             i = i - 1
             lastUsedRow = lastUsedRow - 1
         ElseIf Cells(i, 1) = FIO And TypeName(Cells(i + 1, 1).Value) = "String" Then ' удаляем само ФИО
             Rows(i).Delete Shift:=xlUp
             i = i - 1
             lastUsedRow = lastUsedRow - 1
         End If
     Next
End Sub
[/vba]

Автор - Матраскин
Дата добавления - 13.01.2014 в 09:58
sportsmen Дата: Понедельник, 13.01.2014, 11:12 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Матраскин, спасибо, но как включить в макрос сразу, постоянно повторяющиеся фамилии ? (удобнее будет и новые там же прописывать, без диалогового окна)
 
Ответить
СообщениеМатраскин, спасибо, но как включить в макрос сразу, постоянно повторяющиеся фамилии ? (удобнее будет и новые там же прописывать, без диалогового окна)

Автор - sportsmen
Дата добавления - 13.01.2014 в 11:12
Матраскин Дата: Понедельник, 13.01.2014, 11:34 | Сообщение № 4
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
sportsmen,
[vba]
Код
Sub mac()
     Dim i As Long, lastUsedRow As Long
     Dim sizeArray As Integer
     Dim Array_FIO As Variant
     Array_FIO = Array("петров петр петрович", "григорьева ана петровна")
     lastUsedRow = Sheets("Лист1").Cells(Sheets("Лист1").Rows.Count, 1).End(xlUp).Row 'номер последн. заполн. строки
     sizeArray = UBound(Array_FIO) - LBound(Array_FIO) ' размер массива ФИО
     For j = 0 To sizeArray
         For i = 2 To lastUsedRow
             If Cells(i, 1) = Array_FIO(j) And TypeName(Cells(i + 1, 1).Value) <> "String" Then ' удаляем строки под ФИО
                 Rows(i + 1).Delete Shift:=xlUp
                 i = i - 1
                 lastUsedRow = lastUsedRow - 1
             ElseIf Cells(i, 1) = Array_FIO(j) And TypeName(Cells(i + 1, 1).Value) = "String" Then ' удаляем само ФИО
                 Rows(i).Delete Shift:=xlUp
                 i = i - 1
                 lastUsedRow = lastUsedRow - 1
             End If
         Next
     Next
End Sub
[/vba]


в интернете опять кто-то не прав

Сообщение отредактировал Матраскин - Понедельник, 13.01.2014, 11:46
 
Ответить
Сообщениеsportsmen,
[vba]
Код
Sub mac()
     Dim i As Long, lastUsedRow As Long
     Dim sizeArray As Integer
     Dim Array_FIO As Variant
     Array_FIO = Array("петров петр петрович", "григорьева ана петровна")
     lastUsedRow = Sheets("Лист1").Cells(Sheets("Лист1").Rows.Count, 1).End(xlUp).Row 'номер последн. заполн. строки
     sizeArray = UBound(Array_FIO) - LBound(Array_FIO) ' размер массива ФИО
     For j = 0 To sizeArray
         For i = 2 To lastUsedRow
             If Cells(i, 1) = Array_FIO(j) And TypeName(Cells(i + 1, 1).Value) <> "String" Then ' удаляем строки под ФИО
                 Rows(i + 1).Delete Shift:=xlUp
                 i = i - 1
                 lastUsedRow = lastUsedRow - 1
             ElseIf Cells(i, 1) = Array_FIO(j) And TypeName(Cells(i + 1, 1).Value) = "String" Then ' удаляем само ФИО
                 Rows(i).Delete Shift:=xlUp
                 i = i - 1
                 lastUsedRow = lastUsedRow - 1
             End If
         Next
     Next
End Sub
[/vba]

Автор - Матраскин
Дата добавления - 13.01.2014 в 11:34
sportsmen Дата: Понедельник, 13.01.2014, 12:29 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Матраскин, Огромное спасибо !!! hands
 
Ответить
СообщениеМатраскин, Огромное спасибо !!! hands

Автор - sportsmen
Дата добавления - 13.01.2014 в 12:29
sportsmen Дата: Понедельник, 13.01.2014, 13:39 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
как оказалось, для некоторых фамилий, представленная форма отличается :( , пример прикладываю
К сообщению приложен файл: 4203409.xlsx (10.5 Kb)


Сообщение отредактировал sportsmen - Понедельник, 13.01.2014, 13:42
 
Ответить
Сообщениекак оказалось, для некоторых фамилий, представленная форма отличается :( , пример прикладываю

Автор - sportsmen
Дата добавления - 13.01.2014 в 13:39
Матраскин Дата: Понедельник, 13.01.2014, 13:58 | Сообщение № 7
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
sportsmen, новые и новые приключения)
[vba]
Код
Sub mac()
      Dim i As Long, lastUsedRow As Long
      Dim sizeArray As Integer
      Dim Array_FIO As Variant
      Array_FIO = Array("петров петр петрович", "астафьев гаврила петрович")
      lastUsedRow = Sheets("Лист1").Cells(Sheets("Лист1").Rows.Count, 1).End(xlUp).Row 'номер последн. заполн. строки
      sizeArray = UBound(Array_FIO) - LBound(Array_FIO) ' размер массива ФИО
      For j = 0 To sizeArray
          For i = 2 To lastUsedRow
              If Cells(i, 1) = Array_FIO(j) And (TypeName(Cells(i + 1, 1).Value) <> "String" Or _
               LCase(Cells(i + 1, 1).Value) Like "на период*") Then ' удаляем строки под ФИО
                  Rows(i + 1).Delete Shift:=xlUp
                  i = i - 1
                  lastUsedRow = lastUsedRow - 1
              ElseIf Cells(i, 1) = Array_FIO(j) And TypeName(Cells(i + 1, 1).Value) = "String" Then ' удаляем само ФИО
                  Rows(i).Delete Shift:=xlUp
                  i = i - 1
                  lastUsedRow = lastUsedRow - 1
              End If
          Next
      Next
End Sub
[/vba]


в интернете опять кто-то не прав

Сообщение отредактировал Матраскин - Понедельник, 13.01.2014, 13:59
 
Ответить
Сообщениеsportsmen, новые и новые приключения)
[vba]
Код
Sub mac()
      Dim i As Long, lastUsedRow As Long
      Dim sizeArray As Integer
      Dim Array_FIO As Variant
      Array_FIO = Array("петров петр петрович", "астафьев гаврила петрович")
      lastUsedRow = Sheets("Лист1").Cells(Sheets("Лист1").Rows.Count, 1).End(xlUp).Row 'номер последн. заполн. строки
      sizeArray = UBound(Array_FIO) - LBound(Array_FIO) ' размер массива ФИО
      For j = 0 To sizeArray
          For i = 2 To lastUsedRow
              If Cells(i, 1) = Array_FIO(j) And (TypeName(Cells(i + 1, 1).Value) <> "String" Or _
               LCase(Cells(i + 1, 1).Value) Like "на период*") Then ' удаляем строки под ФИО
                  Rows(i + 1).Delete Shift:=xlUp
                  i = i - 1
                  lastUsedRow = lastUsedRow - 1
              ElseIf Cells(i, 1) = Array_FIO(j) And TypeName(Cells(i + 1, 1).Value) = "String" Then ' удаляем само ФИО
                  Rows(i).Delete Shift:=xlUp
                  i = i - 1
                  lastUsedRow = lastUsedRow - 1
              End If
          Next
      Next
End Sub
[/vba]

Автор - Матраскин
Дата добавления - 13.01.2014 в 13:58
sportsmen Дата: Понедельник, 13.01.2014, 21:16 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Матраскин, и вновь спасибо ! yes
 
Ответить
СообщениеМатраскин, и вновь спасибо ! yes

Автор - sportsmen
Дата добавления - 13.01.2014 в 21:16
Мир MS Excel » Вопросы и решения » Вопросы по VBA » как удалить структуру начинающуюся с ячейки "X" (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!