Erreur d'éxécution 1004

Bonjour

Pour la phrase suivante

If Intersect(Target, Sheets("Progression 4eme").Range("A4:R4")) Is Nothing Then Exit Sub

J'ai un message 'Intersect' de l'objet '_Global' a échoué

Le nom de la feuille appelé est pourtant bon ...

Une idée ? merci

Bonsoir

Ton fichier avec la macro en cause serait dans ce cas utile

Vérifies bien l'orthographe du nom de la page

Le code est :

Sub WorkSheet_Change(ByVal Target As Range)

Dim lig As Long, col As Long

Dim Cellule As Range

If Not Intersect(Target, Sheets("Progression 4eme").Range("A4:R4")) Is Nothing Then: Exit Sub

Set Cellule = Sheets("Progression 4eme").Range("A4:R4").Find(Target, LookIn:=xlValues, lookat:=xlWhole)

If Cellule Is Nothing Then MsgBox "Attention la valeur cherchée n'existe pas": Exit Sub

lig = Cellule.Row

col = Cellule.Column

MsgBox "la ligne est" & lig & "et la colonne est" & col

Application.EnableEvents = False

Target.Offset(1, 1) = "Résultats de la concaténation des AM"

Target.Offset(3, 1) = "Résultats de la concaténation des Séances"

Target.Offset(4, 1) = "Résultats de la concaténation du travail à faire"

Application.EnableEvents = True

End Sub

Bonsoir

Je n'ai pas de message d'erreur avec ton code

Joins un fichier avec ton code en erreur

Banzai64 a écrit :

Bonsoir

Je n'ai pas de message d'erreur avec ton code

Joins un fichier avec ton code en erreur

Oui oui ...

Le voila. J'attendais de faire un peu de tri dans mon codage.

Le problème se pose dans la feuille Planning 4eme (et planning 3eme qui est une copie).

Si à la place d'un Sxxx je tape un S001 ou S002 etc il y a bug.

Merci

Bonjour

Mon avis

Dans la fonction Intersect tu utilises 2 Range dans 2 feuilles différentes

Le 1er : Target qui fait référence à la feuille active

Le second : Plage_Recherche qui fait référence à une autre feuille. Comme j'étais dans la page "Planning 4eme", cet objet fait référence à la page "Progression 4eme"

            Case "Planning 4eme"
                Set Feuille_Recherche = Sheets("Progression 4eme")

Je n'ai pas trop regardé ton code mais il me semble que cette instruction devrait faire référence à Range(Plg4) (mais bon je peux me tromper)

If Intersect(Target, Range(Plg4)) Is Nothing Then Exit Sub
Banzai64 a écrit :

Bonjour

Mon avis

Dans la fonction Intersect tu utilises 2 Range dans 2 feuilles différentes

Le 1er : Target qui fait référence à la feuille active

Le second : Plage_Recherche qui fait référence à une autre feuille. Comme j'étais dans la page "Planning 4eme", cet objet fait référence à la page "Progression 4eme"

            Case "Planning 4eme"
                Set Feuille_Recherche = Sheets("Progression 4eme")

Je n'ai pas trop regardé ton code mais il me semble que cette instruction devrait faire référence à Range(Plg4) (mais bon je peux me tromper)

If Intersect(Target, Range(Plg4)) Is Nothing Then Exit Sub

C'est ce que je veux.

Si je tapes S002, il va voir dans la feuille Progression 4eme et dans la Range(plg4) si S002 s'y trouve ...

Du reste, si tu supprimes la ligne, tu verras que la ligne suivante fonctionne

Set Cellule = Plage_Recherche.Find(Target, LookIn:=xlValues, lookat:=xlWhole)

J'ai même essayé de mettre en clair la ligne mais c'est pareil

Bonsoir

1ère chose n'appuies pas sur "citer" pour répondre, cela encombre le post pour rien

Ensuite

RIPcagou a écrit :

il va voir

ça c'est Find et non Intersect

Extrait de l'aide pour Intersect

Application.Intersect, méthode

Cette méthode renvoie un objet Range qui représente l'intersection rectangulaire de deux plages ou plus.

Implicitement les plages doivent être dans la même feuille, ce qui n'est pas le cas avec ton instruction

If Intersect(Target, [surligner=#FFFF80]Plage_Recherche) Is Nothing Then Exit Sub 

Target qui fait référence à la page "Planning 4eme"

Plage_Recherche qui fait référence à la page "Progression 4eme"

Rechercher des sujets similaires à "erreur execution 1004"