XL 2019 NB SI ENS VBA

E5kobar

XLDnaute Nouveau
Bonjour le fil,

L'onglet dans lequel je travaille s'appelle "Master1"

J'ai dans ma plage de E14 à E des numéros de factures.

En E7 j'indique un nouveau numéro de facture.

SI valeur de E7 est présente de E14 à E alors message box "Facture en cours" + Exit Sub
Si pas présent Exit Sub

Si vous avez la solution je suis preneur :)

Un gros merci d'avance,

Pierre
 

Staple1600

XLDnaute Barbatruc
Re

Donc pour répondre à la question présente dans le message#1 (et non le titre) ;)
VB:
Private Sub Worksheet_Change(ByVal T As Range)
Dim rng
Set rng = Range(Cells(14, "E"), Cells(Rows.Count, "E").End(3))
If T.Address = "$E$7" And Len(T) Then
If Not IsError(Application.Match(T, rng, 0)) Then
MsgBox "Veuillez saisir un autre numéro, svp", vbCritical, "Numéro de facture déjà existant!"
T = ""
End If
End If
End Sub
NB: code VBA à mettre dans le Code de la feuille concernée (donc pas dans un Module standard)
 

E5kobar

XLDnaute Nouveau
Rebonjour,

J'ai une problématique avec ce code. En effet, vu qu'il se situe dans le code de la feuille, le code est tout le temps actif.

Conséquence => ça me fait planter une autre macro.

J'aimerais pouvoir lancer ce code à la demande en lançant par exemple un "Call" de celui ci, dans un autre code.

Est ce possible?

Merci d'avance pour votre aide,
 

Staple1600

XLDnaute Barbatruc
Re

Non ma phrase (si je l'avais fini) eut été:
"Sans fichier exemple, sans voir le code de l'autre macro, pas évident. Il serait peut-être temps pour le demandeur de joindre un fichier Excel exemple, afin que nous les répondeurs puissions y voir plus clair"
 

Staple1600

XLDnaute Barbatruc
Re

C'est possible et relativement simple
Il suffit de mettre les mains dans le cambouis (ce qui ne semble pas être ton fort ;))
VB:
Sub macroBouton()
Dim rng, x As Range
With ActiveSheet
Set rng = .Range(.Cells(12, "E"), .Cells(Rows.Count, "E").End(3))
End With
Set x = Range("E7")
If Len(x) Then
If Not IsError(Application.Match(x, rng, 0)) Then
MsgBox "Facture déjà dans le suivi factures", vbCritical, "Erreur"
x = ""
End If
End If
End Sub
Code à affecter à ton bouton.
 

Discussions similaires

Réponses
8
Affichages
617

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo