Execution macro automatique, changement valeur

Bonsoir.

Je me suis moi même concocté un petit exo dont l'énoncé est dans le fichier excel.

En parcourant le net, j'ai trouvé une fonction pour exécuter une macro dès qu'une cellule change de valeur.

Mais elle ne s'exécute pas chez moi. (je l'ai placée dans la Feuil1)

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Range("B6:B15").Address Then
        Call coloration.couleur
    End If
End Sub

Pouvez vous me dire pourquoi ?

Merci.

Bonne soirée.

461selection-change.xlsm (17.05 Ko)

Salut flyEmirates,

Essaie avec ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Application.Intersect(Target, [B6:B15]) Is Nothing Then
        Call coloration.couleur
    End If
End Sub

Ton code ne marche pas car il faudrait que tu sélectionnes les cellules B6 à B15 en même temps et que tu modifies une de ces cases pour lancer la macro.

Merci vba-new.

C'est génial quand ça marche, car j'y ai passé plus d'une demi-heure.

A propos de ton module, j'ai des questions:

  • le "if not", j'ai essayé de le remplacer par un "else" mais ça ne fonctionne pas. Pourquoi?
  • que représente le "Target" dans "Application.Intersect(Target, [B6:B15])" ?

flyEmirates a écrit :

- le "if not", j'ai essayé de le remplacer par un "else" mais ça ne fonctionne pas. Pourquoi?

C'est normal, y'a rien à voir. En fait si on traduit en français, ça ferait :

Si "Application.Intersect(Target, [B6:B15])" n'est pas rien alors...

ce qui équivaut à :

Si "Application.Intersect(Target, [B6:B15])" existe alors...

flyEmirates a écrit :

- que représente le "Target" dans "Application.Intersect(Target, [B6:B15])" ?

Cela représente la cellule sélectionnée

target.count signifie que l'on compte le nombre de cellules selectionnées ?

Ici, on sortirait de la macro si deux cellules étaient sélectionnées simultanément ?

flyEmirates a écrit :

target.count signifie que l'on compte le nombre de cellules selectionnées ?

Ça donne effectivement le nombre de cellules sélectionnées.
flyEmirates a écrit :

Ici, on sortirait de la macro si deux cellules étaient sélectionnées simultanément ?

2 ou plus... Car le but est de lancer la macro couleur si on change une seule cellule n'est-ce pas ?

Oui c'est cela.

Enore merci vba-new, les choses sont vraiment claires maintenant.

@+

Bonjour, je voudrais adapter ce code.

Je dispose d'un fichier avec 400 lignes et une vingtaine de colonnes. Pour le moment, j'ai une macro qui enregistre des infos de ce tableau dans d'autres fichiers excels qu'il crée s'ils n'existent pas et les modifie si les données du tableau source changent. Le problème c'est que pour l'instant pour le faire cela ouvre et recherche chaque fichier même si je ne change qu'une ligne du tableau. Cela prend donc environ 5 min. Je précise que pour le moment j'actionne la macro avec un bouton.

Je souhaiterai faire en sorte que la macro vérifie les données dont la valeur a changé et qu'elle mette à jour les dossiers s'y rapportent uniquement.

Comment puis-je faire ?

Je joins mes fichiers pour vous donner une idée des tableaux.

Merci de votre aide

Bonjour DerJul,

Je te conseille d'ouvrir un nouveau post pour ton problème pour avoir plus de visibilité (le post actuel étant été résolu). En plus de l'explication globale de ton problème, pourras-tu donner un exemple concret de ce que tu fais comme manip ? Quel tableau tu modifies, quelle ligne, quelle colonne tu modifies, quelle macro dure 5 min ?

Rechercher des sujets similaires à "execution macro automatique changement valeur"