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

Erreur d'execution 1004 sur Macro

12 réponses
Avatar
Nicolas.k
Bonjour,

J'ai l'erreur 1004 sur un fichier excel. Je ne comprend pas tout le
code en question...


Voici un morceau du macro qui est mis en cause :


.Range("A2:AE474").AdvancedFilter Action:=3D _
xlFilterCopy, CriteriaRange:=3D. _
Range("Crit=E8res"), CopyToRange:=3D _
.Range("A1000"), Unique:=3DFalse



La totalit=E9 :


Sub Extraire()
Application.ScreenUpdating =3D False
Sheets("Menu").Range("Menu").ClearContents
With Sheets("Donn=E9es")
.Select
.Range("A2:AE474").AdvancedFilter Action:=3D _
xlFilterCopy, CriteriaRange:=3D. _
Range("Crit=E8res"), CopyToRange:=3D _
.Range("A1000"), Unique:=3DFalse
.Range("a1000:aa1100").Copy
End With
Sheets("Menu").Select
Range("a2").Select
Selection.PasteSpecial Paste:=3DxlValues, Operation:=3D _
xlNone, SkipBlanks:=3DFalse, Transpose:=3DFalse
Range("a1").Select
Sheets("Donn=E9es").Range("extrait").Clear
bAjour =3D True
End Sub



Pouvez vous m'aider ?

Merci d'avance.

Nicolas.k

10 réponses

1 2
Avatar
RCR
Quand tu presse sur aide au moment du message d'erreur que te dit t'il ? ...
Raph.

"Nicolas.k" a écrit dans le message de news:

Bonjour,

J'ai l'erreur 1004 sur un fichier excel. Je ne comprend pas tout le
code en question...


Voici un morceau du macro qui est mis en cause :


.Range("A2:AE474").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=. _
Range("Critères"), CopyToRange:= _
.Range("A1000"), Unique:úlse



La totalité :


