Merci d'avoir tester ; le message est "la méthode Autofilter de la classe Range a échoué".
-- Catherine
"Ellimac" wrote:
Bonjour,
Cela fonctionne parfaitement chez moi. Quel message est renvoyé ?
Camille
"CAIRIS" wrote:
Bonjour et merci d'avance pour votre aide
J'essaie de supprimer par macro (Excel 2003) les lignes filtrées dans un fichier (nom du ficheir CA.xls, nom de l'onglet CA.xls).
J'ai essayé d'adapter du code trouver sur le forum mais mon niveau en VBA est insuffisant.
Ci après le code : Rows("1:1").Select Selection.AutoFilter Field:=7, Criteria1:="------------" Range("2:5000").SpecialCells(xlCellTypeVisible).Delete
Cela plante sur la dernière ligne. -- Catherine
CAIRIS
En envoyant le post précédent, je me suis rendue compte que mon filtre était erroné (il ne s'appliquait pas à la bonne colonne) ; après correction, je relance la macro et le massage d'erreur est : "la méthode Range de l'objet "_global" a échoué" -- Catherine
"Ellimac" wrote:
Bonjour,
Cela fonctionne parfaitement chez moi. Quel message est renvoyé ?
Camille
"CAIRIS" wrote:
Bonjour et merci d'avance pour votre aide
J'essaie de supprimer par macro (Excel 2003) les lignes filtrées dans un fichier (nom du ficheir CA.xls, nom de l'onglet CA.xls).
J'ai essayé d'adapter du code trouver sur le forum mais mon niveau en VBA est insuffisant.
Ci après le code : Rows("1:1").Select Selection.AutoFilter Field:=7, Criteria1:="------------" Range("2:5000").SpecialCells(xlCellTypeVisible).Delete
Cela plante sur la dernière ligne. -- Catherine
En envoyant le post précédent, je me suis rendue compte que mon filtre était
erroné (il ne s'appliquait pas à la bonne colonne) ; après correction, je
relance la macro et le massage d'erreur est : "la méthode Range de l'objet
"_global" a échoué"
--
Catherine
"Ellimac" wrote:
Bonjour,
Cela fonctionne parfaitement chez moi. Quel message est renvoyé ?
Camille
"CAIRIS" wrote:
Bonjour et merci d'avance pour votre aide
J'essaie de supprimer par macro (Excel 2003) les lignes filtrées dans un
fichier (nom du ficheir CA.xls, nom de l'onglet CA.xls).
J'ai essayé d'adapter du code trouver sur le forum mais mon niveau en VBA
est insuffisant.
Ci après le code :
Rows("1:1").Select
Selection.AutoFilter Field:=7, Criteria1:="------------"
Range("2:5000").SpecialCells(xlCellTypeVisible).Delete
En envoyant le post précédent, je me suis rendue compte que mon filtre était erroné (il ne s'appliquait pas à la bonne colonne) ; après correction, je relance la macro et le massage d'erreur est : "la méthode Range de l'objet "_global" a échoué" -- Catherine
"Ellimac" wrote:
Bonjour,
Cela fonctionne parfaitement chez moi. Quel message est renvoyé ?
Camille
"CAIRIS" wrote:
Bonjour et merci d'avance pour votre aide
J'essaie de supprimer par macro (Excel 2003) les lignes filtrées dans un fichier (nom du ficheir CA.xls, nom de l'onglet CA.xls).
J'ai essayé d'adapter du code trouver sur le forum mais mon niveau en VBA est insuffisant.
Ci après le code : Rows("1:1").Select Selection.AutoFilter Field:=7, Criteria1:="------------" Range("2:5000").SpecialCells(xlCellTypeVisible).Delete
Cela plante sur la dernière ligne. -- Catherine
mabouille
Bonjour, Essaie ce code, un peu bourin (je ne suis pas expert) mais qui marche: '----------------- Sub Elimine_lignes_triées() 'La feuille Base contient au départ toutes les données, à la fin uniquement les lignes triées. C'est je crois ta feuille CA. 'La feuille Tri est une feuille "de service", à rajouter (vide) au fichier avant de lancer la macro.
'Pose et utilise le filtre dans Base Sheets("Base").Select Range("A1").Select Selection.CurrentRegion.Select 'sélectionne toute la plage de données de Base Selection.AutoFilter Field:=x, Criteria1:="yyyy" 'ici il faut saisir le critère de ton choix à la place des y, et le numéro de la colonne trieuse à la place du x 'par exemple : Selection.AutoFilter Field:=7, Criteria1:="----------" dans ton exemple 'attention, la 1ère ligne de Base n'est pas triée, elle est supposée contenir les intitulés des colonnes
'On copie le résultat dans la feuille de service 'La feuille tri ne contiendra alors que les lignes sélectionnées Selection.Copy Sheets("Tri").Select Cells.Select 'ça copie toutes les cases de Base, au cas où il y ait des choses oubliées dans Tri ActiveSheet.Paste Application.CutCopyMode = False
'On vide Base entièrement pour pouvoir y mettre les données triées Sheets("Base").Select Cells.Select Selection.ClearContents Selection.ClearContents 'il faut deux fois Clear Contents, une pour les données filtrées l'autre pour les données à éliminer
'On va chercher nos données épurées dans tri, Sheets("Tri").Select Cells.Select Selection.Copy
'On les copie dans Base qui a été vidée Sheets("Base").Select ActiveSheet.Paste Range("A1").Select 'pour faire beau
''On nettoie Tri complètement, pour alléger le fichier Sheets("Tri").Select Application.CutCopyMode = False Selection.ClearContents Range("A1").Select
'on revient à Base, toute neuve! Sheets("Base").Select End Sub
Tiens moi au courant Mabouille
Bonjour et merci d'avance pour votre aide
J'essaie de supprimer par macro (Excel 2003) les lignes filtrées dans un fichier (nom du ficheir CA.xls, nom de l'onglet CA.xls).
J'ai essayé d'adapter du code trouver sur le forum mais mon niveau en VBA est insuffisant.
Ci après le code : Rows("1:1").Select Selection.AutoFilter Field:=7, Criteria1:="------------" Range("2:5000").SpecialCells(xlCellTypeVisible).Delete
Cela plante sur la dernière ligne. -- Catherine
Bonjour,
Essaie ce code, un peu bourin (je ne suis pas expert) mais qui marche:
'-----------------
Sub Elimine_lignes_triées()
'La feuille Base contient au départ toutes les données, à la fin
uniquement les lignes triées. C'est je crois ta feuille CA.
'La feuille Tri est une feuille "de service", à rajouter (vide) au
fichier avant de lancer la macro.
'Pose et utilise le filtre dans Base
Sheets("Base").Select
Range("A1").Select
Selection.CurrentRegion.Select 'sélectionne toute la plage de données de
Base
Selection.AutoFilter Field:=x, Criteria1:="yyyy" 'ici il faut saisir le
critère de ton choix à la place des y, et le numéro de la colonne trieuse à
la place du x
'par exemple : Selection.AutoFilter Field:=7, Criteria1:="----------"
dans ton exemple
'attention, la 1ère ligne de Base n'est pas triée, elle est supposée
contenir les intitulés des colonnes
'On copie le résultat dans la feuille de service
'La feuille tri ne contiendra alors que les lignes sélectionnées
Selection.Copy
Sheets("Tri").Select
Cells.Select 'ça copie toutes les cases de Base, au cas où il y ait des
choses oubliées dans Tri
ActiveSheet.Paste
Application.CutCopyMode = False
'On vide Base entièrement pour pouvoir y mettre les données triées
Sheets("Base").Select
Cells.Select
Selection.ClearContents
Selection.ClearContents 'il faut deux fois Clear Contents, une pour les
données filtrées l'autre pour les données à éliminer
'On va chercher nos données épurées dans tri,
Sheets("Tri").Select
Cells.Select
Selection.Copy
'On les copie dans Base qui a été vidée
Sheets("Base").Select
ActiveSheet.Paste
Range("A1").Select 'pour faire beau
''On nettoie Tri complètement, pour alléger le fichier
Sheets("Tri").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
'on revient à Base, toute neuve!
Sheets("Base").Select
End Sub
Tiens moi au courant
Mabouille
Bonjour et merci d'avance pour votre aide
J'essaie de supprimer par macro (Excel 2003) les lignes filtrées dans un
fichier (nom du ficheir CA.xls, nom de l'onglet CA.xls).
J'ai essayé d'adapter du code trouver sur le forum mais mon niveau en VBA
est insuffisant.
Ci après le code :
Rows("1:1").Select
Selection.AutoFilter Field:=7, Criteria1:="------------"
Range("2:5000").SpecialCells(xlCellTypeVisible).Delete
Bonjour, Essaie ce code, un peu bourin (je ne suis pas expert) mais qui marche: '----------------- Sub Elimine_lignes_triées() 'La feuille Base contient au départ toutes les données, à la fin uniquement les lignes triées. C'est je crois ta feuille CA. 'La feuille Tri est une feuille "de service", à rajouter (vide) au fichier avant de lancer la macro.
'Pose et utilise le filtre dans Base Sheets("Base").Select Range("A1").Select Selection.CurrentRegion.Select 'sélectionne toute la plage de données de Base Selection.AutoFilter Field:=x, Criteria1:="yyyy" 'ici il faut saisir le critère de ton choix à la place des y, et le numéro de la colonne trieuse à la place du x 'par exemple : Selection.AutoFilter Field:=7, Criteria1:="----------" dans ton exemple 'attention, la 1ère ligne de Base n'est pas triée, elle est supposée contenir les intitulés des colonnes
'On copie le résultat dans la feuille de service 'La feuille tri ne contiendra alors que les lignes sélectionnées Selection.Copy Sheets("Tri").Select Cells.Select 'ça copie toutes les cases de Base, au cas où il y ait des choses oubliées dans Tri ActiveSheet.Paste Application.CutCopyMode = False
'On vide Base entièrement pour pouvoir y mettre les données triées Sheets("Base").Select Cells.Select Selection.ClearContents Selection.ClearContents 'il faut deux fois Clear Contents, une pour les données filtrées l'autre pour les données à éliminer
'On va chercher nos données épurées dans tri, Sheets("Tri").Select Cells.Select Selection.Copy
'On les copie dans Base qui a été vidée Sheets("Base").Select ActiveSheet.Paste Range("A1").Select 'pour faire beau
''On nettoie Tri complètement, pour alléger le fichier Sheets("Tri").Select Application.CutCopyMode = False Selection.ClearContents Range("A1").Select
'on revient à Base, toute neuve! Sheets("Base").Select End Sub
Tiens moi au courant Mabouille
Bonjour et merci d'avance pour votre aide
J'essaie de supprimer par macro (Excel 2003) les lignes filtrées dans un fichier (nom du ficheir CA.xls, nom de l'onglet CA.xls).
J'ai essayé d'adapter du code trouver sur le forum mais mon niveau en VBA est insuffisant.
Ci après le code : Rows("1:1").Select Selection.AutoFilter Field:=7, Criteria1:="------------" Range("2:5000").SpecialCells(xlCellTypeVisible).Delete