Ir para conteúdo
Fórum Script Brasil

Basole

Membros
  • Total de itens

    89
  • Registro em

  • Última visita

1 Seguidor

Sobre Basole

Perfil

  • Gender
    Male
  • Location
    Sampa

Últimos Visitantes

1.400 visualizações

Basole's Achievements

0

Reputação

  1. Substitua a linha que esta apresentando erro por esta: Plan6.Range(Plan6.Cells(rng.Row, 1), Plan6.Cells(rng.Row, 42)).Delete Shift:=xlUp
  2. Eliminei o for e inclui o find para localizar o item a ser excluido, pois com muitos dados o com o for, a macro pode ficar lenta. Segue sugestão: Private Sub BtExcluirAud_Click() Dim rng As Range Dim confirmar As String On Erro GoTo Erro Set rng = Plan6.Columns("R").Find(Txt_Processo_Aud.Value, LookIn:=xlValues, Lookat:=xlWhole) If Not rng Is Nothing Then confirmar = MsgBox("Tem certeza que deseja EXCLUIR o Cliente: " & Me.Txt_Cliente_Aud & "?", vbYesNo, "Excluir!") If confirmar = vbNo Then MsgBox "Exclusão do Cliente: " & Me.Txt_Cliente_Aud & " CANCELADO!", vbInformation, "Exclusao cancelada!" Exit Sub Else Plan6.Range(Cells(rng.Row, 1), Cells(rng.Row, 42)).Delete Shift:=xlUp End If ActiveWorkbook.Save MsgBox "Cadastro do cliente " & Me.Txt_Cliente_Aud & " foi EXCLUIDO com sucesso!", vbInformation, "Excluído!" Else MsgBox "Processo " & Me.Txt_Cliente_Aud & "", vbCritical, "Aviso " End If Unload Audiência Exit Sub Erro: MsgBox "Erro!", vbCritical, "ERRO" End Sub
  3. Basole

    VBA no Coreldraw

    Não é possivel "setar" uma string. Remova o "Set" Não tenho o corel para testar, mas tente referenciar como abaixo: Document.FilePath Document.FileName
  4. Tem que colar o código, no módulo da respectiva planilha (Aba). Se colou em um um módulo padrão, não vai funcionar.
  5. Voce pode tentar ser mais especifico relacionando um a um os numeros romanos, mantendo espaços entre eles: Exemplo de 1 a 20: RomanNumerals = " I II III IV V VI VII VIII IX X XI XII XIII XIV XV XVI XVII XVIII XIX XX" Mesmo assim o resultado não será tão eficiente, por exemplo neste trecho (Vide Lei nº 13.874, de 2019) As letras "Vi" => " VI " ficarão em negrito.
  6. Complementando... Todo esse trecho do código, abaixo, é desnecessario, caso os componentes (TextBox, OptionButton, etc), tenham o mesmos nomes: Dim TXT_auditorname As MSForms.TextBox Set TXT_auditorname = Me.TXT_auditorname Dim OB_off As MSForms.OptionButton Set OB_off = Me.OB_off Dim OB_man As MSForms.OptionButton Set OB_man = Me.OB_man
  7. Ouve altrações no código em relação ao topíco anterior Atual: If OB_off.Enabled And OB_man.Enabled Then With OB_off MsgBox "Selecione em qual área será cadastrado o auditor" End With End If Anterior: If OB_off = False And OB_man = False Then MsgBox "Selecione em qual área será cadastrado o auditor" Exit Sub ElseIf TXT_auditorname = "" Then MsgBox "Preencha o nome do auditor" Exit Sub End If Para verificar se um OptionButton foi clicado, mantenha esse trecho do codigo, anterior. O erro gerado, é porque dclarou as variaveis: Dim OB_off As MSForms.OptionButton Dim OB_man As MSForms.OptionButton E não "setou" * Para anexar algum a arquivo, faça upload em algum site na nuvem, como por exemplo google drive, e poste o link aqui.
  8. Quais alterações você fez, em relação ao tópico anterior? O ideal é postar seu arquivo, ou um exemplo próximo.
  9. @Yago bezerraboa tarde Qual o erro apresentado? E em qual linha apresenta o erro?
  10. @Alex Lourenção Onofre Veja se é isso ... A macro atualiza a lista de validação, e associa a celula A2 a B5. Private Sub Worksheet_Change(ByVal Target As Range) If Not Excel.Application.Intersect(Target, Range("A2:A" & _ ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row)) Is Nothing Then Application.EnableEvents = False [B5].Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=$A$2:$A" & _ ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row: [B5] = [A2] End With Application.EnableEvents = True End If End Sub
  11. Basole

    Dúvida VBA

    @Lucas Bredersegue com as alteracões solicitadas. Sub ExplodirLinhaParaOutrasSheets() Dim irt As Long, i As Long, wsb As Worksheet Dim strTab As String, sh As Worksheet, ShNoEx As Boolean Dim irs As Long: irs = 2 Set wsb = ActiveSheet ' define a aba BASE Do Until VBA.IsEmpty(wsb.Cells(irs, 1)) strTab = "DADOS REPLICADOS" ' Altere AQUI nome da nova ABA, desejado ShNoEx = False ' verif. se já existe a aba strTab For Each sh In ThisWorkbook.Worksheets If VBA.UCase(sh.Name) = VBA.UCase(strTab) Then ShNoEx = True End If Next sh With ThisWorkbook If Not ShNoEx Then 'Cria Nova Aba, Caso não Exista .Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = strTab wsb.Rows(1).Copy Sheets(strTab).Rows(1) End If With .Sheets(strTab) .Activate For i = 1 To wsb.Cells(irs, "B").Value2 irt = .Cells(Rows.Count, 1).End(xlUp).Offset(1).Row .Cells(irt, "A") = wsb.Cells(irs, "A").Value2 .Cells(irt, "B").NumberFormat = "@" ' Formata a linha coluna Quant. como texto .Cells(irt, "B") = i & "/" & wsb.Cells(irs, "B") .Cells(irt, "C") = wsb.Cells(irs, "C").Value2 Next i End With End With irs = irs + 1 Loop Sheets(strTab).Columns.AutoFit ' ajusta as colunas da nova aba End Sub
  12. Basole

    Dúvida VBA

    @Lucas Brederveja se é isso.. Vendo a imagem que disponbilizou, considerei que os dados estão dispostos nas Colunas A,B, C e a partir da linha 2 A macro define o nome das novas abas como Linha 1, Linha 2, Linha 3, etc... *Poderia nomea-las de acordo com a coluna "A" do seu exemplo, mas como tens caracteres especiais e pode haver espaços, enfim os nomes da coluna "A" não seguem um padrão, e pode gerar erros, na hora de renomear interrompendo a execução do codigo. Em seguida replica os dados de acordo com a sua 2a imagem, alterando a coluna "B" como por exemplo 1/20, 2/20, assim sucessivamente. * A coluna "B" é formatada como "texto", caso contrario o excel "entende" como data Na coluna "D" da aba Base, a macro cria um hyperlink para ir direto a respectiva aba. Sub ExplodirLinhaParaOutrasSheets() Dim irt As Long, i As Long, wsb As Worksheet Dim strTab As String, sh As Worksheet, ShNoEx As Boolean Dim irs As Long: irs = 2 Set wsb = ActiveSheet ' define a aba BASE Do Until VBA.IsEmpty(wsb.Cells(irs, 1)) strTab = "LINHA " & irs ' define nome da ABA ShNoEx = False ' verif. se já existe a aba com o nome da coluna "A" For Each sh In ThisWorkbook.Worksheets If VBA.UCase(sh.Name) = VBA.UCase(strTab) Then ShNoEx = True End If Next sh If Not ShNoEx Then With ThisWorkbook 'Cria Nova Aba, Caso não Exista .Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = strTab wsb.Rows(1).Copy Sheets(strTab).Rows(1) With .Sheets(strTab) For i = 1 To wsb.Cells(irs, "B").Value2 irt = .Cells(Rows.Count, 1).End(xlUp).Offset(1).Row .Cells(irt, "A") = wsb.Cells(irs, "A").Value2 .Cells(irt, "B").NumberFormat = "@" ' Formata a linha coluna Quant. como texto .Cells(irt, "B") = i & "/" & wsb.Cells(irs, "B") .Cells(irt, "C") = wsb.Cells(irs, "C").Value2 Next i .Columns.AutoFit ' ajusta as colunas da nova aba End With End With End If With wsb .Activate .Cells(irs, "D").Activate ' *** Na COLUNA "D" => cria um hiperlink, para ir direto p/ aba ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", _ SubAddress:="'" & Sheets(strTab).Name & "'!A1", TextToDisplay:="CLICK AQUI" End With irs = irs + 1 Loop End Sub
  13. Basole

    Dúvida VBA

    @Lucas Brederpelo que entendi, voce quer que cada linha, fosse distribuida em uma nova planilha (aba) e preenchesse, repetindo, as linhas de acordo com a coluna quantidade. é isso?
×
×
  • Criar Novo...