Se connecter avec
S'enregistrer | Connectez-vous

Macro Excel - VBA - Error 1004

Dernière réponse : dans Le monde de Windows

Bonjour,

Je me retrouve coincée avec mon fichier Excel, car la macro qui fonctionnait auparavant, ne marche plus depuis que je l'ai renommé.

Sub FilterSIEBELData()
Dim R As Range
Set R = ThisWorkbook.Sheets("MCS Sales").Range("A1:Z1")
Set R = Range(R, R.End(xlDown).End(xlToRight))
R.AdvancedFilter xlFilterCopy, ThisWorkbook.Sheets("Tables de référence").Range("E2:E37"), ThisWorkbook.Sheets("SIEBEL FY09").Range("A1")
End Sub

L'erreur 1004 est la suivant : The extract range has a missing or illegal field name.

Est-ce que quelqu'un aurait des solutions à me proposer svp???
Merci beaucoup pour votre temps!

Isa

Autres pages sur : macro excel vba error 1004

Lassé par la pub ? Créez un compte

salut!

ton erreur 1004, ne serais se pas parce qu'il ne trouve plus ta feuille?
avait tu renommé ta feuille ou autre????

il ne trouve plus la feuille que tu veux sélectionner! Avant de sélectionner cette feuille tu fait un worbook("nom").Activate. En tout quand j'ai cette erreur si je fais ça je ne l'ai plus. Mais ça peux venir d'autre part aussi!

et les macro de excel, eux ils font partie du langage de programmation Visual Basic (VBA).
et j'ai trouver ceci!
peut être que cela peut t'aider:

  1. Public Function CopierFeuilleExcel(ByVal sMonBookDeCopie As String, ByVal sMonBookDeDestination As String, _
  2. ByVal sNomFeuilleACopier As String, ByVal sNomFeuilleCopier As String)
  3.  
  4. If Dir(sMonBookDeCopie) <> "" And Dir(sMonBookDeDestination) <> "" Then
  5.  
  6. Dim xlApp As Excel.Application
  7. Dim xlBookDeCopie As Workbook
  8. Dim xlBookDeDestination As Workbook
  9. Dim i As Integer
  10. Dim j As Integer
  11.  
  12. If sMonBookDeCopie <> sMonBookDeDestination Then
  13.  
  14. Set xlApp = CreateObject("Excel.Application")
  15. Set xlBookDeCopie = xlApp.Workbooks.Open(sMonBookDeCopie)
  16. Set xlBookDeDestination = xlApp.Workbooks.Open(sMonBookDeDestination)
  17.  
  18. For i = 1 To xlBookDeCopie.Sheets.Count
  19.  
  20. If xlBookDeCopie.Sheets(i).Name = sNomFeuilleACopier Then
  21.  
  22. xlBookDeCopie.Activate
  23. xlBookDeCopie.Sheets(sNomFeuilleACopier).Select
  24. xlBookDeCopie.Sheets(sNomFeuilleACopier).Copy After:=xlBookDeDestination. _
  25. Sheets(xlBookDeDestination.Sheets.Count)
  26.  
  27. For j = 1 To xlBookDeDestination.Sheets.Count
  28.  
  29. If xlBookDeDestination.Sheets(j).Name = sNomFeuilleCopier Then
  30.  
  31. MsgBox "La feuille copiée n'a pas pu être renommée, ce nom existe déjà!", vbCritical
  32.  
  33. Exit For
  34.  
  35. ElseIf j = xlBookDeDestination.Sheets.Count Then
  36.  
  37. xlBookDeDestination.Sheets(j).Name = sNomFeuilleCopier
  38.  
  39. End If
  40.  
  41. Next j
  42.  
  43. Exit For
  44.  
  45. ElseIf i = xlBookDeCopie.Sheets.Count Then
  46.  
  47. MsgBox "La feuille à copier n'existe pas!", vbCritical
  48.  
  49. End If
  50.  
  51. Next i
  52.  
  53. xlBookDeCopie.Close True
  54. xlBookDeDestination.Close True
  55. xlApp.Quit
  56.  
  57. Set xlBookDeCopie = Nothing
  58. Set xlBookDeDestination = Nothing
  59. Set xlApp = Nothing
  60.  
  61. ElseIf sMonBookDeCopie = sMonBookDeDestination Then
  62.  
  63. Set xlApp = CreateObject("Excel.Application")
  64. Set xlBookDeCopie = xlApp.Workbooks.Open(sMonBookDeCopie)
  65.  
  66. For i = 1 To xlBookDeCopie.Sheets.Count
  67.  
  68. If xlBookDeCopie.Sheets(i).Name = sNomFeuilleACopier Then
  69.  
  70. xlBookDeCopie.Activate
  71. xlBookDeCopie.Sheets(sNomFeuilleACopier).Select
  72. xlBookDeCopie.Sheets(sNomFeuilleACopier).Copy After:=xlBookDeCopie. _
  73. Sheets(xlBookDeCopie.Sheets.Count)
  74.  
  75. For j = 1 To xlBookDeCopie.Sheets.Count
  76.  
  77. If xlBookDeCopie.Sheets(j).Name = sNomFeuilleCopier Then
  78.  
  79. MsgBox "La feuille copiée n'a pas pu être renommée, ce nom existe déjà!", vbCritical
  80.  
  81. Exit For
  82.  
  83. ElseIf j = xlBookDeCopie.Sheets.Count Then
  84.  
  85. xlBookDeCopie.Sheets(j).Name = sNomFeuilleCopier
  86.  
  87. End If
  88.  
  89. Next j
  90.  
  91. Exit For
  92.  
  93. ElseIf i = xlBookDeCopie.Sheets.Count Then
  94.  
  95. MsgBox "La feuille à copier n'existe pas!", vbCritical
  96.  
  97. End If
  98.  
  99. Next i
  100.  
  101. xlBookDeCopie.Close True
  102. xlApp.Quit
  103.  
  104. Set xlBookDeCopie = Nothing
  105. Set xlApp = Nothing
  106.  
  107. End If
  108.  
  109. Else
  110.  
  111. MsgBox "Le fichier n'existe pas, vérifier le chemin !", vbCritical
  112.  
  113. End If
  114.  
  115. End Function
  116.  
  117. 'Exemple d'utilisation
  118. Private Sub CommandButton1_Click()
  119.  
  120. Call CopierFeuilleExcel("C:\Classeur3.xls", "C:\Classeur3.xls", "Feuil2", "CopieDeFeuil2")
  121.  
  122. Call CopierFeuilleExcel("C:\Classeur3.xls", "C:\Classeur3.xls", "Feuil2", "CopieDeFeuil2")
  123.  
  124. End Sub
Lassé par la pub ? Créez un compte