Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pourquoi 1004 ?

5 réponses
Avatar
Charabeuh
Bonjour,

Pouvez-vous m'indiquer où je pèche ?
(c'est sans doute de ma très grande faute)

sur Excel 2007

Un classeur vierge - Trois feuilles (Feuil1, Feuil2, Feuil3)
Création d'un module1 avec le code :
''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Macro1() 'OK
Sheets("Feuil2").Select
Range("A1:B10").Select
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''

Des procédures évènementielles pour feuil1 (activées tour à tour) :

''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Worksheet_Change(ByVal Target As Range) 'KO
Sheets("Feuil2").Select
Range("A1:B10").Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range) 'OK
Macro1
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''

Macro1 fonctionne.

La 1ère procédure évènementielle aboutit à une erreur de type:
"Erreur d'exécution ' 1004':
"La procédure Select de la classe Range a échoué".

La 2ème procédure évènementielle fonctionne.

Même comportement avec les tous les autres évènements.

Pourquoi cette erreur 1004 ?

D'avance merci...

5 réponses

Avatar
Daniel.C
Bonjour.
Dans la macro évènementielle, "Range("A1:B10").Select", non qualifié,
fait référence à la feuille où se trouve la procédure évènementielle,
pas à la feuille active, d'où erreur. Essaie :

Private Sub Worksheet_Change(ByVal Target As Range) 'KO
With Sheets("Feuil2")
.Select
Sheets("Feuil2").Range("A1:B10").Select
End With
End Sub

Cordialement.
Daniel

Bonjour,

Pouvez-vous m'indiquer où je pèche ?
(c'est sans doute de ma très grande faute)

sur Excel 2007

Un classeur vierge - Trois feuilles (Feuil1, Feuil2, Feuil3)
Création d'un module1 avec le code :
''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Macro1() 'OK
Sheets("Feuil2").Select
Range("A1:B10").Select
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''

Des procédures évènementielles pour feuil1 (activées tour à tour) :

''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Worksheet_Change(ByVal Target As Range) 'KO
Sheets("Feuil2").Select
Range("A1:B10").Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range) 'OK
Macro1
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''

Macro1 fonctionne.

La 1ère procédure évènementielle aboutit à une erreur de type:
"Erreur d'exécution ' 1004':
"La procédure Select de la classe Range a échoué".

La 2ème procédure évènementielle fonctionne.

Même comportement avec les tous les autres évènements.

Pourquoi cette erreur 1004 ?

D'avance merci...
Avatar
Hervé
Bonjour,

Dans un bloc With / End With il n'est pas nécessaire de faire référence à
nouveau à l'objet, il faut simplement ne pas oublier le point :

Private Sub Worksheet_Change(ByVal Target As Range)

With Sheets("Feuil2")
.Select
.Range("A1:B10").Select
End With

End Sub


Hervé.


"Daniel.C" a écrit dans le message de
news:
Bonjour.
Dans la macro évènementielle, "Range("A1:B10").Select", non qualifié, fait
référence à la feuille où se trouve la procédure évènementielle, pas à la
feuille active, d'où erreur. Essaie :

Private Sub Worksheet_Change(ByVal Target As Range) 'KO
With Sheets("Feuil2")
.Select
Sheets("Feuil2").Range("A1:B10").Select
End With
End Sub

Cordialement.
Daniel

Bonjour,

Pouvez-vous m'indiquer où je pèche ?
(c'est sans doute de ma très grande faute)

sur Excel 2007

Un classeur vierge - Trois feuilles (Feuil1, Feuil2, Feuil3)
Création d'un module1 avec le code :
''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Macro1() 'OK
Sheets("Feuil2").Select
Range("A1:B10").Select
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''

Des procédures évènementielles pour feuil1 (activées tour à tour) :

''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Worksheet_Change(ByVal Target As Range) 'KO
Sheets("Feuil2").Select
Range("A1:B10").Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range) 'OK
Macro1
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''

Macro1 fonctionne.

La 1ère procédure évènementielle aboutit à une erreur de type:
"Erreur d'exécution ' 1004':
"La procédure Select de la classe Range a échoué".

La 2ème procédure évènementielle fonctionne.

Même comportement avec les tous les autres évènements.

Pourquoi cette erreur 1004 ?

D'avance merci...




Avatar
Daniel.C
Bonjour.
C'est un oubli, ami, comme le montre la ligne du dessus.
Cordialement.
Daniel

Bonjour,

Dans un bloc With / End With il n'est pas nécessaire de faire référence à
nouveau à l'objet, il faut simplement ne pas oublier le point :

Private Sub Worksheet_Change(ByVal Target As Range)

With Sheets("Feuil2")
.Select
.Range("A1:B10").Select
End With

End Sub


Hervé.


"Daniel.C" a écrit dans le message de
news:
Bonjour.
Dans la macro évènementielle, "Range("A1:B10").Select", non qualifié, fait
référence à la feuille où se trouve la procédure évènementielle, pas à la
feuille active, d'où erreur. Essaie :

Private Sub Worksheet_Change(ByVal Target As Range) 'KO
With Sheets("Feuil2")
.Select
Sheets("Feuil2").Range("A1:B10").Select
End With
End Sub

Cordialement.
Daniel

Bonjour,

Pouvez-vous m'indiquer où je pèche ?
(c'est sans doute de ma très grande faute)

sur Excel 2007

Un classeur vierge - Trois feuilles (Feuil1, Feuil2, Feuil3)
Création d'un module1 avec le code :
''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Macro1() 'OK
Sheets("Feuil2").Select
Range("A1:B10").Select
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''

Des procédures évènementielles pour feuil1 (activées tour à tour) :

''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Worksheet_Change(ByVal Target As Range) 'KO
Sheets("Feuil2").Select
Range("A1:B10").Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range) 'OK
Macro1
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''

Macro1 fonctionne.

La 1ère procédure évènementielle aboutit à une erreur de type:
"Erreur d'exécution ' 1004':
"La procédure Select de la classe Range a échoué".

La 2ème procédure évènementielle fonctionne.

Même comportement avec les tous les autres évènements.

Pourquoi cette erreur 1004 ?

D'avance merci...




Avatar
Charabeuh
re Bonjour,

Evidemment comme vous l'avez écrit, ça tourne mieux !

Merci bcp à tous les deux,

Char Abeuh
Avatar
Blaise Cacramp
"Hervé" a écrit dans le message de news:

Bonjour,

Dans un bloc With / End With il n'est pas nécessaire de faire référence à
nouveau à l'objet, il faut simplement ne pas oublier le point :

Private Sub Worksheet_Change(ByVal Target As Range)

With Sheets("Feuil2")
.Select
.Range("A1:B10").Select
End With

End Sub


Hervé.



Et non, c'est justement l'erreur 1004 : un objet n'est pas assez clairement
défini, notamment dans ce cas de figure. Quel est est l'objet courant après
le .select ?: une sélection? D'où un probable écueil pour le .range qui n'a
pas d'écho dans le .select

Du moins, je crois ;)