Erreur 1004 sur RANGE

pascal36

XLDnaute Nouveau
Bonjour à tous,
Depuis si longtemps que je bénéficie des connaissances des autres ...

Depuis hier j'ai passé un temps certain à essayer de comprendre pourquoi j'avais une erreur 1004 "méthode select de la classe range" en faisant un banal "RANGE("B2").SELECT"
J'ai trouvé la réponse; si d'autres cherchent un jour, ils trouveront peut-être ici :

je suis sur la feuille "Postes"

Sheets("Personnel").Select
Range("B2").Select

Le problème est que ce select est écrit dans le code d'une feuille A.
VBA accepte sans problème le "Sheets("Personnel").Select mais dans le code d'une feuille il n'est pas permis de faire un SELECT dans une autre feuille.
J'ai mis ma procédure dans un module, que j'appelle depuis la feuille initiale.
Si ça peut servir à d'autres...

Pascal
 

alex67800

XLDnaute Impliqué
Re : Erreur 1004 sur RANGE

Bonjour Pascal36,

dans de nombreux cas le Select n'est pas nécessaire.

Ici un code sur feuille active qui modifie une autre feuille, sans passer par Select:
Code:
[COLOR="green"]'Ici la feuille active est Sheets("two")[/COLOR]
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False

If Not Intersect(Target, Range("B2:F3")) Is Nothing Then
[J8] = Format(Date, "Le dd mmmm yyyy")
With Worksheets("one") '[COLOR="Green"]<<<<<< ici modification sheets("one")[/COLOR]
.Unprotect Password:="toto"
.[I4] = Format(Date, "Le dd mmmm yyyy")
.Protect Password:="toto"
End With
Application.ScreenUpdating = True

End Sub

Edit: Bonjour skoobi, ça c'est un croisement sur le fil :D
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Erreur 1004 sur RANGE

Bonjour pascal36,

Juste pour dire qu'il faut éviter les Select le plus possible dans un code pour ce que tu viens de dire et parce que cela l'alourdie et ralentie son exécution.
Le défaut de l'enregistreur de macro :mad:.

Edit: bonjour alex :)
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
174