mrusklon
@mrusklon
Не получается? Яростно гугли!

Есть способ написать скрипт для екселя в виде отображения на другом листе?

сложная задача не знаю возможно ли такое сделать вообще, есть табличка с данными о заработной плате, нужно на другом листе сформировать "корешки"
сама таблица выглядит вот так
43yLyPg.png

а сформировать надо вот так

AsX1xuR.png

по сути просто отображение данных в удобном виде, без формул но... если в статусе у человека "нет" (не работает) то эту строку не брать в расчет

понимаю это больше задание чем вопрос, но может уже есть готовое решение? Если нет то может есть пример по которому можно сделать? Ну или кто может уже реально за монеты сделает?
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
idShura
@idShura
Private Sub CommandButton1_Click()

Application.ScreenUpdating = False

Sheets("Корешки").Range("A1:AC200").ClearContents

i = 2
j = 0
Offset1 = 0 'Смещение по вертикали
Offset2 = 0 'Смещение по горизонтали

Do While Sheets("Таблица").Cells(i, 1) <> ""
    
    If Sheets("Таблица").Cells(i, 3) = "да" Then

        Sheets("Корешки").Cells(1 + Offset1, 1 + Offset2).Value = Sheets("Таблица").Cells(i, 4)
        
        Sheets("Корешки").Cells(2 + Offset1, 1 + Offset2).Value = "Зарплата"
        Sheets("Корешки").Cells(2 + Offset1, 2 + Offset2).Value = Sheets("Таблица").Cells(i, 1)
        
        Sheets("Корешки").Cells(3 + Offset1, 1 + Offset2).Value = "пеработк"
        Sheets("Корешки").Cells(3 + Offset1, 2 + Offset2).Value = Sheets("Таблица").Cells(i, 8)
        
        Sheets("Корешки").Cells(4 + Offset1, 1 + Offset2).Value = "премия"
        Sheets("Корешки").Cells(4 + Offset1, 2 + Offset2).Value = Sheets("Таблица").Cells(i, 10)
        
        Sheets("Корешки").Cells(5 + Offset1, 1 + Offset2).Value = "Карточка"
        Sheets("Корешки").Cells(5 + Offset1, 2 + Offset2).Value = Sheets("Таблица").Cells(i, 9)
        
        Sheets("Корешки").Cells(6 + Offset1, 1 + Offset2).Value = "аванс нал"
        Sheets("Корешки").Cells(6 + Offset1, 2 + Offset2).Value = Sheets("Таблица").Cells(i, 14)
        
        Sheets("Корешки").Cells(7 + Offset1, 1 + Offset2).Value = "Итого:"
        Sheets("Корешки").Cells(7 + Offset1, 2 + Offset2).Value = Sheets("Таблица").Cells(i, 11)
        
        Sheets("Корешки").Cells(8 + Offset1, 2 + Offset2).Value = Sheets("Таблица").Cells(i, 12)
        
        Sheets("Корешки").Cells(9 + Offset1, 2 + Offset2).Value = Sheets("Таблица").Cells(i, 11) + Sheets("Таблица").Cells(i, 12)

        Offset2 = Offset2 + 3
        
        If j = 9 Then
            j = 0
            Offset1 = Offset1 + 10
            Offset2 = 0
    
        Else
            j = j + 1
        End If
        
    End If
    
    i = i + 1
    
Loop

Application.ScreenUpdating = True

End Sub
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Наверное да - Ваш вопрос является больше заданием, с которым могут помочь на любом фрилансерском сайте.
Ответ написан
ForestAndGarden
@ForestAndGarden
Совершенствовать среду обитания
Вам подойдут решения типа «печать этикеток и ценников из Excel».
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы