https://sites.google.com/site/jrlhost/links/excelcdll
http://www.cprogressivo.net/p/o-basico- ... gem-c.html
Deveria ser muito simples reescrever minhas macros
isso por que apenas uso Arrays, variaveis, laços for next, e comparadores iF
mas enquanto o vb ou basic te dá um visão clara "contextual" do que vai ser feito
O C inicia o corpo das instruções com { e termina com }
Código: Selecionar todos
If Direção1esq_2dir = 1 Then
For L = lia To lfa
If ArrayNome(L, cw) = v Then
For QL = 1 To nc
i = ArrayNome(L, nci)
For cl = 1 To Pfa - 1
ArrayNome(L, cl) = ArrayNome(L, cl + 1)
Next
ArrayNome(L, Pfa) = i
Next
End If
Next
End If
Código: Selecionar todos
if (Direção1esq_2dir == 1) //esquerda
{
for (void *L = lia; L <= lfa; L++) //varre linha
{
if (ArrayNome[L][cw] == v)
{
for (void *QL = 1; QL <= nc; QL++)
{
i = ArrayNome[L][nci];
for (void *cl = 1; cl < 2000; cl += 2)
{
ArrayNome[L][cl] = ArrayNome[L][cl + 1];
}
ArrayNome[L][Pfa] = i;
}
}
}
}
não existe o Then no if para iniciar a instrução se o teste for verdadeiro no lugar entra um {, e no lugar do End if entra }
no laço for que é quase um do loop
For cl = 1 To 2000 - 1 step2
for (void *cl = 1; cl < 2000; cl += 2)
void é para iniciar a variavel cl que vai contar enquanto cl for menor que 2000 com incremento cl+=2
nos arrays a dificuldade seria definir as dimensões
a maior dificuldade para mim vai ser os {}
se com next, end if e afins eu já tenho que colocar algo discriminando de qual pertence como essa
Código: Selecionar todos
Sub Macro1()
With Sheets("Sheet3")
For rw = .Cells(Rows.Count, "E").End(xlUp).Row To 6 Step -1 'a
If .Cells(rw, "E").Value2 = "Contractor" Then '-1
v = .Cells(rw, "O").Value2
For c = Cells(3, "E").Column To Cells(3, "m").Column 'b
If v = Sheets("Sheet4").Cells(3, c).Value2 Then '1
vq = .Cells(rw, "Q").Value2
For r2 = 4 To 19 'c
If vq = Sheets("Sheet4").Cells(r2, "C").Value2 Then '2
vq2 = UCase(Sheets("Sheet4").Cells(r2, "d").Value2)
If vq2 = "AUX" Or vq2 = "CONTRACTOR" Then '3
c2 = Cells(1, "e").Column
.Rows(rw + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Range("a" & rw + 1, "q" & rw + 1).Value2 = .Range("a" & rw, "q" & rw).Value2
If c < 12 Then .Cells(rw + 1, "e").Value2 = "Aux"
For r4 = r2 To r2 + 3 'd
c2 = c2 + 1
If c2 = 7 Or c2 = 10 Then c2 = c2 + 1
.Cells(rw + 1, c2).Value2 = Sheets("Sheet4").Cells(r4, c).Value2
Next 'd
GoTo proximo:
End If '3
End If '2
Next 'c
End If '1
Next 'b
End If '-1
proximo:
Next 'a
End With
End Sub