Erreur 1004

Bonjour à tous,

çà y est j'y suis confronté !!!

Un programme qui tournait bien se plante maintenant avec err 1004.

Pour essayer de comprendre j'ai refait un petit pgm de test : essais2 (joint).

Les mêmes instructions sont déclenchées de 2 façons :

  • par bouton Dernier résultat (vba), là plantage (scan bug2 joint)
  • par bouton Dernier résultat(macro1) , là çà marche.
Les instructions vba sont identiques (scan bug 3).

A noter , j'ai essayé de remplacer le range select par cells select, même résultat

j'ai remplacé le sheets select par sheets activate, idem....

Alors je ne comprends pas, je suis sous W7 et excel (v 2007)

Alors si qqun a une idée !! je suis preneur

bug 1004 2 bug 1004 3
4essais2.xlsm (21.84 Ko)

Bonjour,

avec ta proc dans le module Feuil1(Menu) tu ne peux adresser que des cellules de cette feuille.

Et comme elle n'est plus active tu ne peux pas faire Range("A4").Select sans planter. Pour vba ça ne peut être que A4 de la feuille Menu inaccessible.

Dans ce cas il faut spécifier la feuille de travail :

Private Sub Btndern_Click()
    Range("C2").Select
    With Sheets("Histo")
        .Select
        .Range("A4").Select
    End With
End Sub

Ceci dit tu peux (et il faut !) te passer de .Select dans 99% des cas.

Ecris tes lignes sans .Select tant que tu n'y es pas obligé.

eric

Bonsoir Rominet, bonsoir le forum,

J'ai aussi longtemps bataillé sur ce genre d'erreur que je trouvais incompréhensible, mais il y a une explication.

Quand tu lances via le bouton. Ce dernier se trouve dans un onglet, pour sélectionner une cellule dans un autre onglet, il te faut non seulement activer cet autre onglet, mais aussi le spécifier dans le code. Sinon, l'onglet par défaut est toujours l'onglet dans lequel se trouve le bouton. Ton code devient :

Private Sub Btndern_Click()
Range("C2").Select 'l'onglet du bouton
Sheets("Histo").Select 'on sélectionne l'autre onglet
Sheets("Histo").Range("A4").Select 'on sélectionne A4 mais il faut spécifier de quel onglet car sinon il essaie de sélectionne A4 de l'onglet "Menu" est ça plante
End Sub

En revanche, la macro, elle, n'est pas lancée d'on onglet spécifique. Donc pas de plantage avec :

Sub Macro1()
Range("C1").Select
Sheets("Histo").Select
Range("A4").Select 'forcément de l'onglet actif donc "Histo"
End Sub

[Édition]

Bonsoir Ériiic, nos posts se sont croisés...

Salut Thautheme

Rechercher des sujets similaires à "erreur 1004"