Página 1 de 1

VBA para permitir só Números

Enviado: 01 Nov 2022 às 15:02
por Jore
Boa tarde amigos,
Encontrei um código VBA para bloquear as célulase só aceitarem Números.
Porém encontrei uma falha e não estou sabendo como arrumar...
Eu selecionei uma área e também uma célula separada que só vão aceitar números.
E existe uma célula que poderia aceitar qualquer caracter mas esta dando erro dizendo que só aceita números.
Alguém pode dar uma ajuda para me dizer onde estou erando por favor!

Segue o link para crédito da macro
https://pt.extendoffice.com/documents/e ... mbers.html

Re: VBA para permitir só Números

Enviado: 01 Nov 2022 às 16:38
por Foxtri
Boa tarde.
´Macro corrigida.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20191120
Dim xStrV As String
Dim xRg As Range
Dim xIRg As Range
Dim xFNum As Integer
On Error Resume Next
If Not mBol Then
Application.ScreenUpdating = False
Set xRg = Range("E5,D10:J32")
If Not Intersect(xRg, Target) Is Nothing Then
xStrV = Target.Value
If Not IsNumeric(xStrV) Then
mBol = True
Target.Value = vbNullString
MsgBox "Apenas números são permitidos neste campo." & vbNewLine & " " & vbNewLine & " Tente novamente!", , "Atenção!"
End If
Application.ScreenUpdating = True
End If
Else
mBol = False
End If
End Sub

Até
Foxtri

Re: VBA para permitir só Números

Enviado: 02 Nov 2022 às 09:22
por Jore
@Foxtri, Bom dia!
Obrigado por me ajudar!
Mesmo assim não funcionou... Aí eu inverti a ordem de ("E5,D10:J32") para ("D10:J32, E5") e funcionou. Não entendi mas deu certo :lol: :lol:
Muito Obrigado mais uma vez!

Re: VBA para permitir só Números

Enviado: 02 Nov 2022 às 11:39
por osvaldomp
Salve, Jore.

Segue uma opção.
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Intersect(Range("E5,D10:J32"), Target) Is Nothing Or Target.Value = "" Then Exit Sub
 If Not IsNumeric(Target.Value) Then
  MsgBox "Apenas números são permitidos neste campo." & vbNewLine & " " & vbNewLine & _
  "Tente novamente!", , "Atenção!"
  Target.Value = ""
 End If
End Sub

Re: VBA para permitir só Números

Enviado: 02 Nov 2022 às 19:13
por Jore
@osvaldomp, Muito oBrigado mestre Osvaldomp!