XL 2013 Automatic macro ne fonctionne pas

Kidcarotte

XLDnaute Junior
Bonjour a tous
Je rencontre quelques difficultes avec ma macro, je suis a la recherche de suggestion
elle sera attachee dans le post

J'ai donc trois macro automatique:
- La premiere etant un curseur de couleur jaune
- la deuxieme etant une fonction if. If A3 = No packaging then A4 = 0

le probleme est que les macros automatique ne marche plus du tout, et je ne comprend pas pourquoi

Je suis ouverte a toute vos suggestions

Merci a tous
 

Pièces jointes

  • Parts Dimension database creation.xlsm
    85.9 KB · Affichages: 9

Kidcarotte

XLDnaute Junior
Bonjour Daniel

J'ai la macro en debut sur ma worksheet, mais ce ne marche toujours pas.
la premiere execution marche, mais apres si je clique sur le bouton "clear", il y a marque mismatch, sauf que je ne vois pas ou ni pourquoi puisqu'elle s'est execute parfaitement la premiere fois

cordialement
 

Kidcarotte

XLDnaute Junior
D'accord je vais essaye d'etre plus claire. Je reposte le fichier excel ici -
1) La feuille qui m'interesse est la feuille numero 1 qui s'appelle Warehouse ( je m'excuse par avance pour le manque d'accent j'ecris avec un Qwerty)
2) Lorsque l'on va dans la fonction developer -> Macro on arrive sur la fenetre VBA ou l'on peut manuellement taper le code.
3) Dans l'onglet a gauche, il y a le titre -> VBA project -> Microsoft Excel Objects -> Feuille 1 (Warehouse)

Dedans j'ai ecris deux macro automatique
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("E5")) Is Nothing Then

Application.EnableEvents = False

If Target = "No packaging" Then Range("A5:D5").Copy Range("A8")

[...]

Application.EnableEvents = True

End If

If Not Intersect(Target, Range("B16")) Is Nothing Then

If Target = "1A" Then Sheets("Office").Range("AI2:AK2").Copy: Sheets("Warehouse").Range("C16:E16").PasteSpecial

End If

End Sub



Private Sub Worksheet_SelectionChange(ByVal Target As Range)

lig = Target.Row

Cells(2, 4).Value = Date

If Not Intersect(Selection, [A1:Z100]) Is Nothing Then

[A1:Z100].Interior.ColorIndex = xlNone

ActiveCell.Interior.ColorIndex = 6

End If

End Sub


Jusqu'a la tout fonctionnait, mais depuis que j'ai rajoute la deuxieme condition de IF ( IF Not Intersect B16), cela ne marche plus.
C'est a dire que lorsque j'ouvre le fichier, tout fonctionne comme prevu, sauf que lorsque j'appuie sur le bouton "clear" de la feuille Warehouse
"Run time error 13 type mismatch"
Je clique sur debug, et (jai accroche un screenshot en docs) et je ne comprends pas comment cette erreure est generee. Je ne vois pas ou est le probleme.

J'espere que c'est comprehensible maintenant
 

Pièces jointes

  • Parts Dimension database creation.xlsm
    86.1 KB · Affichages: 2
  • mon erreur.PNG
    mon erreur.PNG
    20.1 KB · Affichages: 5

danielco

XLDnaute Accro
La macro plante sur la ligne :
VB:
If Target = "No packaging" Then Range("A5:D5").Copy Range("A8")
Comme Target représente une plage de plusieurs cellules, si tu veux tester la valeur de la première cellule, il faut mettre:
Code:
If Target(1).Value = "No packaging" Then Range("A5:D5").Copy Range("A8")
et pareil sur les lignes suivantes. Maintenant, pour ne pas déclencher l'évènement WorkSheet_Change, mets :
Code:
Sub Clear()
'
' Clear Macro
'
Application.EnableEvents = False
Set S1 = Worksheets("Warehouse")
S1.Range("A2:G2, A5:F5, A8:I8, B11:H16, A19:D19").ClearContents
Application.EnableEvents = True
End Sub

Daniel
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi