Sélectionner le classeur ouvert pour exécuter le programme

Résolu/Fermé
Yolasyos Messages postés 15 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 26 février 2014 - 26 févr. 2014 à 08:26
Yolasyos Messages postés 15 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 26 février 2014 - 26 févr. 2014 à 13:42
Bonjour,

Je vous explique d'abord ce que je suis entrain de faire:

J'ai un fichier excel qui doit rester le même. Je copie une feuille de ce fichier excel dans un autre classeur, puis je renomme mon fichier excel et je voudrais éliminer toutes les lignes où il y a un 0.
Je réussis à copier la feuille et renommer le nouveau classeur, par contre le code qui me supprime les lignes où il y a des 0, l'exécute sur mon premier classeur. Alors que moi je veux qui les supprime dans le nouveau.

Donc j'ai voulu activer ou sélectionner le nouveau classeur pour pouvoir exécuter le code qui supprime les lignes où il y a les 0, mais ça ne marche pas.
NB: Je suis qu'un débutant de VBA.

SVP j'ai besoin d'aide.

Je vous montre mon code:

Sub export()
'=> Copier et coller la feuille des risques identifiés

Workbooks("Outil_de_pilotage_des_risques_V3.xlsm").Worksheets("Risques identifiés postes").Copy

'=> Nommer et séléctionner le nouveau classeur

ActiveWorkbook.SaveAs Filename:="Risques identifiés projet"

ActiveWorkbook.SaveAs FileFormat:=52

Workbooks("Risques identifiés projet.xlsm").Worksheets("Risques identifiés postes").Select

'=> Suppression des lignes valeurs nulles
Dim i As Long
Application.ScreenUpdating = False
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Cells(i, 2) = 0 Then Rows(i).Delete
Next i
Application.ScreenUpdating = True


End Sub

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
26 févr. 2014 à 09:55
Bonjour,

le code marche, quelque modifs qui n'ont rien a voir:

Sub export()
Dim i As Long

Application.ScreenUpdating = False

'=> Copier et coller la feuille des risques identifiés
'????? y pas le coller, pas utile
'Workbooks("Outil_de_pilotage_des_risques_V3.xlsm").Worksheets("Risques identifiés postes").Copy

'=> Nommer et séléctionner le nouveau classeur
'mettre nom et format sur meme ligne autrement 2 fichiers: 1 xlsx et 1 xlsm
ActiveWorkbook.SaveAs Filename:="Risques identifiés projet", FileFormat:=52

Workbooks("Risques identifiés projet.xlsm").Worksheets("Risques identifiés postes").Select

'=> Suppression des lignes valeurs nulles
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Cells(i, 2) = 0 Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
End Sub
0
Yolasyos Messages postés 15 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 26 février 2014
26 févr. 2014 à 10:02
Le code marche mais sur le même classeur.
Moi je voudrais copier la feuille sur un autre classeur que je nomme Risques identifiés projet puis j'exécute le programme de suppression des lignes de valeurs nulles.

Merci pour ton aide si tu peux juste me montrer comment je peux faire ça.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 26/02/2014 à 11:05
Re,

actuellement vous renommez le classeur a la sauvegarde et le code supprime bien les lignes avec cellule a 0 colonne B sur le classeur nomme Risques identifiés projet, pas de modif dans le classeur d'origine.
0
Yolasyos Messages postés 15 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 26 février 2014
26 févr. 2014 à 11:08
Re,

Oui.
Au départ mon classeur est nommé outil de pilotage des risques, il le renomme Risques identifiés projet et supprime bien les lignes ou il y a les 0. Par contre moi je voudrais juste copier la feuille du classeur outil de pilotage des risques sur un autre classeur que je veux nommer Risques identifiés projet, puis procéder à la suppression des lignes ou il y a des 0.
Il manque juste un petit truc.

Merci,
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 26/02/2014 à 11:55
Re,

Il manque juste un petit truc. Non, c'est pas du tout le meme code, sauf la sup des lignes. Je vous fais un code
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
26 févr. 2014 à 11:56
Re,

avec ce type de programmation, presque le meme code:

si vous n'avez pas besoin du code VBA dans le nouveau classeur, enlevez: , FileFormat:=52

Sub export()
Dim NewClasseur As Workbook

ThisWorkbook.Worksheets("Risques identifiés postes").Copy
Set NewClasseur = ActiveWorkbook
NewClasseur.SaveAs Filename:="Risques identifiés projet", FileFormat:=52
'=> Suppression des lignes valeurs nulles
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Cells(i, 2) = 0 Then Rows(i).Delete
Next i

End Sub
0