IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

VBS pour bordures fichier Excel


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut VBS pour bordures fichier Excel
    Bonjour,

    Je suis sur un script qui importe des données d'un fichier texte dans une feuille Excel. Je voudrais mettre en forme cette feuille par VBS.
    J'ai déjà trouvé pour trier par ordre croissant, pour dimensionner les cellules en fonction de la longueur du texte, à changer le format des nombres et je voudrais m'attaquer aux bordures pour que ce soit plus propre et que cela fasse tableau.
    J'ai cherché sur le forum (tutos, discussion,etc) ainsi que sur internet et je ne trouve aucune doc.
    J'ai fait la manip en vba excel et j'essaie de le coder en vbs sans succès.

    Voici un bout de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
    'Ouverture d'Excel
    	Dim waExcel: Set waExcel = CreateObject("Excel.Application")
    'Chemin d'accès du fichier
        	StrPath = "C:\"
    'Ajoute \ à la fin s'il y en a pas
        	If Right(StrPath, 1) <> "\" Then StrPath = StrPath & "\"
    'Nom du fichier
        	StrFich = "ControleDisque.txt"
    'Existance du fichier
        	If FSO.FileExists(StrPath & StrFich) Then
    'Rendre invisible Excel
            waExcel.Visible = False
    'Importe le fichier texte vers une feuille Excel avec délimiteur : Tabulation et Space
            waExcel.Workbooks.OpenText StrPath & StrFich, , , , , , True, , , True
    waExcel.Worksheets(1).Columns("A:L").Select
    xlContinuous = 1
    xlThin = 1
    xlAutomatic = 1
    waExcel.worksheets(1).Columns("A:L").Borders WaExcel.worksheets(1).Range("A:L"), xlContinuous, xlThin, xlAutomatic
    Quelqu'un aurait-il une idée ou des infos là dessus

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Cela donne quoi comme résultat ?

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut
    Bonjour,

    Cela me génère une erreur :

    Ligne 21
    Caract. :1
    Erreur : Cet objet ne gère pas cette propriété ou cette méthode :'Worksheets(....).Borders'
    Code 800A01B6
    Alors que pour les autres modifications de cellules 'Worksheets' fonctionne très bien.

    Je ne sais pas vers quel cade me tourner.

    J'ai essayé également par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    waExcel.worksheets(1).Borders(xlEdgeTop).LineStyle = xlContinuous
    Même erreur alors que pour que les cellules soient triées par ordre croissant en fonction de la colonne B1, le code suivant fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            xlAscending = 1
    	xlTopToBottom = 1
    	xlSortNormal = 0
    	xlGuess = 0
    	WaExcel.Worksheets(1).Columns.Sort WaExcel.Worksheets(1).Range("B1"), xlAscending, , , , , , xlGuess, 1, False, xlTopToBottom, , xlSortNormal

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Oui bah ce que n'aime pas l'interpréteur c pas Worksheets mais Borders.
    As tu vérifié que la méthode existe bien pour l'objet en question ?

    Si tu regardes ici tu t'appercevras que Worksheet n'a pas de telle propriété ou méthode.

    EDIT : En fait tu n'utilises pas WorkSheet mais worksheets, mais qui ne contient pas non plus de border.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut
    Ok, merci, je commence à comprendre le fonctionnement vbscript.

    Question :

    J'ai trouvé sur ton lien plusieurs objets qui me conviendraient :

    CellFormatObject (qui contient Borders comme membre object)
    BordersObject
    BorderObject

    Lequel choisir ?

    Je serais tenté par CellFormatObject et écrire un code du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    waExcel.CellFormatObject.Borders(xlEdgeTop).LineStyle = xlContinuous
    Une idée là dessus ? Je vais faire des essais en attendant ta réponse

    Merci d'avance

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je ne sais pas !

    Je ne fait que très rarement du VBA excel, donc je ne sais pas ce qui est le plus adapté. Je ne peux faire que regarder la doc comme toi, mais je n'ai pas le temps pour cela.

    Bon courage.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 06/03/2017, 09h47
  2. Macro unique pour plusieurs fichiers excel
    Par jackbauer972 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/07/2007, 13h41
  3. [ascendant='nul'] VBS ouvrir un fichier excel depuis IE7
    Par escteban dans le forum VBScript
    Réponses: 2
    Dernier message: 26/04/2007, 15h04
  4. [VBA-E] Macro pour tous fichiers Excel ?
    Par belfaigore dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 18h25
  5. [VBA-E]une macro unique pour plusieurs fichiers excel
    Par fanchic29 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/04/2006, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo