2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feuille

Usine à gaz

XLDnaute Barbatruc
Bonjour à tous,

j'ai besoin de mettre ces deux macros dans le module de ma feuille mais elles sont en conflits car elles ont le même nom.

j'ai essayé de modifier "un peu partout" sans succès.

Un grand merci pour votre aide si vous voulez bien.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("E2")) Is Nothing And Target.Count = 1 Then
UserForm1.Show
End If
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("H3")) Is Nothing Then
Call FormulesExped
End If
End Sub

Amicalement,
Lionel,
 

JCGL

XLDnaute Barbatruc
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

Bonjour à tous,

Peut-être ainsi :

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("E2")) Is Nothing And Target.Count = 1 Then UserForm1.Show 0
If Not Intersect(Target, Range("H3")) Is Nothing Then Call FormulesExped
End Sub

A+ à tous
 

Usine à gaz

XLDnaute Barbatruc
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

Bonjour,
Bonjour à tous,

Merci pour cette réponse super rapide.

Voila ce que j'ai fait à partir de ton code mais cela ne marche pas.
La macro exécute la première condition mais pas la seconde.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("E2")) Is Nothing And Target.Count = 1 Then
UserForm1.Show
End If
If Not Intersect(Target, Range("H3")) Is Nothing Then
Call FormulesExped
End If
End Sub

Amicalement,
Lionel,
 

sixair

XLDnaute Junior
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

Bonjour,
Pour moi c'est correct, je préfère la forme proposée par JCGL (gout personnel)
Juste pour dire : Application.ScreenUpdating = False
Est-il utile ?
Si oui, Application.ScreenUpdating = True serait bien en sortie
Cordialement
 

Usine à gaz

XLDnaute Barbatruc
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

Bonjour,
Bonjour à tous,

Merci pour ta réponse mais je confirme :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("E2")) Is Nothing And Target.Count = 1 Then UserForm1.Show 0
If Not Intersect(Target, Range("H3")) Is Nothing Then Call FormulesExped
End Sub

La première condition est bien exécutée mais Call FormulesExped ne s'exécute pas et .....
malheureusement, je ne comprends pas pkoi !!!

Amicalement,
lionel,
 

sixair

XLDnaute Junior
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

et si tu mets juste sous ton code:
Code:
Sub toto()
Call FormulesExped
End Sub
et que te lances cette procédure, ça marche ?
Car je pense que le problème est ailleurs...
Mais sans fichier, c'est comme chercher les yeux fermés
Cdlt
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

Re à tous,

Oui, je travaille déjà avec la macro FormulesExped que je lance avec Call dans d'autres macros et ça marche

Mais je ne comprends pas ce que tu voudrais que je fasse ?

Merci de t'intéresser à mon soucis,
Amicalement,
Lionel,
 

Dranreb

XLDnaute Barbatruc
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

Bonjour.

C'est normal, réfléchissez 2 secondes: si c'est l'unique cellule E2 qui est sélectionnée, ce ne peut être en même temps une immense plage contenant la cellule H3 !
Je propose quand même ça peut être :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Me.[H3]) Is Nothing Then
   Application.ScreenUpdating = False
   FormulesExped
ElseIf Target.Address = "$E$2" Then
   UserForm1.Show
   End If
End Sub
Si toujours pas bon, lisez bien ma signature.
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

Bonjour Dranreb,

Merci de t'intéresser à mon problème.

Tu as parfaitement raison, joindre un fichier c'est bien mieux mais le mien est gros, mais je vais le scinder et joindre la partie qui nous intéresse.

J'ai essayé ta macro (elle est dans le module de la feuille OF1) et ça ne marche pas.

Voici le fonctionnement de mon petit truc :

En "B2", je saisi un numéro OF, par exemple : 101916-001
En "E2", je saisi un code PF , par exemple : voire selon liste déroulante

Comme vous le verrez, la nomenclature du PF apparait (selon recherche dans feuille Matrice masquée)
Cette nomenclature est transmise dans les feuille suivantes me permettant de saisir les rebuts tout au long de la production de l'OF concerné.

j'ai besoin de calculer un taux de rebuts en fonction des PF livrés (PF livrés=PF produits, recherche dans feuille "Exped" masquée).

Puisque je saisi en semaine décalée, par exemple, la semaine 19 sera saisie en semaine 20 etc...,
je me suis laissé la possibilité (cellule"B1" de la feuille OF) de saisir la semaine qui me convient car le décalage pourrait être tout autre, par exemple plusieurs semaines de saisie suite à congés, maladie etc...

J'ai donc besoin que la recherche des PF livrés soit mise à jour en fonction de la semaine dans laquelle je travaille, c'est à dire la cellule "E2" de ma feuille OF.

C'est pour cela, puisque la cellule "E2" change :
- soit en fonction du jour de traitement,
- soit en fonction de ce que je mets dans la cellule "B1"

J'ai besoin que la recherche soit mise à jour (affichage "J2" de ma feuille OF) afin que j'ai les qtés livrées des PF de la semaine sur laquelle je travaille, cela me permettant le transfert automatique dans mes autres feuilles.

Bien sûr, j'ai fait un bouton "exped" (après récap) et je clique dessus pour la mise à jour et ça ne pose pas de problème mais .....

- je suis un peu fainéant et je peux oublier de le faire, c'est pourquoi j'aimerais bien l'automatiser complètement.

J'ai du être long dans mon explication et j'espère qu'elle sera compréhensible.

Je vous remercie d'avoir lu tout ça LOL,
Amicalement,
Lionel,
 

Pièces jointes

  • Matrice suivi Rebuts2SIOF1.zip
    837.9 KB · Affichages: 99
  • Matrice suivi Rebuts2SIOF1.zip
    837.9 KB · Affichages: 89
  • Matrice suivi Rebuts2SIOF1.zip
    837.9 KB · Affichages: 109

Si...

XLDnaute Barbatruc
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

salut

d'accord avec Dranreb, aussi une autre solution
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$E$2" Then UserForm1.Show: Exit Sub
  If Target.Address = "$H$3" Then Call FormulesExped
End Sub
Cependant, Si... d'autres macros appelées "passent" par ces 2 cellules, pour éviter de appels inutiles (blocage dans certains cas) :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Application.EnableEvents = False
  If Target.Address = "$E$2" Then UserForm1.Show: GoTo 1
  If Target.Address = "$H$3" Then Call FormulesExped
1  Application.EnableEvents = True 'INDISPENSABLE !
End Sub
 

Usine à gaz

XLDnaute Barbatruc
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

Bonjour SI...
Bonjour à tous,

J'ai essayé et, rien à faire, la seconde condition ne s'exécute pas.
J'ajouté : Application.EnableEvents = True
Merci à toi,
Lionel,
 

JCGL

XLDnaute Barbatruc
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

Bonjour à tous,

Et en enlevant la protection :

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect
If Target.Address = "$H$3" Then Call FormulesExped
If Target.Address = "$E$2" Then UserForm1.Show
ActiveSheet.Protect
End Sub

A+ à tous
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) pour la même feui

L'ouverture de votre .xlsm converti en .xls me fait planter Excel.
Vous êtes sur que c'est en sélectionnant une plage contenant la cellule H3 que vous voulez que votre FormulesExped s'exécute ?
Parce que ça peut s'oublier tout aussi bien que de cliquer sur un bouton …il me semble.
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
236

Statistiques des forums

Discussions
314 562
Messages
2 110 729
Membres
110 909
dernier inscrit
François19