Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1483 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS][Résolu] Supprimer une ligne dans Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBS][Résolu] Supprimer une ligne dans Excel

n°1898752
cinejapan
Posté le 24-06-2009 à 16:46:48  profilanswer
 

Je desire supprimer un ensemble de ligne dans Excel, le tout piloté par un script en VBS.
 
Je sais ouvrir un fichier Excel:
 
Set objExcel = CreateObject("Excel.Application" )  
objExcel.Visible = True
objExcel.DisplayAlerts = False
Set objWorkbook = objExcel.Workbooks.Open("c:\MonFichier.xls" )
 
et y écrire des données:
 
' Ecriture dans excel
Set onglet = objExcel.Workbooks(1).Worksheets(1)
onglet.Cells(1, 1).Value = "A"
onglet.Cells(2, 1).Value = "B"
 
Mais comment supprimer une ligne?
Et connaissez vous une documentation assez complète sur le pilotage des documents Excel (et Access si possible) depuis VBS? (autre que la documentation de microsoft qui est vraiment nulle par rapport à ce que j'ai pu consulter pour des langages comme java, php, c, ...)?
 
Je vous remercie d'avance pour vos réponses


Message édité par cinejapan le 26-06-2009 à 21:47:02
mood
Publicité
Posté le 24-06-2009 à 16:46:48  profilanswer
 

n°1898815
Turkleton
I don't quite understand you
Posté le 24-06-2009 à 18:28:29  profilanswer
 

Code :
  1. Rows("1:10" ).Delete Shift:=xlUp


par exemple, pour supprimer les lignes de 1 à 10, avec un décalage du reste vers le haut.
 
En fait, un moyen simple de récupérer le code de ce que tu veux : tu lances Excel, tu fais "Outils->Macro->Nouvelle macro" et tu exécutes les actions que tu veux. Ensuite, "Visual Basic Editor", et tu récupères le code tout fait de ce que tu as enregistré. Il ne te reste plus qu'à l'appliquer en VBS mais c'est pas trop compliqué.


---------------
If you think it could look good, then I guess it should
n°1899164
cinejapan
Posté le 25-06-2009 à 14:01:23  profilanswer
 

Merci pour cette réponse, mais je ne suis pas sûr que la syntaxe soit la même :)
J'ai essayé d'utiliser les propriétés/objet "Rows" d'un objets "Worksheets" sans succès.
 
Exemples ne fonctionnant pas :
Workbooks(1).Worksheets(1).Rows("1" ).Delete
Workbooks(1).Worksheets(1).Rows("1:1" ).Delete

n°1899236
Turkleton
I don't quite understand you
Posté le 25-06-2009 à 16:56:41  profilanswer
 

cinejapan a écrit :

Merci pour cette réponse, mais je ne suis pas sûr que la syntaxe soit la même :)
J'ai essayé d'utiliser les propriétés/objet "Rows" d'un objets "Worksheets" sans succès.
 
Exemples ne fonctionnant pas :
Workbooks(1).Worksheets(1).Rows("1" ).Delete
Workbooks(1).Worksheets(1).Rows("1:1" ).Delete


Bizarre, je pensais que la syntaxe était similaire, ça n'a pas l'air d'être le cas. Du coup, je vois pas trop.
 
1 -> Est-ce que ça change quelque chose si tu remets ton objet devant : "objExcel.Workbooks(1).Worksheets(1).Rows("1:1" ).Delete" ?
2 -> Est-ce que ça vient de l'instruction "Delete" ou est-ce que la sélection ne fonctionne pas non plus : "Workbooks(1).Worksheets(1).Rows("1:1" ).Select" ?


---------------
If you think it could look good, then I guess it should
n°1899240
fluminis
Posté le 25-06-2009 à 17:05:16  profilanswer
 

Rows("1:10" ).Delete Shift:=xlUp
 
=> les constantes ne sont pas définies dans VBS, donc xlUP par exemple va valloir zéro... il faut au moins trouver la valeur numérique de cette constante (que je ne connais pas désolé)


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1899246
Turkleton
I don't quite understand you
Posté le 25-06-2009 à 17:20:29  profilanswer
 

fluminis a écrit :

Rows("1:10" ).Delete Shift:=xlUp
 
=> les constantes ne sont pas définies dans VBS, donc xlUP par exemple va valloir zéro... il faut au moins trouver la valeur numérique de cette constante (que je ne connais pas désolé)


Bien vu, j'y avais pas pensé. Quand j'affiche la valeur xlUp dans Excel, il me retourne le nombre "-4162", reste à savoir si c'est utilisable sur VBS.


---------------
If you think it could look good, then I guess it should
n°1899643
cinejapan
Posté le 26-06-2009 à 21:45:59  profilanswer
 

J'ai bien mis l'objet objExcel devant les lignes, j'ai réécris rapidement sur le forum sans mettre tout le détail.
 
J'ai trouvé, avec beaucoup de mal, le code suivant:
 
Set oRange = objExcel.Workbooks(1).Worksheets(1).Range("A1:A1" )
oRange.EntireRow.Delete
 
Je ne sais pas s'il y a plus directe comme méthode mais ça fonctionne :)
 
Merci pour votre aide ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS][Résolu] Supprimer une ligne dans Excel

 

Sujets relatifs
Caractère séparateur sous excel VBA[Résolu] [DOS] Set dans un for
[RESOLU ]base de données mysql[Resolu]Erreur de compilation
[résolu] WampsServer, phpBB et date.timezone... Régler fuseau horaireDessiner une ligne en VB6
PB Count (Résolu) et un souci de lien de paginationComment supprimer un dossier en C++
Problème d'alignement CSS dans les balises[resolu]script pour sauvegarde incrémentale
Plus de sujets relatifs à : [VBS][Résolu] Supprimer une ligne dans Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR