Target.Value et texte

citizenbaban

XLDnaute Junior
Bonjour à tous,

Je suis sur une macro un peu toute bête avec Excel 2000 mais je bloque sur un détail.

Je souhaite faire apparaitre une MsgBox quand la valeur d'une cellule des colonnes K, O ou P est supérieure à 0.

Voici le code que j'ai écrit :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
If Target.Column = 11 And Target.Value > 0 Then Macro_USF
If Target.Column = 15 And Target.Value > 0 Then Macro_USF
If Target.Column = 18 And Target.Value > 0 Then Macro_USF
 
End Sub


Jusque là, pas de soucis. Cette Msgbox est faite pour faire penser à mes chers collègues de remplir toutes les infos demandées, pas seulement des chiffres mais également du texte.
Par conséquent, je souhaiterai que la MsgBox ne s'affiche que pour ceux qui mettent une valeur différente de 0 mais qui oublie de préciser le texte avec (exemple : "2" , au lieu de "2 R3 anaer", "3 R1 aer", etc.)
Car avec ce petit bout de code, la Msgbox s'affiche même quand du texte est présent.

Quel est l'alternative à Target.Value que je pourrais utiliser?

Je vous remercie.

Cdt,

Citizenbaban



P.S : si mon explication n'est pas très claire, j'essaierai de faire parvenir un modèle du tableau une fois les infos confidentielles retirées ^^
 

laetitia90

XLDnaute Barbatruc
Re : Target.Value et texte

bonjour citizenbaban,mutzik:):)
comme je comprends??

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Application.Intersect(Target, Range("K:K, O:O, P:P")) Is Nothing Then
 If IsNumeric(Left(Target, 1)) And Not IsNumeric(Left(Target, 2)) _
 And Left(Target, 1) <> 0 And Len(Target) > 1 Then _
 MsgBox "ok "
 End If
End Sub
 

job75

XLDnaute Barbatruc
Re : Target.Value et texte

Bonjour citizenbaban, salut mutzik, Laetitia :)

Votre macro beugue si l'on efface une plage de plusieurs cellules.

Voyez ceci :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [K:K,O:O,R:R]) Is Nothing And Target.Count = 1 Then
  If IsNumeric(Target.Text) Then Macro_USF
End If
End Sub

Sub Macro_USF()
MsgBox "Texte incomplet !", 48
End Sub
A+
 

citizenbaban

XLDnaute Junior
Re : Target.Value et texte

Bonjour à tous,

J'espère que le week-end a été bon.
Merci pour vos réponses. Celle de Job75 colle bien à ce que je cherche à faire mais j'ai juste un petit problème avec (outre le fait que je n'y comprenne rien lol) car la Macro_USF se lance également quand la valeur de la cellule est de 0, or je souhaiterai n'avoir le USF que quand la valeur est différente de zéro et qu'il n'y a que des chiffres.

Merci ^^

Cdt,

Citizen
 

job75

XLDnaute Barbatruc
Re : Target.Value et texte

Bonjour citizenbaban, le forum,

(outre le fait que je n'y comprenne rien lol)

Dommage car vous auriez pu très facilement trouver ça :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [K:K,O:O,R:R]) Is Nothing And Target.Count = 1 Then
  If IsNumeric(Target) And Target > 0 Then Macro_USF
End If
End Sub
Edit : notez que la macro beuguera si l'on entre une valeur d'erreur, alors prenez dans ce cas :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [K:K,O:O,R:R]) Is Nothing And Target.Count = 1 Then
  If IsNumeric(Target) Then If Target > 0 Then Macro_USF
End If
End Sub
A+
 
Dernière édition:

citizenbaban

XLDnaute Junior
Re : Target.Value et texte

Merci Job75

En effet, j'aurai pu trouver mais je pense que mon début de grippe m'a arrêté après avoir tenté le >0 sans le "And Target"

Ca marche au poil. J'essaierai de comprendre la macro quand j'aurai les idées un peu plus claires.

Merci bcp.

Bonne fin de journée à tous

Sujet résolu
 

Discussions similaires