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
A voir également:
- La méthode autofilter de la classe range a échoué
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Word
- Dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? - Forum Réseaux sociaux
- Input signal out of range - Forum Ecran
- La méthode range de l'objet _global a échoué ✓ - Forum VB / VBA
- Out of range - Forum Windows
3 réponses
Bonjour,
Peux tu tester ceci ?
PS: Tu as bien des entêtes de colonne ?
PS2 : Tu n'as pas de cellules vides (dans ta ligne de colonnes) ?
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 :
erreur 57121 : erreur définie par l'application ou par 'lobjet.
As tu une idée d'ou elle vient ?
Merci pour ton aide
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 ?
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
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...)
'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...)