erreur "1004"

ppraud

XLDnaute Nouveau
Sur ce fichier j'ai l'erreur d'execution 1004.Je ne suis pas l'auteur de ce fichier et je ne connais pas grand chose en VBA.Cette erreur peut provenir d'ou.
Je ne peux pas joindre le fichier car trop lourd mais je peux l'envoyer par mail si quelcun veut le voir.

Merci
 
Dernière édition:

ppraud

XLDnaute Nouveau
Re : erreur "1004"

j'ai une erreur 9 "l'indice n'appartient pas a la selection"
Sub litEpreuvesLogica()
'
Dim nbLignes As Integer, i As Integer
MsgBox ("Le traitements est long." & vbCrLf & "Patientez jusqu'au prochain message")
Application.StatusBar = "Patientez pendant la mise à jour des épreuves à partir de Logica"

Application.ScreenUpdating = False
Application.EnableEvents = False

With ThisWorkbook.Sheets("Epreuve")
.Select
RequèteEpreuves
Application.StatusBar = "Patientez pendant la mise en forme des épreuves"
' met à jour paramètre salle
nbLignes = Range("A1").CurrentRegion.Rows.Count
.Range(Cells(2, 9), Cells(nbLignes, 28)).ClearContents
.Cells(2, 7).AutoFill Range(Cells(2, 7), Cells(nbLignes, 7))
.Cells(2, 8).AutoFill Range(Cells(2, 8), Cells(nbLignes, 8))
Worksheets("Epreuve").Calculate
' trie famille, salle, ordre édition
.Range("A1").Select
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("G2") _
, Order2:=xlAscending, Key3:=Range("E2"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End With
Private Sub RequèteEpreuves()
Dim i As Integer
Dim str_Connection As String
Dim str_SqlFrom As String

On Error GoTo erReur

VariablesRequètes
' supprime définitions multiples éventuelles
For i = ActiveSheet.QueryTables.Count To 1 Step -1
ActiveSheet.QueryTables(i).Delete
Next
'connection
str_Connection = "ODBC;DSN=MS Access Database;DBQ=" & _
str_NomBaseDonnées & ";DefaultDir=" & str_RepBase & ";DriverId=28"
str_SqlFrom = "FROM `" & str_NomBase & "`.tEpreuve tEpreuve"

With ActiveSheet.QueryTables.Add(Connection:=Array(Array(str_Connection) _
, Array("1;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), _
Destination:=Range("A1"))
.Sql = Array( _
"SELECT tEpreuve.CodeAppel, tEpreuve.NomEpreuve, tEpreuve.CodeFamille, tEpreuve.CodeCategorie, tEpreuve.OrdreEdit,tEpreuve.FormatPerf" _
& Chr(13) & "" & Chr(10), _
str_SqlFrom _
& Chr(13) & "" & Chr(10) & "WHERE (tEpreuve.NoEpreuve Not Like '%M')" _
, Chr(13) & "" & Chr(10) & "ORDER BY tEpreuve.CodeFamille, tEpreuve" _
, ".OrdreEdit")
.FieldNames = True
.RefreshStyle = xlOverwriteCells
.RowNumbers = False
.FillAdjacentFormulas = True
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = False
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = True
.SaveData = True
End With
ActiveSheet.QueryTables(1).Name = "DonnéesExternes1"
Exit Sub
erReur:
ErreurBaseDeDonnées
End Sub
 

ppraud

XLDnaute Nouveau
Re : erreur "1004"

Ereur d'execution 9 ca peut quoi avec le message'
"l'indice n'appartient pas a la selection"

Sub litEpreuvesLogica()
'
Dim nbLignes As Integer, i As Integer
MsgBox ("Le traitements est long." & vbCrLf & "Patientez jusqu'au prochain message")
Application.StatusBar = "Patientez pendant la mise à jour des épreuves à partir de Logica"

Application.ScreenUpdating = False
Application.EnableEvents = False

With ThisWorkbook.Sheets("Epreuve")

Merci
 

skoobi

XLDnaute Barbatruc
Re : erreur "1004"

Ereur d'execution 9 ca peut quoi avec le message'
"l'indice n'appartient pas a la selection"

Sub litEpreuvesLogica()
'
Dim nbLignes As Integer, i As Integer
MsgBox ("Le traitements est long." & vbCrLf & "Patientez jusqu'au prochain message")
Application.StatusBar = "Patientez pendant la mise à jour des épreuves à partir de Logica"

Application.ScreenUpdating = False
Application.EnableEvents = False

With ThisWorkbook.Sheets("Epreuve")

Merci

S'il s'agit de la ligne en gras, et bien la feuille Epreuve n'existe pas.
 

ppraud

XLDnaute Nouveau
Re : erreur "1004"

J'ai corrigé 2 erreur :je triais sur une colonne vide et un probléme de nommage de Feuilles.
La j'ai un autre probleme:j'ai une autre erreur d'execution 1004:"nom de champ introuvable ou incorrect dans la plage d'extraction" a ce niveau
" Worksheets("Epreuves").[A1].CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, CriteriaRange:=Range("AD1:AX2"), _
CopyToRange:=Range("AD4:AW4"), Unique:=False "
 

skoobi

XLDnaute Barbatruc
Re : erreur "1004"

Re bonjour ppraud,

la plage de destination du filtre élaboré doit avoir la même taille que la plage source (ou être un multiple).
Si CriteriaRange:=Range("AD1:AX2"),
alors par exemple: CopyToRange:=Range("AD4:AX5")
 

Bebere

XLDnaute Barbatruc
Re : erreur "1004"

bonjour Ppraud,Skoobi,Cbernardt
comme déjà dit Range("AD4:AW4") doit contenir les entêtes de colonnes de la base que tu veux extraire,peut importe l'ordre mais syntaxe identique
CopyToRange:=Range("AD4:AW4")
et on ne sait pas comment tu as écrit les critères
un exemple,svp
à bientôt
 

Statistiques des forums

Discussions
312 298
Messages
2 086 978
Membres
103 417
dernier inscrit
abaabdelghani