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
 

E5kobar

XLDnaute Nouveau
Bonjour Staple1600,

Je pensais peut être maladroitement à utiliser l'équivalent de la formule NB SI ENS excel en VBA pour pouvoir résoudre ma problématique? Je me trompe?

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,
 

E5kobar

XLDnaute Nouveau
Ok :D, on oubli l'autre macro et le fichier source :)

Est ce possible de mettre l'équivalent de ce code dans un module? et de le déclencher via un bouton?

Pierre
 

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"
 

E5kobar

XLDnaute Nouveau
Re
Staple1600
On oublie le code de l'autre macro
le code que tu m'as proposé fonctionne parfaitement, cependant j'ai besoin de passer par un bouton cf exemple en PJ.
En considérant l'exemple en PJ, Est ce possible?

Pierre
 

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.
 

E5kobar

XLDnaute Nouveau
Re @Staple1600

J'abuse encore sur une question ^^ :

Dans le code transmis (que j'essaye vivement de comprendre), on a :

"si numéro de facture testé est présent dans la plage indiquée alors messbox"Facture déjà dans le suivi factures"
sinon rien


A la place de sinon rien j'aimerais appeler une macro (appelée pour l'exemple "Transfert_From_Master1")

J'essaye de positionner ce "call Transfert_From_Master1" à plusieurs endroit mais j’échoue.


Un gros merci d'avance ;)
 

Fichiers joints

Staple1600

XLDnaute Barbatruc
Re

Comme je suis d'humeur taquine (et que je veux flatter mes oreilles ;))
VB:
Sub macroBouton_II()
Dim rng, x As Range
With Application
  .ScreenUpdating = False
  With ActiveSheet
    Set rng = .Range(.Cells(12, "E"), .Cells(Rows.Count, "E").End(3))
    End With
    Set x = Range("E7")
  If Len(x) And .CountA(rng) > 0 Then
      If Not IsError(Application.Match(x, rng, 0)) Then
      MsgBox "Facture déjà dans le suivi factures", vbCritical, "Erreur"
      x = ""
      Else
      .Run "LikeHell"
      End If
  End If
End With
End Sub
Sub LikeHell(Optional SeeMe As String = "https://www.youtube.com/watch?v=4Uf_rTLqj0o")
MsgBox "Je suis l'autre macro", 64
End Sub
Je te laisse en déduire comment appeler l'autre macro (mais la tienne)

NB: Si tu es curieux et attentif, normalement, tu devrais brancher ton casque et/ou alluler tes HP ;)
 

Staple1600

XLDnaute Barbatruc
Re
E5kobar
Alors tu as branché ton casque ou pas?
(et accessoirement le code proposé fonctionne-t-il une fois adapté sur ton PC?)
;)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas