Créer une nouvelle worksheet et lui assigner une macro event directement
the_rantanplan
Messages postés2Date d'inscriptionlundi 19 juillet 2004StatutMembreDernière intervention14 juin 2011
-
11 juin 2011 à 11:48
the_rantanplan
Messages postés2Date d'inscriptionlundi 19 juillet 2004StatutMembreDernière intervention14 juin 2011
-
14 juin 2011 à 18:18
Bonjour,
Afin d'aider une école j'essai de leur faire un petit fichier excel pour les aider à gérer leur stocks.
Pour ce faire à partir d'un autre fichier excel de bon de commande j'ajoute les lignes dans le mien.
J'ai créé une macro qui ouvre le deuxième fichier excel, le parcours et rempli mon fichier de gestion des stocks.
Pour organiser les informations je les classe dans des feuilles différentes. J'aimerai au sein de ma macro associer des macros évènementielles à certaines cellules dans la feuille que je viens de créer. Est ce possible
If Not FeuilleExiste(gestionStock, nomOnglet) Then
initialiserNouvelleFeuille wk:=gestionStock, nomFeuille:=nomOnglet
associerMacroEvenementielle nomFeuille:=nomOnglet
End If
Que dois contenir ma fonction associerMacroEvenementielle pour associer le code suivant à ma nouvelle feuille ? Et déjà est ce possible ??
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Set plage = Range("D5:D" & Range("D65536").End(xlUp).Row)
If Not Intersect(Target, plage) Is Nothing And Target.Cells.Count = 1 Then
articlesEnMoins = Application.InputBox(Prompt:="Combien d'articles prenez vous ?", Title:="Sortie de Stock", Left:=50, Top:=50)
On Error GoTo Erreur:
Target.value = CInt(Target.value) - CInt(articlesEnMoins)
Cancel = True
End If
Exit Sub
Erreur:
MsgBox "Erreur lors de la soustraction, vérifiez vos chiffres"
End Sub
Merci de votre aide je sèche
A voir également:
Créer une nouvelle worksheet et lui assigner une macro event directement
CGSI3
Messages postés416Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention 7 janvier 20181 11 juin 2011 à 23:15
Bonsoir,
Je m'essai a te donner quelques pistes:
Pourquoi ne pas passer par WorkBook
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox (Sh.Name & " " & Target.Address)
End Sub
Ensuite Méthode Worksheets ou Sheets ... de ce genre
For Each Cell In Worksheets(Sh.Name).Range(Target.Address)
Next
the_rantanplan
Messages postés2Date d'inscriptionlundi 19 juillet 2004StatutMembreDernière intervention14 juin 2011 14 juin 2011 à 18:18
Merci beaucoup pour cette solution simple à laquelle je n'avais pas pensé car je ne voulais pas avoir le même comportement sur certaines feuilles mais finalement je vois que ça ne pose pas de problème.