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

WinDev Discussion :

Avec un objet automation dynamique Excel accèder aux options


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 6
    Points
    6
    Par défaut Avec un objet automation dynamique Excel accèder aux options
    Bonjour,

    Je voudrais modifier les options d'un fichier Excel, à savoir le séparateur de décimale et Utiliser les séparateurs système, à partir d'un objet automation dynamique en programmation Windev.
    En fait, mon problème est que je ne connais pas les termes à utiliser (en anglais).
    Est-ce que quelqu'un peut m'aider ?

    J'espère que la description de mon problème est clair.

    Merci de vos réponses.

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Pour avoir vu comment ça fonctionne avec Excel et windev :

    Tu enregistres une macro sous excel, et tu regardes le code VB généré. Ensuite tu adaptes le code Vb en windev :
    les instructions sont du type MonClasseur>>PartieObligatoire[>>PartieOptionnelle]

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    // Création d'un  objet automation dynamique
    MonClasseur est un objet automation dynamique
     
    // Instance de Excel existante ?
    SI ObjetActif("Excel.Application") <> Null ALORS
    	// Récupération de l'instance de Excel existante
    	MonClasseur = ObjetActif("Excel.Application")
    SINON
    	// Allocation de l'objet automation "MonClasseur"
    	MonClasseur = allouer un objet automation "Excel.Application"
    FIN
    SI MonClasseur = Null ALORS
    	Erreur("Impossible de lancer Excel.")
    	RETOUR
    FIN
     
    // Excel n'est pas visible (travail en arrière plan)
    MonClasseur>>Visible = Faux
     
    	ch_fichierExcel = CH_CHEMIN_fichier + ch_NomEtabEnCours
    	ActiveX>>Navigate(ch_fichierExcel)
    	// Ouverture d'un classeur d'Excel
    	MonClasseur>>Workbooks>>Add()
    	// Entête du document excel
    	// Ecriture des titres sur lignes 1 et 2
    	MonClasseur>>Range("A"+1)>>Value = "A U T O R I S A T I O N S  :   " + ch_NomEtabEnCours
    	MonClasseur>>Range("A1:M1")>>Select
    	MonClasseur>>Selection>>Font>>Size = 14
    	MonClasseur>>Selection>>Merge() // fusion cellules
    	MonClasseur>>Selection>>HorizontalAlignment =  -4108 // centrage
    	MonClasseur>>Range("A"+2)>>Value = "Excel "
    	MonClasseur>>Range("A2:M2")>>Select
    	MonClasseur>>Selection>>Font>>Size = 12
    	MonClasseur>>Selection>>Merge() // fusion cellules
    	MonClasseur>>Selection>>HorizontalAlignment =  -4108 // centrage
     
    	// Ecriture des entêtes de colonne
    	MonClasseur>>Range("F"+3)>>Value = "Siret"
    	MonClasseur>>Range("G"+3)>>Value = "N° Chq"
    	MonClasseur>>Range("N"+3)>>Value = "Date Création"
    	MonClasseur>>Range("1:2")>>Select
    	MonClasseur>>Selection>>Font>>Bold = Vrai
     
    		MonClasseur>>Range("B:N")>>Select
    		MonClasseur>>Selection>>Font>>Name = "Arial" // on force la police pour toute la feuille
    		MonClasseur>>Selection>>Columns>>AutoFit()
    		MonClasseur>>Range("A1")>>Select // et reposisiton en haut à gauche
     
    		// sauvegarde du classeur
    		MonClasseur>>ActiveWorkBook>>SaveAs(CH_CHEMIN_fichier+"Excel-"+Ch_codeEtabencours+"-"+ch_nometabencours+".xls",-4143)
    		MonClasseur>>ActiveWorkBook>>Close(Faux) // et fermeture du classeur
    dans vba, ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        With Application
            .DecimalSeparator = "#"
            .ThousandsSeparator = "*"
            .UseSystemSeparators = False
        End With
    du coup, tu dois avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonClasseur>>Application>>DecimalSeparator = "#"
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse c'est parfait.
    Par contre, tu ne connaitrais pas un manuel sur le sujet ?

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Non, ce n'est pas du tout "prévu" chez pcsoft. C'est en cherchant à partir de l'exemple fourni que j'ai compris comment ça marchait.
    J'ai viré la POO (inutile) pour repasser en mode "normal" puis, je reprends le code VB que je réadapte. L'objet automation "se contente" d'envoyer les instructions à excel qui les exécute.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Perso, il y a longtemps que j'ai créé une classe gérant les classeurs excel et les documents word !

    Ça me permet de créer un classeur excel en 2 secondes !

Discussions similaires

  1. [WD18] Problème avec <objet Automation "Excel.Application">
    Par hassane03 dans le forum WinDev
    Réponses: 9
    Dernier message: 04/04/2017, 04h00
  2. [PPT-2003] Comment accéder aux options de powerpoint
    Par richie_leffe dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 18/09/2012, 12h43
  3. Réponses: 5
    Dernier message: 11/07/2012, 10h01
  4. Accéder aux méthodes d'objets alloués dynamiquement
    Par Galip dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/05/2007, 22h57
  5. Réponses: 5
    Dernier message: 23/02/2007, 19h55

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