Usuário com melhor resposta
Limitar caracteres e tipo de caracteres

Pergunta
-
Pessoal bom dia,
Preciso de uma ajuda.
Eu tenho uma planilha desta forma:
E quero limitar quantidade de caracteres e o tipo
Na coluna segment quero limitar em 6 caracteres, se for menos que 6 ou mais que 6. Retorna a msg "Limite de caracteres não atingido"
Na coluna date quero limitar a tipo date em 8 caracteres,se for menos que 8 ou mais que 8. Retorna a msg "Limite de caracteres não atingido"
E na coluna number quero limitar a tipo numero em 4 caracteres,se for menos que 4 ou mais que 4. Retorna a msg "Limite de caracteres não atingido"
Eu comecei a escrever algo, mas não estou enxergando aonde estou errando. E sinceramente há muito tempo não escrevo codigo VBA
Não estou lembrada como selecionar a coluna e colocar a macro.
'Se não houver 4 números' If IntTamanho <> 4 Then MsgBox "Limite de Caracteres não Atingido ", vbCritical Application.EnableEvents = False Rng.ClearContents Application.EnableEvents = True
Se alguem puder ajudar, eu já agradeço
Obrigada
- Editado Thaís Sakamoto quinta-feira, 9 de novembro de 2017 13:34
Respostas
-
Sub LimitarCaractere() Dim TRACKER As Workbook '<-- Tracker Dim MARKET As Worksheet '<-- Aba Dim i As Long '<-- Linha selecionada Dim SEGM As String '<-- Segment Dim FLT As Integer '<-- Flight Dim Ddate As Date '<-- Date Set TRACKER = ActiveWorkbook Set MARKET = TRACKER.ActiveSheet i = ActiveCell.Row 'Limita o número de cacteres na célula If LEN (RANGE("B" & i)) > 6 Then ActiveCell.VALUE = Left(ActiveCell.VALUE, 6) MsgBox "Limite de caracteres Ultrapassado na Célula: " _ & ActiveCell End If End Sub
Anderson Diniz diniabr2011@gmail.com
- Sugerido como Resposta AndersonFDiniz2 quinta-feira, 9 de novembro de 2017 17:10
- Marcado como Resposta Thaís Sakamoto quinta-feira, 9 de novembro de 2017 17:40
Todas as Respostas
-
-
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim linha As Long 'se selecionar uma célula da coluna3 If Target.Column = 3 Then 'mantém a mesma linha da célula selecionada linha = Target.Row 'se não for a linha 1 If linha <> 1 Then 'se a célula não estiver em branco If ThisWorkbook.Sheets("Planilha1").Cells(linha, 2).Value <> "" Then 'se a célula da coluna 2 tiver menos de 6 caracteres If Len(ThisWorkbook.Sheets("Planilha1").Cells(linha, 2).Value) <> 6 Then 'limpa o conteúdo da célula da coluna 2 ThisWorkbook.Sheets("Planilha1").Cells(linha, 2).Value = "" 'exibe a mensagem MsgBox "Não atingiu número de caracteres" End If End If End If End If 'se selecionar uma célula da coluna2 If Target.Column = 2 Then 'considera a célula da mesma coluna, uma linha acima linha = Target.Row - 1 'se não for a linha 1 If linha <> 1 Then 'se a célula não estiver em branco If ThisWorkbook.Sheets("Planilha1").Cells(linha, 2).Value <> "" Then 'se a célula da linha acima tiver menos de 6 caracteres If Len(ThisWorkbook.Sheets("Planilha1").Cells(linha, 2).Value) <> 6 Then 'limpa o conteúdo da célula da linha acima ThisWorkbook.Sheets("Planilha1").Cells(linha, 2).Value = "" ' exibe a mensagem MsgBox "Não atingiu número de caracteres" End If End If End If End If End Sub
Anderson Diniz diniabr2011@gmail.com
-
Adaptei o código desta forma:
Se alguém puder me ajudar. A macro roda mas não limita os caracteres
Sub LimitarCaractere() Dim TRACKER As Workbook '<-- Tracker Dim MARKET As Worksheet '<-- Aba Dim i As Long '<-- Linha selecionada Dim SEGM As String '<-- Segment Dim FLT As Integer '<-- Flight Dim Ddate As Date '<-- Date Set TRACKER = ActiveWorkbook Set MARKET = TRACKER.ActiveSheet i = ActiveCell.Row 'Limita o número de cacteres na célula If i > 6 Then ActiveCell = Left(ActiveCell, 6) MsgBox "Limite de caracteres Ultrapassado na Célula: " _ & ActiveCell End If End Sub
Obrigada
-
Sub LimitarCaractere() Dim TRACKER As Workbook '<-- Tracker Dim MARKET As Worksheet '<-- Aba Dim i As Long '<-- Linha selecionada Dim SEGM As String '<-- Segment Dim FLT As Integer '<-- Flight Dim Ddate As Date '<-- Date Set TRACKER = ActiveWorkbook Set MARKET = TRACKER.ActiveSheet i = ActiveCell.Row 'Limita o número de cacteres na célula If LEN (RANGE("B" & i)) > 6 Then ActiveCell.VALUE = Left(ActiveCell.VALUE, 6) MsgBox "Limite de caracteres Ultrapassado na Célula: " _ & ActiveCell End If End Sub
Anderson Diniz diniabr2011@gmail.com
- Sugerido como Resposta AndersonFDiniz2 quinta-feira, 9 de novembro de 2017 17:10
- Marcado como Resposta Thaís Sakamoto quinta-feira, 9 de novembro de 2017 17:40
-
Sub LimitarCaractere() Dim TRACKER As Workbook '<-- Tracker Dim MARKET As Worksheet '<-- Aba Dim i As Long '<-- Linha selecionada Dim SEGM As String '<-- Segment Dim FLT As Integer '<-- Flight Dim Ddate As Date '<-- Date Set TRACKER = ActiveWorkbook Set MARKET = TRACKER.ActiveSheet i = ActiveCell.Row 'Limita o número de cacteres na célula If LEN (ACTIVECELL.VALUE) > 6 Then ActiveCell.VALUE = Left(ActiveCell.VALUE, 6) MsgBox "Limite de caracteres Ultrapassado na Célula: " _ & ActiveCell End If End Sub
Anderson Diniz diniabr2011@gmail.com