Erreur sur un code VBA (AutoFilter)
Résolu
Ippo
-
Ippo -
Ippo -
Bonjour à tous,
J'ai une erreur sur le code ( encore merci à Lepingou d'ailleur) suivant ( sur la ligne en gras) :
c'est une erreur de type 1004 : erreur d'éxécution la méthode autofilter de la classe range a échoué.
Savez-vous d'ou cela peut il venir ?
Merci
EDIT : Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
J'ai une erreur sur le code ( encore merci à Lepingou d'ailleur) suivant ( sur la ligne en gras) :
'Option Explicit
Sub RecupValeurNouvCla()
Dim chemso As String, chemci As String
Dim nomso As String, nomci As String
Dim shco As String, shci As String
Dim chxcol As String, datref As Date, liginfo As Integer
liginfo = Cells(Rows.Count, 1).End(xlUp).Row + 1
Sheets("sheet1").Select
chemso = Range("B2"): chemci = Range("C2")
nomso = Range("B3") & "." & Range("b4"): nomci = Range("C3") & "_" & liginfo - 14 & "." & Range("C4")
shso = Range("B5")
chxcol = Range(Range("B6") & 1).Column: datref = Range("B7")
Application.ScreenUpdating = False
' Récupère les valeurs selon date de référence
Workbooks.Open (chemso & "\" & nomso)
<bold>Range("A1").AutoFilter Field:=chxcol, Criteria1:="<" & CLng(datref)</bold>Cells.SpecialCells(xlCellTypeVisible).Copy Destination:=Workbooks("Ippo_ccm_CmdeRecupv2.xlsm").Sheets("RecupDuJour").Cells(2, 1)
Workbooks(nomso).Close SaveChanges:=False
'
End Sub
c'est une erreur de type 1004 : erreur d'éxécution la méthode autofilter de la classe range a échoué.
Savez-vous d'ou cela peut il venir ?
Merci
EDIT : Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
3 réponses
-
Bonjour,
Peux tu tester ceci ?'Option Explicit Sub RecupValeurNouvCla() Dim chemso As String Dim chemci As String Dim nomso As String Dim nomci As String Dim shco As String Dim shci As String Dim chxcol As String Dim datref As Date Dim liginfo As Integer Dim critere As String liginfo = Cells(Rows.Count, 1).End(xlUp).Row + 1 Sheets("sheet1").Select chemso = Range("B2"): chemci = Range("C2") nomso = Range("B3") & "." & Range("b4"): nomci = Range("C3") & "_" & liginfo - 14 & "." & Range("C4") shso = Range("B5") chxcol = Range(Range("B6") & 1).Column: datref = Range("B7") Application.ScreenUpdating = False ' Récupère les valeurs selon date de référence Workbooks.Open (chemso & "\" & nomso) critere = "<" & CLng(datref) Range("A1").AutoFilter Field:=chxcol, Criteria1:=critere Cells.SpecialCells(xlCellTypeVisible).Copy Destination:=Workbooks("Ippo_ccm_CmdeRecupv2.xlsm").Sheets("RecupDuJour").Cells(2, 1) Workbooks(nomso).Close SaveChanges:=False End Sub
PS: Tu as bien des entêtes de colonne ?
PS2 : Tu n'as pas de cellules vides (dans ta ligne de colonnes) ?
-
Bonjour,
Merci pour ta réponse le problème venait en effet de mon entête de colonne qui n'était plus en A1.
Par contre j'ai eu une erreur sur la ligne du dessous :
Cells.SpecialCells(xlCellTypeVisible).Copy Destination:=Workbooks("Ippo_ccm_CmdeRecupv2.xlsm").Sheets("RecupDuJour").Cells(2, 1)
erreur 57121 : erreur définie par l'application ou par 'lobjet.
As tu une idée d'ou elle vient ?
Merci pour ton aide -
Oui j'ai vérifié plusieurs fois, c'est bien les mêmes noms. Le classeur Ippo_ccm_CmdeRecupv2.xlsm est ouvert car c'est celui ou il y a le module.
D'autres piste ?-
Sub copyFiltre() Dim Fsource As Worksheet Dim Fcible As Worksheet Dim WkbCible As Workbook Set Fsource = ActiveSheet Set WkbCible = Workbooks("Ippo_ccm_CmdeRecupv2.xlsm") Set Fcible = WkbCible.Sheets("RecupDuJour") Fsource.Cells.SpecialCells(xlCellTypeVisible).Copy Destination:=Fcible.Cells(2, 1) End Sub -
-
Tu colles
'Déclaration des variables Dim Fsource As Worksheet Dim Fcible As Worksheet Dim WkbCible As Workbook 'Initialisation des variables Set Fsource = ActiveSheet Set WkbCible = Workbooks("Ippo_ccm_CmdeRecupv2.xlsm") Set Fcible = WkbCible.Sheets("RecupDuJour") 'Copy des cellules visibles Fsource.Cells.SpecialCells(xlCellTypeVisible).Copy Destination:=Fcible.Cells(2, 1)
A la place de ta ligne de code qui pose problème...
(l'ideal.. serait quand même de placer les déclarations de variables au début de ton script...) -
-
-