Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Débutant en VBS, je viens vous demandez de l'aide pour terminer mon script
Le voici :
Code:
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "C:\Users\Internet\Desktop\scriptvbs\testvbs\test1.xls", "C:\Users\Internet\Desktop\scriptvbs\testvbs2\"
Set appExcel = CreateObject("Excel.Application")
Set wbExcel = appExcel.Workbooks.Open("C:\Users\Internet\Desktop\scriptvbs\testvbs2\test1.xls")
wbExcel.Worksheets("two").Delete
wbExcel.Close
appExcel.Quit
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing
Pour l'instant,
il copie correctement le classeur,
il me demande si je souhaite ouvrir le classeur en lecture-écriture ou non, demande de confirmation pour supprimer la feuille et enfin demande de sauver et quitter (terminer le processus)
Mais ce que je souhaiterais, c'est que le script soit "invisible", donc aucunes boites de dialogue 😕
Le script doit aussi supprimer plusieurs onglet normalement mais je n'arrive pas ajouter plusieurs feuille dans la sélection à supprimer, j'ai pourtant essayer :
Je vous remercie d'avance pour l'aide que vous pouvez m'apporter
Cordialement,
Volix.
Je tourne sous XP
J'ai effectuer des recherches avant de venir poster ici,
Je suis en Stage (en 1ere Bac Pro SEN) et une de mes tâches consiste donc à faire un script VBS, mais n'ayant jamais toucher au VBS de ma vie, je bloque
Re : VBS, copie d'un classeur et suppression de plusieurs onglets sans demande de con
Bonjour,
modifie peut être ceci :
Code:
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "C:\Users\Internet\Desktop\scriptvbs\testvbs\test1.xls", "C:\Users\Internet\Desktop\scriptvbs\testvbs2\"
Set appExcel = CreateObject("Excel.Application")
Set wbExcel = appExcel.Workbooks.Open("C:\Users\Internet\Desktop\scriptvbs\testvbs2\test1.xls", ReadOnly:=False)
Application.DisplayAlerts = False
wbExcel.Worksheets("two").Delete
Application.DisplayAlerts = True
wbExcel.Close False 'pour ne pas enregistrer, True pour enregistrer
appExcel.Quit
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing
Au bout la vraie solution sera surement un "mix" de nos différentes propositions
En effet , les lignes avec DisplayAlerts doivent entourer les parties qui génèrent des messages que tu ne souhaites pas voir comme précisé par Softmama, mais pas avec Application (tu es dans un script VBS, il n'y a pas d'Application par défaut je crois) mais avec appExcel
L'ajout de False après wbExcel.Close t'évitera tout message, comme proposé par Pierrot
Pour la suppression des feuilles je crois que ce que je t'ai proposé devrait fonctionner...
Re : VBS, copie d'un classeur et suppression de plusieurs onglets sans demande de con
Bonjour à tous,
à peine arriver a mon bureau, j'ai tous de suite commencer des tests grâces à vous !
Les voici :
VB:
Set appExcel = CreateObject("Excel.Application")
appExcel.DisplayAlerts = False
Set wbExcel = appExcel.Workbooks.Open("d:\Documents and Settings\S0029819\Bureau\testvbs2\Parc Trixell.xls")
wbExcel.Sheets(Array("READ ME", "Graph2", "tcd-grah", "180810controlerebut", "modèle_age", "UC supprimée")).Select
appExcel.ActiveWindow.SelectedSheets.Delete
appExcel.DisplayAlerts = True
wbExcel.Close True
appExcel.Quit
Mille merci pour la sélection de plusieurs feuilles !!
Mais ensuite... une fenêtre enregistrer sous, s'ouvre (Aïe !)
J'enregistre, je remplace.
Puis une nouvelle fenêtre pour enregistrer les modification s'ouvre à,
je sélectionne oui, donc nouvelle fenêtre enregistrer sous...
le fichier existe déjà, remplacer ? Oui.
Et la : Impossible d'enregistrer se document, il a été ouvert en lecture seul...
VB:
appExcel.DisplayAlerts = False
Set wbExcel = appExcel.Workbooks.Open("d:\Documents and Settings\S0029819\Bureau\testvbs2\Parc Trixell.xls")
appExcel.DisplayAlerts = True
J'ai aussi mis le False avant d'ouvir le classeur et le true juste après et là j'ai juste le message de confirmation pour les feuilles, mais en final le classeur à toujours toutes ses feuilles 😕
Test suivant :
VB:
Sub Truc()
Application.DisplayAlerts = False
Set appExcel = CreateObject("Excel.Application")
Set wbExcel = appExcel.Workbooks.Open("d:\Documents and Settings\S0029819\Bureau\testvbs2\Parc Trixell.xls")
wbExcel.Sheets(Array("READ ME", "Graph2", "tcd-grah", "180810controlerebut", "modèle_age", "UC supprimée")).Delete
Application.DisplayAlerts = True
End Sub
Set wbExcel.Close=True
Set appExcel.Quit
Je ne sais pas si le code de Soft-mama fonctionne car,
j'ai tous de suite des erreurs, problème au niveau de la fermeture, j'ai beaux essayer,
VB:
wbExcel.Close True
wbExcel.Close = True
wbExcel.Close=True
Set wbExcel.Close True
Set wbExcel.Close = True
Set wbExcel.Close=True
Toujours problème(erreurs), soit :
'Objet Requis :'wbExcel' ou Erreur : '=' attendu
Le ReadOnly:=False,
Je n'est pas d'erreur mais j'ai toujours un message pour ouvrir en lecture-seul ou lecture-écriture
Si je rajoute
wbExcel.Close False, mon fichier ne sera pas sauvegarder, c'est bien cela ?
J'espère avoir été le plus claire possible 😱
Je vous remercie d'avance
Cordialement,
Volix
Re : VBS, copie d'un classeur et suppression de plusieurs onglets sans demande de con
Re,
perso, plutôt que faire une copie du fichier, j'ouvre le fichier original en lecture seule et je fais directement un enregistrer sous.... Maintenant jamais trop travaillé directment en vbs... A voir si là n'est pas le problème....
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD