Страницы: 1
RSS
Удаление данных при определенном условии
 
Есть макрос, который собирает, соединяет в ячейки (Cells) данные с ячеек (Cells) другого листа. Помоготи добавить условие для сбора данных при определенном условии. Например, если в ячейке - Cells (m, 3) появляется слово “Допуск”, то в Cells (m, 9) не должны добавлятся данные из Cells(n, 35) и Cells(n, 36), то есть слова “Протокол” и “Постановление”.  Помогите, пожалуйста, для меня это сложно!
Код
While Sheets(baza).Cells(n, 1) <> ""
    If Month(Sheets(baza).Cells(n, 2)) = mes Then
        For X = 1 To 200
            If Sheets(otchet).Cells(9, X) <> "" Or Sheets(otchet).Cells(8, X) <> "" Then
                num = Sheets(otchet).Cells(9, X)
                Sheets(otchet).Cells(m, X) = Sheets(baza).Cells(n, num)
                Sheets(otchet).Cells(m, 3) = Sheets(baza).Cells(n, 6) & " " & Sheets(baza).Cells(n, 7)
                Sheets(otchet).Cells(m, 7) = "c " & Sheets(baza).Cells(n, 4) & " по " & Sheets(baza).Cells(n, 2)
                Sheets(otchet).Cells(m, 8) = "Акт проверки " & Sheets(baza).Cells(n, 34) & "; Предписание " & Sheets(baza).Cells(n, 33) & " (ПБ-" & Sheets(baza).Cells(n, 67) & ", БЭ-" & Sheets(baza).Cells(n, 68) & ", ЭЭ-" & Sheets(baza).Cells(n, 69) & ", ГТС-" & Sheets(baza).Cells(n, 70) & ")"
                Sheets(otchet).Cells(m, 9) = "Протокол " & Sheets(baza).Cells(n, 35) & " (ст." & Sheets(baza).Cells(n, 46) & ", " & Sheets(baza).Cells(n, 45) & ")" & "; Постановление " & Sheets(baza).Cells(n, 36) & " (сумма " & Sheets(baza).Cells(n, 47) & "); " & "Акт осмотра " & Sheets(baza).Cells(n, 38) & ", Разрешение " & Sheets(baza).Cells(n, 39)
                
            End If
        Next
    m = m + 1
    End If
 
Неужели никто не знает как это сделать?
Ребята, помогите, очень нужно, готов в приделах разумного заплатить за оказанную помощь!
 
Цитата
если в ячейке - Cells (m, 3) появляется слово “Допуск”
Используйте
Код
If InStr(1,Sheets(otchet).Cells(m, 3), "Допуск”)<>0 Then
Изменено: Kuzmich - 13.11.2016 12:14:30
 
Kuzmich, между какими строками этот код лучше вставить?
 
Kuzmich, при добавлении кода появляется ошибка, типа:
Compile
error:
Expected:
list
separator
Изменено: Алексей Галимов - 13.11.2016 12:43:18
 
Цитата
между какими строками этот код лучше вставить?
Код
  If InStr(1, Sheets(otchet).Cells(m, 3), "Допуск") <> 0 Then
   'есть слово Допуск
  Else
   'нет слова Допуск
   Sheets(otchet).Cells(m, 9) = "Протокол " & Sheets(baza).Cells(n, 35) & " (ст." & Sheets(baza).Cells(n, 46) & ", " & Sheets(baza).Cells(n, 45) & ")" & "; Постановление " & Sheets(baza).Cells(n, 36) & " (сумма " & Sheets(baza).Cells(n, 47) & "); " & "Акт осмотра " & Sheets(baza).Cells(n, 38) & ", Разрешение " & Sheets(baza).Cells(n, 39)
  End If

 
Алексей Галимов, почитали бы Правила, выложили бы пример с описанием - еще бы ночью была помощь. А так гадать - видим что выходит.
Я сам - дурнее всякого примера! ...
 
Kuzmich, этот код работает, но не совсем правильно. Должны пропадать  данные только для протокола и постановления, но оставаться данные из Cells(n, 38) и и Cells(n, 39), то есть данные для “Акт осмотра” и “Разрешение”. Файл сюда выложить не могу, так как у него слишком большой объем. Если нужно отправлю его по e-mail. Напишите мне на мой адрес otsng@mail.ru сколько я буду должен. Параллельно, если необходимо вышлю на ваш адрес файл. Заранее спасибо!  
 
kuklp, если бы я не читал Правила, то не задал бы вопрос. Я с удовольствием выложил бы файл, если модератор не установил ограничения по объему.
 
Цитата
но оставаться данные из Cells(n, 38) и и Cells(n, 39), то есть данные для “Акт осмотра” и “Разрешение”.
Так попробуйте
Код
 If InStr(1, Sheets(otchet).Cells(m, 3), "Допуск") <> 0 Then
   'есть слово Допуск
   Sheets(otchet).Cells(m, 9) = "Акт осмотра " & Sheets(baza).Cells(n, 38) & ", Разрешение " & Sheets(baza).Cells(n, 39)
  Else
   'нет слова Допуск
   Sheets(otchet).Cells(m, 9) = "Протокол " & Sheets(baza).Cells(n, 35) & " (ст." & Sheets(baza).Cells(n, 46) & ", " & Sheets(baza).Cells(n, 45) & ")" & "; Постановление " & Sheets(baza).Cells(n, 36) & " (сумма " & Sheets(baza).Cells(n, 47) & "); " & "Акт осмотра " & Sheets(baza).Cells(n, 38) & ", Разрешение " & Sheets(baza).Cells(n, 39)
  End If
 
Цитата
Алексей Галимов написал:
Я с удовольствием выложил бы файл, если модератор не установил ограничения по объему.
Ограничение установили не модераторы, а администратор (владелец сайта).
И никто не мешает Вам создать небольшой файл-аналог.
 
Kuzmich, Вы лучший, все работает, я ваш должник. Напишите сколько и куда перевести
Страницы: 1
Наверх