Boa tarde,
Tenho a planilha anexa em que importo os horários de trabalho que os empregados registram no relógio ponto. Preciso de uma macro que preencha os horários de trabalho para cada empregado. No exemplo que anexei, deixei apenas duas abas para dois empregados, mas preciso automatizar o processo para todos os nomes que constam no arquivo texto.
Em outro forum, recebi a sugestão de macro que está abaixo. Quando abri o arquivo que me enviaram como modelo e vi a planilha do edilson preenchida com os horários, achei que estada tudo resolvido. O problema é que não consigo adaptar a macro para preencher os horários dos outros empregados. Dá um erro na linha "Set d = New Dictionary" . Acusa algo como "variável não definida".
Alguém saberia me ajudar a resolver o problema?
Public Sub ArquivoTexto()
Dim a, b(), i As Long, j As Long, c As Long
Dim Nom As String
Nom = Plan2.Name 'edilson
a = Plan4.Range("A1").CurrentRegion.Offset(1, 0) 'arquivo texto
Set d = New Dictionary
For i = 1 To UBound(a, 1)
If a(i, 4) = Nom Then c = c + 1
Next
ReDim b(1 To c / 4, 1 To 14)
For i = 1 To UBound(a, 1) Step 4
If a(i, 4) = Nom Then
j = j + 1
b(j, 1) = a(i, 7)
b(j, 2) = Format(a(i, 7), "dddd")
b(j, 3) = Format(a(i, 8), "hh:mm")
b(j, 4) = Format(a(i + 1, 8), "hh:mm")
b(j, 5) = Format(a(i + 2, 8), "hh:mm")
b(j, 6) = Format(a(i + 3, 8), "hh:mm")
Else
Exit For
End If
Next
'Next
For j = 9 To 38 'edilson
For i = 1 To UBound(b, 1)
If Plan2.Range("B" & j) = b(i, 1) Then
Plan2.Range("D" & j) = b(i, 3)
Plan2.Range("E" & j) = b(i, 4)
Plan2.Range("F" & j) = b(i, 5)
Plan2.Range("G" & j) = b(i, 6)
End If
Next
Next
End Sub
Postado : 03/12/2017 11:28 am