Code VBA - Pourquoi ne fonctionne-t-il plus ?

Bonsoir,

J’ai à nouveau un souci avec le travail ci-joint :

J’avais obtenu votre aide afin de placer un code pour la feuille «IV Deutsch». Ce code avait pour effet, lors de la modification de la cellule H15, que la feuille «Berechnung Kinderzulage IV» était sélectionnée. Ce code fonctionnait parfaitement, malgré que la cellule H15 fût fusionnée avec la cellule I15.

J’ai maintenant voulu poursuivre mon travail et j’ai effectué une copie de la feuille «IV Deutsch» que j’ai nommée «TIV Deutsch» ainsi qu’une copie de la feuille «Berechnung Kinderzulage IV» que j’ai nommé «Berechnung Kinderzulage TIV» (désolé pour ces textes en allemand !!).

Mon problème vient maintenant que le code indiqué ci-dessus ne fonctionne plus pour les feuilles «...IV...» (malgré que j’ai maintenant encore essayé de séparer les cellules H15 et I15) pas plus que le code des feuilles « ...TIV...» ne fonctionne pour celles-ci, malgré le fait que j’ai essayé de le modifier en conséquence.

Pouvez-vous encore m’aider ?

Avec mes bonnes salutations.

Encore une petite précision.

Dans le document envoyé, pour les feuilles mentionnées, j'ai un premier code provisoirement désactivé dont il ne faut pas se soucier. Mon problème vient des deuxièmes codes insérés. Voici l'un deux :

Private Sub Worksheet_Change(ByVal Target As Range)
' Proposition de galopin01
Set isect = Application.Intersect([H15], Target)
If Not isect Is Nothing Then
Application.EnableEvents = False
If [H15] > 0 Then
Sheets("Berechnung Kinderzulage IV").Select
Else
    ActiveSheet.Select
End If
Application.EnableEvents = True
End If
End Sub

Bonjour,

pour moi, ton premier code fonctionne, dans le deuxième (feuille "TIV Deutsch"), il manque un "e" au nom de l'onglet :

Sheets("Berechnung Kinderzulage TIV")

Nota : la ligne :

Application.EnableEvents = False

ne sert à rien, et ne peut t'apporter que des désagréments

Salut Felix,

Merci pour ton information au sujet du "e" manquant. J'ai corrigé cette erreur et tout fonctionne à nouveau correctement.

Je n'ai par contre pas très bien compris pourquoi cette erreur empêchait que la macro de l’autre feuille fonctionne normalement. Avais-je oublié de réinitialiser ?

J’ai aussi suivi ton conseil de supprimer ces lignes inutiles.

Merci encore pour ton aide. Tu me sors une belle épine du pied !

Bonne journée.

Bonjour,

justement, comme tu avais cette ligne, qui désactive les évènements de feuille (c'est à dire, que lorsque tu mets cette valeur à False, tout ce que fais sur ta feuille ne sera plus intercepté, donc les codes de feuilles ne pourront plus fonctionner), et qu'en cas de Bug, comme tu n'as pas remis la valeur à True, les évènements ne se déclenchent pas.

Pour réactiver ces évènements, il faut soit la remettre à True, soit stopper et redémarrer Excel.

Dans ton code, cette ligne ne servait à rien, en général, on s'en sert pour éviter des boucles sans fin, lorsqu'on modifie la valeur d'une cellule par macro, et ainsi relancer l'évènement

(je sais pas si je suis clair..... )

Oui, Felix, c'est très clair. Effectivement que le problème persistait tant que je restais sur cette feuille et qu'il disparaissait comme par enchantement lors d'une nouvelle utilisation de ce dossier (pour apparaître à nouveau sournoisement plus tard).

Merci pour toutes ces précisions complémentaires.

Avec mes meilleures salutations.

Rechercher des sujets similaires à "code vba pourquoi fonctionne"