Sub Extraire()
Application.ScreenUpdating = False
Sheets("Menu").Range("Menu").ClearContents
With Sheets("Données")
.Select
.Range("A2:AE474").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=. _
Range("Critères"), CopyToRange:= _
.Range("A1000"), Unique:úlse
.Range("a1000:aa1100").Copy
End With
Sheets("Menu").Select
Range("a2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:= _
xlNone, SkipBlanks:úlse, Transpose:úlse
Range("a1").Select
Sheets("Données").Range("extrait").Clear
bAjour = True
End Sub



Pouvez vous m'aider ?

Merci d'avance.

Nicolas.k
Avatar
Nicolas.k
Erreur définie par l'application ou par l'objet
Ce message s'affiche lorsqu'une erreur générée par la méthode Raise
ou l'instruction Error ne correspond pas à une erreur ..... etc


rien de bien interessant !
Avatar
RCR
boh ... jusque ici la seul chose que je vois c'est que bAjour n'est pas
déclarer comme booléen ... si non ... quand tu fit un pas à pas ... ça
s'arrête ou ...

moi pour déboger j'utilise:

- Le pas à pas
- les Msgbox (pratique pour savoir à tout moment ce que tu as comme valeur
dans une variable)
- et les On Error (quite à en mettre à chaque ligne et les enlever petit a
petit)

redit moi sur quel instruction il plante ... a mon avis ce n'est qu'une
question de type d'argument ...

Raph.

"Nicolas.k" a écrit dans le message de news:

Erreur définie par l'application ou par l'objet
Ce message s'affiche lorsqu'une erreur générée par la méthode Raise
ou l'instruction Error ne correspond pas à une erreur ..... etc


rien de bien interessant !
Avatar
michdenis
Bonjour Nicolas,


| Voici un morceau du macro qui est mis en cause :


| .Range("A2:AE474").AdvancedFilter Action:= _
| xlFilterCopy, CriteriaRange:=. _
| Range("Critères"), CopyToRange:= _
| .Range("A1000"), Unique:úlse

Je pense que ton problème doit venir de ta zone de critère :

Est-ce que ta plage "Critères" existe réellement comme plage nommée ?
Est-ce que l'étiquette dans ta zone de critère existe vraiment (pas d'erreur d'orthographe, respect de la casse...)

Est-ce que tu as une formule comme critère ?

Sans plus de précision, il est difficile de savoir quel est le problème avec ta zone de critères !


Salutations!
Avatar
Nicolas.k
Si si bAjour est déclaré. Voici le code en entier entier ! !




Dim bAjour As Boolean
Dim cFeuActive As String
Sub Changefeuilles()
ThisWorkbook.OnSheetDeactivate = "Traitements"
bAjour = False 'variable qui controle exactitude des données de
sélection
End Sub


Sub titreef()
End Sub


Sub traitements()
Application.ScreenUpdating = False
cFeuActive = ActiveSheet.Name
If ActiveSheet.Name = "macro" Then Exit Sub
If ActiveSheet.Name = "Données" Then
bAjour = False
Exit Sub
End If
If bAjour = False Then
Extraire
Sheets(cFeuActive).Select
End If
End Sub
Sub rechercherb()
ActiveSheet.Range("a3").Select
DialogSheets("Recherche").Show
End Sub

Sub cherche()
aliment = DialogSheets("Recherche").EditBoxes(1).Text

On Error GoTo GestionErreur
Cells.Find(What:=aliment, After:¬tiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder _
:=xlByColumns, SearchDirection:=xlNext, MatchCase:úlse _
).Select
DialogSheets("Recherche").EditBoxes(2).Text = ActiveCell.Value
Exit Sub
GestionErreur:
DialogSheets("Recherche").EditBoxes(2).Text = "--------- Aucun !
-----------"
End Sub

Sub décaler()
ActiveCell.Offset(0, 1).Select
End Sub

Sub lectureAliments()
echoix = Sheets("Utiles").Range("C3").Value
Select Case echoix
Case 1: ePos = 4
Case 2: ePos = 10
Case 3: ePos = 18
Case 4: ePos = 29
End Select
ActiveWindow.ScrollColumn = ePos
End Sub
Sub lecturemenu()
echoix = Sheets("Utiles").Range("C8").Value
Select Case echoix
Case 1: ePos = 4
Case 2: ePos = 10
Case 3: ePos = 18
Case 4: ePos = 29
Case 5: ePos = 35
Case 6: ePos = 43
End Select
ActiveWindow.ScrollColumn = ePos
End Sub

Sub lectureBesoins()
echoix = Sheets("Utiles").Range("C3").Value
Select Case echoix
Case 1: ePos = 3
Case 2: ePos = 7
Case 3: ePos = 15
End Select
ActiveWindow.ScrollColumn = ePos
End Sub

Sub RAZ()
If MsgBox("Effacer les masses ?", vbOKCancel + vbCritical) = 1 Then
_
Sheets("Données").Range("B3:C500").ClearContents
End Sub

Sub Extraire()
Application.ScreenUpdating = False
Sheets("Menu").Range("Menu").ClearContents
With Sheets("Données")
.Select
.Range("A2:AE474").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=. _
Range("Critères"), CopyToRange:= _
.Range("A1000"), Unique:úlse
.Range("a1000:aa1100").Copy
End With
Sheets("Menu").Select
Range("a2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:= _
xlNone, SkipBlanks:úlse, Transpose:úlse
Range("a1").Select
Sheets("Données").Range("extrait").Clear
bAjour = True
End Sub
Avatar
Nicolas.k
Il bloque ici :


xlFilterCopy, CriteriaRange:=. _
Range("Critères"), CopyToRange:= _
.Range("A1000"), Unique:úlse
Avatar
Nicolas.k
Et l'erreur 1004 n'apparait que quand je change de feuille.


Nicolas.k
Avatar
RCR
Ah oui ... j'ai déja eu le problème a ce moment la ...

mais je ne sait plus vraiment ce que j'ai fait pour y remédier ... essai
peut être de mettre une instruction qui séléctionne la feuille avant chaque
instruction qui pose problème ...

je te retien au courrent :-) ...


"Nicolas.k" a écrit dans le message de news:

Et l'erreur 1004 n'apparait que quand je change de feuille.


Nicolas.k



Avatar
Nicolas.k
N'etant pas spécialiste du domaine, pourrais tu detailler ?

merci!


Nicolas
Avatar
Patrick BASTARD
Bonjour, *Nicolas.k*

ta feuille "Données" n'est-elle pas protégée ?

--
Bien amicordialement,
P. Bastard


Bonjour,

J'ai l'erreur 1004 sur un fichier excel. Je ne comprend pas tout le
code en question...


Voici un morceau du macro qui est mis en cause :


.Range("A2:AE474").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=. _
Range("Critères"), CopyToRange:= _
.Range("A1000"), Unique:úlse



La totalité :


Sub Extraire()
Application.ScreenUpdating = False
Sheets("Menu").Range("Menu").ClearContents
With Sheets("Données")
.Select
.Range("A2:AE474").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=. _
Range("Critères"), CopyToRange:= _
.Range("A1000"), Unique:úlse
.Range("a1000:aa1100").Copy
End With
Sheets("Menu").Select
Range("a2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:= _
xlNone, SkipBlanks:úlse, Transpose:úlse
Range("a1").Select
Sheets("Données").Range("extrait").Clear
bAjour = True
End Sub



Pouvez vous m'aider ?

Merci d'avance.

Nicolas.k


1 2