Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#67500
Boa tarde Colegas!

Não entendi o que estou fazendo de errado... Criei a variavel "LancData" como Range pra não ter que ficar descrevendo no codigo inteiro o seu caminho, que é "Sheets(2).Range("A" & LinPag)". No entanto, quando chega na linha de depuração ao invés da celula correspondente ser preenchida com a variável "DebData" (que é uma data), a variavel "LancData" fica com o valor da data. Ou seja, ao invés da celula representada pela variavel "LancData" receber a data que está contida na variável "DebData", a váriável que recebe a informação, e a Célula continua em branco.

O que estou fazendo de errado? Já declarei, setei...
Código: Selecionar todos
Sub PAGAICMS()

    LinDeb = 440
    LinPag = 2
    
    Dim LancData, LancDebito, LancCredito, LancValor, LancH, another As Range

    Set LancData = Sheets(2).Range("A" & LinPag) 'Não funcionou Não funcionou Não funcionou Não funcionou 
    Set DebData = Sheets(1).Range("I" & LinDeb)
    Set LancDebito = Sheets(2).Range("B" & LinPag) 
    Set LancCredito = Sheets(2).Range("C" & LinPag)
    Set LancValor = Sheets(2).Range("D" & LinPag) 
    Set LancH = Sheets(2).Range("F" & LinPag) 
    LancHist = "Pagamento do ICMS sobre compras Interestaduais a recolher, conforme DARE de Nr. Lançamento " & Sheets(1).Range("C" & LinDeb) & ", Complemento " & Sheets(1).Range("F" & LinDeb) & " e código de receita " & Sheets(1).Range("G" & LinDeb) & "."
    LancHistJuros = "Pagamento de JUROS do ICMS sobre compras Interestaduais a recolher, conforme DARE de Nr. Lançamento " & Sheets(1).Range("C" & LinDeb) & ", Complemento " & Sheets(1).Range("F" & LinDeb) & " e código de receita " & Sheets(1).Range("G" & LinDeb) & "."


    Do Until Sheets(1).Range("B" & LinDeb) = ""
        VlrDebito = Sheets(1).Range("J" & LinDeb)
        VlrJuro = Sheets(1).Range("L" & LinDeb) - VlrDebito
        If VlrJuro = 0 Or VlrJuro = "" Or VlrJuro = "0" Then
            LancData = DebData
            LancDebito = "128"
            LancCredito = "5"
            LancValor = VlrDebito
            LancH = LancHist
        Else
            LancData = DebData
            LancDebito = "128"
            LancCredito = "5"
            LancValor = VlrDebito
            LancH = LancHist
            
            LinPag = LinPag + 1
            
            Sheets(2).Select
            
            LancData = DebData
            LancDebito = "342"
            LancCredito = "5"
            LancValor = VlrDebito
            LancH = LancHistJuros
        End If
        LinPag = LinPag + 1
        LinDeb = LinDeb + 1
    Loop
            
End Sub
#67504
Olá, @BrunoLuiel .

Veja se ajuda.

O código abaixo replica em Sheets(2).Range("A2") o conteúdo de Sheets(1).Range("A1") utilizando uma variável.
Código: Selecionar todos
Sub Teste()
 Dim LancData As Range
  Set LancData = Sheets(2).Range("A2")
  LancData.Value = Sheets(1).Range("A1").Value
End Sub
#
dica - nesta linha do seu código ~~~> Dim LancData, LancDebito, LancCredito, LancValor, LancH, another As Range
somente a variável "another" será do tipo Range, as demais serão consideradas do tipo Variant pois seus tipos não foram declarados.
Para declarar todas como Range:
Dim LancData As Range, LancDebito As Range, LancCredito As Range, ... ;)
BrunoLuiel agradeceu por isso
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord