Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Copie de macro VBA d'un classeur dans un autre qui ne fonctionne pas (EXCEL 2007)

GUGUSSE2

XLDnaute Occasionnel
Bonjour,
Mes fichiers sont en "EXCEL 2007".

Dans le fichier "Diviseur 40-45.xlsm" il y a une macro qui ne permet d'entrer une donnée QUE dans "B2" ou (exclusif) "B4".
Je voulais avoir le même comportement avec les cases "B2" ou "B3" dans le fichier "Ergot.xlsm".
J'ai donc importé la macro en modifiant les adresses ("B4" changé en "B3").
Mais seulement, les données ne sont pas effacées dans la case voisine quand on entre une valeur dans l'autre case !
Quelle est mon erreur ?
Quelqu'un peut-il corriger ce problème ?

Bien cordialement,
GUGUSSE2
 

Pièces jointes

  • Diviseur 40-45.xlsm
    41 KB · Affichages: 16
  • Ergot.xlsm
    192 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Gugusse,
Worksheet_Change est une macro événementielle, elle doit donc se trouver dans la Feuil1.
Ensuite le code réfère B2 et B4.
Donc je l'ai modifiée ainsi :
VB:
 Private Sub Worksheet_Change(ByVal r As Range)
Application.EnableEvents = False
ActiveSheet.Unprotect
If r.Address = "$B$2" Then
   [b3] = ""
   [b3].Select
Else
   [b2] = ""
   [b2].Select
End If
'ActiveSheet.Shapes("Groupe 1").Visible = IIf([B7] >= 0, True, False)
'ActiveSheet.Shapes("Groupe 2").Visible = IIf([B7] < 0, True, False)
If [B1] > 0 Then
'ActiveSheet.Shapes("Groupe 1").Visible = False
'ActiveSheet.Shapes("Groupe 2").Visible = False
End If
ActiveSheet.Protect
Application.EnableEvents = True
End Sub
Par contre ça coince sur ActiveSheet.Shapes("Groupe 1"), à vous de voir ce que vous voulez faire.
en PJ j'ai mis ça en commentaire, vous pouvez au moins tester le comportement de B2 B3.
 

Pièces jointes

  • Ergot (1).xlsm
    195.1 KB · Affichages: 3

GUGUSSE2

XLDnaute Occasionnel
Je ne vois pas la réponse que j'avais faite, je réitère donc :
Il est normal que les "ActiveSheet.Shape" ne fonctionnent pas puisqu'il n'y en a pas et qu'il n'y en a pas besoin dans le fichier "Ergot".
Le "ou exclusif" entre B2 & B3 fonctionne.
Considérez le problème résolu (je ne trouve pas le bouton pour le faire.
Merci aux sympathiques membres.
Bien cordialement,
GUGUSSE2
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…