Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Si valeur commence par une lettre en contient un tiret ( VBA )

bibbip35

XLDnaute Occasionnel
Bonjour à tous

Dans le cadre d'un projet vba pour mon travail

Je cherche a creer une macro qui me une alerte si une plage de cellule defini commence
par une lettre et contient un tiret

Exemple :
Plage de cellule A1 = C123-1
Msgbox : Attention valeur A1 KO

Plage de cellule A1 = C123
Msgbox : Valeur A1 OK

Pouvez-vous m'aider SVP?

Merci pour votre aide

Bibbip35
 

Victor21

XLDnaute Barbatruc
Re : Si valeur commence par une lettre en contient un tiret ( VBA )

Bonjour bibbip35.

Cette fonction est native dans Excel : Données, Validation, autoriser : Personnalisé formule :
=NBCAR(SUBSTITUE(A1;"-";""))=NBCAR(A1)
message d'alerte : "Attention, valeur A1 KO".
Par contre, pas de message s'il n'y a pas d'erreur, mais vous pouvez prévoir, toujours avec cette fonction, un message d'alerte lorsque A1 est sélectionné : "Pas de tiret chez moi !".
 
Dernière édition:

bibbip35

XLDnaute Occasionnel
Re : Si valeur commence par une lettre en contient un tiret ( VBA )

Merci Victor21

Mais j'aurrais besoin de le faire sous VBA
Car c'est pour ensuite bloquer une macro qui réalise des opérations

Merci

Bibbip35
 

gilbert_RGI

XLDnaute Barbatruc
Re : Si valeur commence par une lettre en contient un tiret ( VBA )

Bonjour, bibbip35, Patrick

comme ceci peut-être

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
 rep = IIf(Not IsNumeric(Target), "Attention valeur " & Target.Address & " KO", "Valeur " & Target.Address & " OK")
MsgBox rep
End Sub
 

CISCO

XLDnaute Barbatruc
Re : Si valeur commence par une lettre en contient un tiret ( VBA )

Bonjour à tous

@ Gilbert_RGI : Où tiens tu compte de cette partie "et contient un tiret" de la demande de bibbip35 dans ta macro ?

Merci.

@ plus
 

gilbert_RGI

XLDnaute Barbatruc
Re : Si valeur commence par une lettre en contient un tiret ( VBA )

Désolé mal lu merci CISCO

alors voilà qui devrait faire la demande
 

Pièces jointes

  • msg_valeur_cellule.xlsm
    18.7 KB · Affichages: 30
Dernière édition:

david84

XLDnaute Barbatruc
Re : Si valeur commence par une lettre en contient un tiret ( VBA )

Bonjour,
via une fonction personnalisée utilisant une expression rationnelle :
Code:
Function toto(c As String) As Boolean
Dim oRegExp As Object
Set oRegExp = CreateObject("vbscript.regexp")
oRegExp.ignorecase = True
oRegExp.Pattern = "^[a-z]{1}.*-.*"
If oRegExp.test(c) Then toto = True
End Function

On peut aussi procéder autrement via les fonctions LEFT et INSTR de VBA.
A+
 

bibbip35

XLDnaute Occasionnel
Re : Si valeur commence par une lettre en contient un tiret ( VBA )

Merci à tous pour vos reponses

Mais j'ai pas bien compris pour utiliser ces codes dans mon cas
je vous rassurre c'est moi... avec l'age

En faite pour être plus clair dans mon besoin final que je souhaitais adapté...

Si A1 = C100
Call C100 ==> C'est une macro de mise en forme

Si A1 = C100-1
Call C100-1

Si A1=1C100
Call 1C100

Si A1 <> C100 & C100-1 & 1C100
EXIT SUB


DESOLER DE NE PAS AVOIR ETE PLUS CLAIR DES LE DEBUT
mais je pensais y arriver sans vous en demander trop...

cdlt

Bibbip35
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…