Déclenchement d'une macro par le remplissage d'une cellule

Bonjour à tous,

J'ai encore besoin de votre aide concernant une macro.

Je souhaiterais que lorsque que la case B6 de ma feuille est remplie une macro s'éxecute. Pour cela j'ai trouver un bout de code sur le web que j'ai aménagé comme suit :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Cells = B6 Then

If Target = "1" Or "2" Or "3" Or "4" Or "5" Or "6" Or "7" Or "9" Then planning_salle

End If

End Sub

La case B6 ne peut être remplie que par des chiffres (1 2 3 4 5 6 7 ou 9) et la macro que je souhaite déclenchée se nomme planning_salle.

Malgré ce code, ma macro ne se déclenche pas.

Merci pour votre aide.

Amicalement

Caro[/code]

Bonjour,

essaye ceci :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Macro par Dan le 06/02/08 pour Carosempe - Excel pratique
If Not Application.Intersect(Target, Range("B6")) Is Nothing Then
Select Case Target
Case Is = 1, 2, 3, 4, 5, 6, 7, 9
Planning_salle
Case Else
End Select
End If
End Sub

Amicalement

Dan

Si je souhaite que ce soit une date qui soit saisie dans la cellule

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Application.Intersect(Target, Range("K2")) Is Nothing Then
Select Case Target
Case Is = jj / mm / aaaa
planning_salle
Case Else
End Select
End If
End Sub

J'ai essayé ça mais ça ne fonctionne pas

Re,

Plus simple et sans macro.

Sélectionne ta cellule puis vas dans DONNEE / VALIDATION puis là tu choisis une Date max et une date min puis OK (ex : min : 02/2/2008 - mas 02/02/2030

Cela imposera d'entrer une date dans cette cellule.

Sous l'onglet ALERTE, mets le message que tu veux faire apparaitre en cas de mauvaise donnée dans cette cellule.

Amicalement

Dan

Re,

Merci pour ta réponse mais en quoi, de cette façon, le fait de rentrer ma date dans ma cellule va déclencher l'exécution de ma macro ?

Amicalement

Caro

re,

S'il tu dois absolument avoir une macro essaye ceci :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Application.Intersect(Target, Range("K2")) Is Nothing Then
Select Case IsDate(Target)
Case Is = True
planning_salle
Case Else
End Select
End If
End Sub

Amicalement

Dan

Re,

Ce n'est pas que je veux absolument avoir une macro, je souhaiterais que si une cellule est remplie alors ma macro se déclenche.

Si cela est possible autrement que par une macro, je prends bien volontiers.

Je vais essayer ce que tu viens de m'envoyer. Merci bcp

Amicalement

Caro

Bonjour,

Je souhaiterais que lorsque je remplisse la cellule K2 par une date, cela m'exécute une macro automatiquement.

J'ai essayé le code donné précédemment par Nad-Dan mais la macro nommée planning_salle ne s'exécute pas.

Pourriez-vous m'aider?

merci par avance

amicalement

caro

Bonjour,

Cela doit fonctionner.

As-tu d'autres macros de type Private dans ton fichier ?

A te relire

Dan

Re,

Voyons si j'ai bien fait :

j'ai mis ton code dans la feuille 5 qui est la feuille planning sur laquelle je veux que ton code s'applique.

ma macro planning_salle est sur le module 2.

Il ya sur chaque feuille (1, 2, et 6) des codes de type Private.

Est-ce que cela peut avoir une influence.

merci pour ton aide

Amicalement

Caro

re,

En principe cela ne peut pas avoir d'influence.

Tes macros private sur les autres feuilles fonctionnent bien ou pas ?

A te relire

Dan

Bonjour,

Les macros Private de mes différentes feuilles ne fonctionnent pas correctement : elles fonctionnent bien une fois puis après elles ne fonctionnent plus. Je croyais pourtant que le fait de les avoir sur les Worksheet faisait qu'elles se lançaient automatiquement dès qu'on était sur la feuille.

Merci pour votre aide

Amicalement

Caro

Bonjour Caro,

Je me doutais que ton pb venait de là. Il faudra certainement voir ton fichier complet.

Afin de procéder par ordre, commence par faire un test comme suit ::

- Dans un module place le code ci-dessous

Sub test()
Application.EnableEvents = True
End Sub
  • Exécute cette macro
  • Fais un essai de fonctionnement des macros de type Private.

Dis moi

A te relire

Dan

Merci Nad-Dan.

Ces macros commencent à me faire craquer.

J'ai essayé ton test , le problème reste sauf pour la première macro Private qui fonctionne mais un message d'erreur s'affiche.

Erreur d'exécution 13

Incompatibilité de type

Sur le code suivant:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
[color=red]If Target = Range("B18") Or Target = Range("B19") Then[/color]
Target = TimeSerial(Left(Target, Len(Target) - 2), Right(Target, 2), 0)
End If
Application.EnableEvents = True
End Sub

Merci encore pour ton aide

Amicalement

Caro

Re,

Juste une question car si l'on lis ce fil, tu as plusieurs demandes différentes.

Dans ton fichier tu n'aurais pas plusieurs macros Private Sub Worksheet_Change(ByVal Target As Excel.Range) dans la même feuille au moins ?

Sinon je pense que le mieux est de voir ton fichier.

A te relire

Dan

Re,

Je n'ai effectivement mis qu'une seule macro Private par feuille.

Merci pour votre aide

Amicalement

Caro

re,

1. poids de ton fichier

Impressionnant d'avoir un fichier de 8 Mo avec rien dedans !!!

Je l'ai allégé en supprimant pas mal de choses.

Evite de mettre des bordures et formules là où tu n'en as pas besoin. J'ai constaté que certaines feuilles contenaient des formules et bordures jusqu'à la ligne 65536. Cela ne te sert à rien et ne fait qu'alourdir le fichier inutilement.

J'ai donc remanié ton fichier et limité à 1000 lignes. Résultat des courses, il ne pèse plus que 320 ko !

En cas de besoin il te suffira de préparer quelques lignes de plus.

2. Ta macro dans ta feuille Saisie

Elle fonctionnait normalement mais j'ai rajouté une instruction. Vérifie que c'est bon.

Ton fichier --> https://www.excel-pratique.com/~files/doc/o5FXaBloc_SARRUS.zip

Une chose toutefois. Cela ne me fait ni chaud ni froid de voir ou non mon nom dans ton fichier mais de là à y mettre seul le tien alors que tu as reçu une aide de ce forum ne me parait pas très correct. Bien entendu, c'est ton choix mais je trouve cela dommage à l'égard du forum et de tous ceux qui t"ont aidé.

Amicalement

Dan

Bonjour,

Je te remercie pour ton aide Nad-Dan, apparemment tout marche et j'espère que ce la va continuer.

Pour ce qui est de ta remarque, je comprends ta réaction mais à vrai dire ce n'est même pas mon nom mais celui de ma responsable alors qu'elle n'a rien fait (et oui j'ai le même prénom qu'elle). La vie est injuste.

ce n'est pas pour autant que je ma permettrai de remettre en question de toute l'aide que le forum m'a apporté bien au contraire. J'aurais été bien incappable de faire tout cela sans votre aide : je ne savais même pas que les macros pouvaient existée avant.

Encore merci pour votre aide précieuse.

Caro

Rechercher des sujets similaires à "declenchement macro remplissage"