XL 2019 NB SI ENS VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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)
 
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,
 
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"
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
1 K
Retour