Les Allergies
Alimentaires
Posez votre question Signaler

Erreur d'éxecution 1004

Damien - Dernière réponse le 15 févr. 2012 à 08:21
Je suis en train de créer un fichier excel avec une importation d'un tableau d'un site internet et quelques fois j'ai cette erreur qui apparait:

"Erreur d'éxécution 1004
La méthode select de la classe Range a échoué"



Voila mon code aui me sert à supprimer certain élément de ce tableau lors de l'importation:

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False
Cells.Select (l'erreur se trouve ici)
Selection.Replace What:=" ~*", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

Selection.Replace What:="Results", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

Selection.Replace What:="Lay of the Day", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Range("A1").Select
Application.ScreenUpdating = True

End Sub



Est ce que quelqu'un aurait une petite idée pour supprimer cette erreur?

Merci pour votre aide
Lire la suite 

Erreur d'éxecution 1004 »

10 réponses
Réponse
+2
moins plus
Bonjour,

J'avais à peu prés la même erreur et je viens de la corriger.
Il suffit d'activer la page ou tes cellules sont sélectionnées avec un ".Activate" sur un objet de type Worksheet".
(en l'occurrence Worksheets(1).Activate au dessus du select.)

J'espère que ca aidera des personnes.
pijaku- 14 janv. 2011 à 11:16
Salut Ska,
Un peu vieux le sujet, mais éternellement d'actualité...

Le mieux, c'est de ne pas sélectionner du tout!!!!!!
Remplace :
WorkSheets(1).Activate
Range("A1").Select
Selection.Copy
Par :
With WorkSheets(1)
    .Range("A1").Copy
End With

!!!! le point devant "range" est dans ce cas Hyper primordial !!!!!!

Les .Select ralentissent l'exécution du code. En effect, d'abord tu sélectionnes et ensuite tu donnes l'action à réaliser. Dans le 2nd cas, avec With et End With, tu fais l'action tout de suite, sans sélection préalable...
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

En fait j'ai cette erreur apparait quand je suis sur une autre feuille que ma feuille1 lors de l'actualisation de tableau importé

Est ce que quelqu'un aurait une petite idée??

Merci pour votre aide
Ajouter un commentaire
Réponse
+0
moins plus
Si je remplace "Cells.Select " par "Worksheets(1).Cells.Replace ", j'ai une nouvelle erreur qui apparait:

"erreur 450 "

et ca me selectionne Worksheets(1).Cells.Replace

Merci pour ton aide
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

rassure moi :
tu as bien mis le worksheets(1).cells.replace sur la ligne où tu as ton replace, ie avec les options du replace derrière!

autrement dit, tu n'as pas une ligne avec seulement worksheets(1).cells.replace ?

worksheets(1).cells remplace le selection du replace.

A+
Ajouter un commentaire
Réponse
+0
moins plus
je suis nul en informatique mais quesque ça veut dire Worksheets(1).Cells.Replace ??? comment on fait pour modifier ect ?????
pijaku- 15 févr. 2012 à 08:21
Bonjour,
La fonction Replace sert à remplacer, dans une chaine, une sous chaine par une autre.
Voici le lien pour la syntaxe : http://msdn.microsoft.com/fr-fr/library/bt3szac5(v=vs.80).aspx
Les paramètres obligatoires sont Expression (la chaîne dans laquelle on souhaite remplacer quelque chose), Find (ce que l'on souhaite remplacer), Replacement (ce par quoi on va remplacer).
Exemple :
Dans la phrase "Bonjour, comment allez vous", je souhaite remplacer les "ou" par des "ai", je fais :
Dim StrExpression As String  
StrExpression = Replace("Bonjour, comment allez vous", "ou", "ai") 
MsgBox StrExpression

J'obtiens donc : "Bonjair, comment allez vais".

La syntaxe : Worksheets(1).Cells.Replace va remplacer (comme Ctrl+H ou Editions/Remplacer) dans toutes les cellules de la feuille 1...
OK?
Ajouter un commentaire
Réponse
-1
moins plus
Bonsoir,

essaye :
Worksheets(1).Cells.Replace .......
directement sans passer par des select

A+
Ajouter un commentaire
Réponse
-2
moins plus
Bonjour moi aussi j'ai un soucis de même nature cependant ce n'est pas moi qui ai créer la macro est-ce que quelqu'un pourrait m'aider?

Qu'est-ce cette macro veut dire?

La feuille se présente ainsi :

' Actualiser Macro
' Macro enregistrée le 04/11/04 par S033271
'

'
ActiveWindow.ScrollRow = 2
Range("A3:X3").Select
** Selection.AutoFill Destination:=Range("etp_calculés_01_12"), Type:=xlFillDefault
Range("etp_calculés_01_12").Select
ActiveWindow.SmallScroll ToRight:=47
ActiveWindow.ScrollRow = 2
Range("CM3:CN3").Select
Selection.AutoFill Destination:=Range("etp_mois_cumulés"), Type:=xlFillDefault
Range("etp_mois_cumulés").Select
ActiveWindow.ScrollRow = 2
Range("Z3").Select

Call Maj_TCD
Sheets("Détail affectations").Activate
Range("Z3").Select

End Sub

Message d'erreur
Erreur d'execution '1004'

La méthode autofill de la classe Range a échoué
Ajouter un commentaire
Réponse
-2
moins plus
salut a tous

j'ai un super truc qui m'agace, message erreur 1004 "la methode select de la classe range a echoué"

la macro ne demande rien d'autre que :
"range("A2").select

quand je lance j'ai le message d'erreur ...mais le plus barban c'est que cela fonctionne avec d'autre classeur ??????

c'ets donc pas un probleme d'installation

qqu a -t-il une solution
Ajouter un commentaire
Ce document intitulé « Erreur d'éxecution 1004 » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?