1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

supprimer une ligne d'un fichier excel via windev

Discussion dans 'Windev' créé par elghyati, Juil 5, 2019.

  1. elghyati

    elghyati Member

    Inscrit:
    Jan 2, 2018
    Messages:
    56
    J'aime reçus:
    7
    bonjour,
    Est-il possible de supprimer une ligne d'un fichier excel via windev .
    Merci
     
    Tags:
  2. *!vince!*

    *!vince!* Member

    Inscrit:
    Juin 26, 2018
    Messages:
    62
    J'aime reçus:
    26
    Bonjour,

    il faut utiliser le classe cExcel trouvable dans l'exemple inclus "WD pilotage Excel par OLE"
    puis dans la classe CExcel tu ajoutes le code contenu dans ce post :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    ça marche!
     

    Fichiers attachés:

    elghyati, Gemini1961 et suenodesign aiment ça.
  3. elghyati

    elghyati Member

    Inscrit:
    Jan 2, 2018
    Messages:
    56
    J'aime reçus:
    7

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour,

    il faut utiliser le classe cExcel trouvable dans l'exemple inclus "WD pilotage Excel par OLE"
    puis dans la classe CExcel tu ajoutes le code contenu dans ce post :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    ça marche!
    Cliquez pour agrandir...
    Bonjour pour la reponse

    "La version de l'objet est incompatible avec la version courante.
    Ce fichier est au format windev version 24."
    SVP j'ai pas windev 24 ,mais j'ai Version 23
     
  • *!vince!*

    *!vince!* Member

    Inscrit:
    Juin 26, 2018
    Messages:
    62
    J'aime reçus:
    26
    Et je n'ai pas windev 23, je passe la main...
     
    elghyati apprécie ceci.
  • elghyati

    elghyati Member

    Inscrit:
    Jan 2, 2018
    Messages:
    56
    J'aime reçus:
    7

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Et je n'ai pas windev 23, je passe la main...
    Cliquez pour agrandir...
    Boujour,
    Merci pour la repense toujours .
    tu peut m'envoyer le code directement ou avec une version intérieure V 22,V21,20...sauf V24.
    SVP

    Merci
     
  • *!vince!*

    *!vince!* Member

    Inscrit:
    Juin 26, 2018
    Messages:
    62
    J'aime reçus:
    26
    Le message contient plus de 10000 caractère et je ne peux pas le poster directement.

    Je vais le déposer en plusieurs fois.
     
    elghyati apprécie ceci.
  • *!vince!*

    *!vince!* Member

    Inscrit:
    Juin 26, 2018
    Messages:
    62
    J'aime reçus:
    26
    Code (Text):
    CExcel est une Classe
        m_pautExcel est un objet OLE dynamique    // Pointeur sur objet actif
        m_nVersion est un entier          // Version de Excel installée sur le poste
        m_sClasseurEnCours est une chaîne    // nom du classeur en cours
    FIN

    CONSTANT
        CST_GAUCHE = 1
        CST_CENTRE = 2
        CST_DROITE = 3
    FIN


    PROCÉDURE Constructeur(bRecycle=Faux)
    // si bRecycle=Vrai, on réutilise le Excel qui est déjà ouvert

    // on teste la présence de Excel et on récupère sa version
    nVersion est un entier
    nVersion = :nVersionOffice("Excel")
    SI nVersion = 0 ALORS
        FinProgramme("Excel n'a pas été installé sur cette machine, vous ne pouvez pas utiliser cette classe !")
        RETOUR
    FIN
    SI nVersion < 8 ALORS
        FinProgramme("Pour utiliser cette classe, vous devez avoir Excel 97 ou supérieur !")
        RETOUR  
    FIN

    // version de Excel
    :m_nVersion = nVersion

    // si Excel n'est pas déja alloué
    SI :m_pautExcel = Null ALORS
        // si l'utilisateur veut réutiliser le Excel déjà ouvert
        SI bRecycle ALORS
            :m_pautExcel = ObjetActif("Excel.Application")
            SI :m_pautExcel = Null ALORS
                // il n'y avait aucun Excel déjà ouvert, on en alloue un
                :m_pautExcel = allouer un objet OLE "Excel.Application"
            FIN
        SINON
            // on en alloue un nouveau
            :m_pautExcel = allouer un objet OLE "Excel.Application"
        FIN
    FIN

    // Rendre visible
    :m_pautExcel>>visible=Vrai
    PROCÉDURE Destructeur()

    SI :m_pautExcel<>Null ALORS
        :Quitter()
        Multitâche(-10)
       
        // on libère le pointeur
        libérer :m_pautExcel
    FIN

    // Résumé : Ajoute une feuille dans le classeur
    // Syntaxe :
    // AjouterFeuille ( [<sNomFeuille>])
    //
    // Paramètres :
    //     sNomFeuille : Nom à donner à la nouvelle feuille
    // Valeur de retour :
    //     Aucune

    PROCÉDURE AjouterFeuille(sNomFeuille="")

    QUAND EXCEPTION DANS
        //Ajouter une feuille dans le classeur
        :m_pautExcel>>Sheets>>Add()
    FAIRE
        :MsgErreur("Impossible d'ajouter une feuille au classeur.",ExceptionInfo())
        RETOUR
    FIN

    // Renommage si nécessaire
    SI sNomFeuille<>"" ALORS
        :RenommerFeuille(sNomFeuille)
    FIN


    // Résumé : Permet de créer un graphe
    // Syntaxe :
    // AjouterGraphe ( [<sPlage> [, <sType> [, <sTitre> [, <bLegende>]]]])
    //
    // Paramètres :
    //     sPlage : Plage de cellule à sélectionner (peut être vide si des cellules sont déjà sélectionnées)
    //     sType (valeur par défaut="HISTO") : Type de graphe : HISTO, COURBE, SECTEUR
    //     sTitre : Nom du graphe (facultatif)
    //     bLegende (valeur par défaut=0) : à vrai si on veut la légende (les données sont récupérer dans la plage de cellules)
    // Valeur de retour :
    //     Aucune

    PROCÉDURE AjouterGraphe(sPlage="", sType="HISTO", sTitre="", bLegende=Faux)


    SI sPlage<>"" ALORS
        // Sélection de la plage de cellules
        :SelectionnerCellules(sPlage)
    FIN

    QUAND EXCEPTION DANS
        // ajout d'un graphe
        :m_pautExcel>>Charts>>Add()
       
        // type histogramme
        :m_pautExcel>>ActiveChart>>ChartType = :nTypeGraphe(sType)
       
    FAIRE
        :MsgErreur("Impossible d'ajouter le graphe.", ExceptionInfo())
        RETOUR
    FIN

    QUAND EXCEPTION DANS  
        // graphe dans nouvelle feuille (1er paramètre : xlLocationAsObject = 2)
        :m_pautExcel>>ActiveChart>>Location(2, :m_pautExcel>>ActiveSheet>>Name)
    FAIRE
        // Erreur non fatale
    FIN

    QUAND EXCEPTION DANS  
        // si un titre est précisé
        SI sTitre<>"" ALORS
            :m_pautExcel>>ActiveChart>>HasTitle = Vrai
            :m_pautExcel>>ActiveChart>>ChartTitle>>Characters>>Text = sTitre
        SINON
            :m_pautExcel>>ActiveChart>>HasTitle = Faux
        FIN
       
        // pas de légende
        SI bLegende ALORS
            :m_pautExcel>>ActiveChart>>HasLegend = Vrai
        SINON
            :m_pautExcel>>ActiveChart>>HasLegend = Faux
        FIN

    FAIRE
        :MsgErreur("Impossible d'ajouter le graphe.", ExceptionInfo())
        RETOUR
    FIN


    // Résumé : Applique un alignement horizontal à la cellule sélectionnée ou à une plage de cellules
    // Syntaxe :
    //Aligner (<nAlignement> [, <sPlage>])
    //
    // Paramètres :
    //    nAlignement : Alignement souhaité
    //    sPlage (valeur par défaut="") : Plage de cellules à sélectionner (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Aligner(nAlignement, sPlage="")

    // on sélectionne la plage demandée
    SI sPlage<>"" ALORS
        :SelectionnerCellules(sPlage)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une cellule.")
        RETOUR
    FIN

    nAlignConstante est un entier
    SELON nAlignement
        CAS CST_GAUCHE
            nAlignConstante = -4131 //xlLeft
        CAS CST_CENTRE
            nAlignConstante = -4108 //xlCenter
        CAS CST_DROITE
            nAlignConstante = -4152 //xlRight
        AUTRE CAS
            nAlignConstante = -4131 //xlLeft
    FIN                  
       
    QUAND EXCEPTION DANS
        // on réalise l'alignement demandé  
        :m_pautExcel>>Selection>>HorizontalAlignment = nAlignConstante  
    FAIRE
        :MsgErreur("Impossible d'appliquer l'alignement.", ExceptionInfo())
        RETOUR
    FIN
    // Résumé : Coller dans une cellule ou un ensemble de cellules
    // Syntaxe :
    // Coller ( [<sCellule>])
    //
    // Paramètres :
    //     sCellule : Cellule en haut à gauche de la zone de destination (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Coller(sCellule="")

    // sélection de la cellule
    SI sCellule<>"" ALORS
        :SelectionnerCellules(sCellule)
    FIN

    QUAND EXCEPTION DANS
        // coller dans la zone
        :m_pautExcel>>ActiveSheet>>Paste()
    FAIRE
            RETOUR
    FIN



    // Résumé : Copie d'une cellule ou d'un ensemble de cellules
    // Syntaxe :
    // Copier ( [<sPlage>])
    //
    // Paramètres :
    //     sPlage : Zone à copier (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Copier(sPlage="")

    // sélection de la plage de cellules
    SI sPlage<>"" ALORS
        :SelectionnerCellules(sPlage)
    FIN

    QUAND EXCEPTION DANS
        // copier de la zone
        :m_pautExcel>>Selection>>Copy()
    FAIRE
        RETOUR
    FIN
    // Résumé : Applique une couleur de texte et/ou de fond à une cellule ou un ensemble de cellules
    // Syntaxe :
    //Couleur ( [<sCouleurTexte> [, <sCouleurFond> [, <sPlage>]]])
    //
    // Paramètres :
    //    sCouleurTexte (valeur par défaut="") : Couleur désirée pour le texte (facultatif) : AUCUN, NOIR, ROUGE, VERT, BLEU, JAUNE
    //    sCouleurFond (valeur par défaut="") : Couleur désirée pour le fond de cellule (facultatif) : AUCUN, NOIR, ROUGE, VERT, BLEU, JAUNE
    //    sPlage (valeur par défaut="") : Plage de cellules à sélectionner (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Couleur(nCouleurTexte = -1, nCouleurFond = -1, sPlage="")

    // Sélection de la cellule
    SI sPlage<>"" ALORS
        :SelectionnerCellules(sPlage)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une cellule.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // couleur de police
        SI nCouleurTexte<>-1 ALORS
            :m_pautExcel>>Selection>>Font>>Color = nCouleurTexte
        FIN
       
        // couleur de fond
        SI nCouleurFond<> -1 ALORS
            :m_pautExcel>>Selection>>Interior>>Color = nCouleurFond
        FIN
       
       
    FAIRE
        :MsgErreur("Impossible de modifier la couleur.",ExceptionInfo())
        RETOUR
    FIN


    // Résumé : Effectue un "Couper" sur une cellule ou un ensemble de cellules
    // Syntaxe :
    // Couper ( [<sPlage>])
    //
    // Paramètres :
    //     sPlage : Zone à copier(facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Couper(sPlage="")

    // sélection de la plage de cellules
    SI sPlage<>"" ALORS
        :SelectionnerCellules(sPlage)
    FIN

    QUAND EXCEPTION DANS
        // couper de la zone
        :m_pautExcel>>Selection>>Cut()
    FAIRE
        RETOUR
    FIN

    // Résumé : Déplace une feuille donnée à la position souhaitée
    // Syntaxe :
    // DeplacerFeuille (<sFeuille>, <nPosition>)
    //
    // Paramètres :
    //     sFeuille : Nom de la feuille à déplacer
    //     nPosition : Position de destination
    // Valeur de retour :
    //     Aucune

    PROCÉDURE DeplacerFeuille(sFeuille, nPosition)

    QUAND EXCEPTION DANS
        // on déplace la feuille demandée après l'onglet <nPosition>
        :m_pautExcel>>Sheets(sFeuille)>>Move(:m_pautExcel>>Sheets(nPosition))
    FAIRE
        :MsgErreur("Impossible de déplacer la feuille.",ExceptionInfo())
        RETOUR
    FIN
    // Résumé : Permet d'écrire une valeur dans une cellule
    // Syntaxe :
    // EcrireValeur (<sCellule>, <sValeur>)
    //
    // Paramètres :
    //     sCellule : Cellule dans laquelle on veut écrire
    //     sValeur : Valeur à écrire
    // Valeur de retour :
    //     Aucune

    PROCÉDURE EcrireValeur(sCellule, sValeur)


    // pour éviter que Excel se mette en erreur
    QUAND EXCEPTION DANS
        // Ecrire une valeur dans la cellule passée en paramètre
        :m_pautExcel>>Range(sCellule)>>Value = sValeur
    FAIRE
        :MsgErreur("Impossible d'écrire la valeur.",ExceptionInfo())
        RETOUR
    FIN
     
    elghyati apprécie ceci.
  • *!vince!*

    *!vince!* Member

    Inscrit:
    Juin 26, 2018
    Messages:
    62
    J'aime reçus:
    26
    Code (Text):
    // Résumé : Enregistre le classeur en cours
    // Syntaxe :
    // Enregistrer ( [<sNomClasseur>])
    //
    // Paramètres :
    //     sNomClasseur : Nom désiré pour le classeur (facultatif)
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Enregistrer(sNomClasseur="")

    // si on n'a pas de document en cours
    SI (:m_sClasseurEnCours~="" ET sNomClasseur="") ALORS
        :EnregistrerSous()
    SINON
        QUAND EXCEPTION DANS
            // on sauve le document
            SI sNomClasseur<>"" ALORS
                // 2ème paramètre xlNormal = -4143 (format Excel classique)
                :m_pautExcel>>ActiveWorkbook>>SaveAs(sNomClasseur,-4143)
                :m_sClasseurEnCours=sNomClasseur
            SINON
                // 2ème paramètre xlNormal = -4143 (format Excel classique)
                :m_pautExcel>>ActiveWorkbook>>SaveAs(:m_sClasseurEnCours,-4143)
            FIN
        FAIRE
            // Cas où l'utilisateur n'est pas sorti de la saisie en cours
            SI ChaîneOccurrence(ExceptionInfo(), "80010001")>0 ALORS
                Info("Valider d'abord la saisie en cours avant d'enregistrer votre classeur.")
            SINON
                :MsgErreur("Impossible de sauver le classeur.",ExceptionInfo())
            FIN
            RETOUR
        FIN
    FIN


    // Résumé : Enregistrer, avec sélecteur
    // Syntaxe :
    // EnregistrerSous ()
    //
    // Paramètres :
    //    Aucun
    // Valeur de retour :
    //     Aucune

    PROCÉDURE EnregistrerSous()

    sNomClasseur est une chaîne=""

    // Sélection ou création d'un fichier Excel
    sNomClasseur=fSélecteur("","","Enregistrer sous...",...
                            "Document Excel (*.XLS)"+TAB+"*.XLS","XLS",...
                            fselCrée+fselExiste)

    // Aucun fichier sélectionné
    SI sNomClasseur="" ALORS RETOUR

    // On sauve le document
    :Enregistrer(sNomClasseur)


    // Résumé : Ferme le document actif
    // Syntaxe :
    // FermerClasseur ()
    //
    // Paramètres :
    //    Aucun
    // Valeur de retour :
    //     Aucune

    PROCÉDURE FermerClasseur()

    // pour éviter que Excel se mette en erreur
    QUAND EXCEPTION DANS
        // on ferme le classeur actif
        :m_pautExcel>>ActiveWorkbook>>Close(Faux)
       
        // il n'y a plus de classeur en cours
        :m_sClasseurEnCours=""
    FAIRE
        :MsgErreur("Impossible de fermer le classeur.",ExceptionInfo())
        RETOUR
    FIN


    // Résumé : Permet d'appliquer un format de cellule à une cellule ou un ensemble de cellules
    // Syntaxe :
    // Format (<sFormatCellule> [, <sPlage>])
    //
    // Paramètres :
    //     sFormatCellule : Format à appliquer : NOMBRE, DATE, HEURE, monétaire, POURCENTAGE
    //     sPlage : Plage de cellules à sélectionner(facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Format(sFormatCellule, sPlage="")

    // sélection de la plage de cellule
    SI sPlage<>"" ALORS
        :SelectionnerCellules(sPlage)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        // il n'y a plus de classeur en cours
        :m_sClasseurEnCours=""
        Info("Vous devez d'abord sélectionner une cellule.")
        RETOUR
    FIN

    sFormat est une chaîne
    SELON Majuscule(sFormatCellule)
        CAS "NOMBRE"
            sFormat = "0,00"
        CAS "DATE"
            sFormat = "j mmmm aaaa"
        CAS "HEURE"
            sFormat = "h:mm:ss"
        CAS "MONETAIRE"
            sFormat = "#,##00 €"
        CAS "POURCENTAGE"
            sFormat = "0,00%"
        AUTRE CAS
            sFormat = "@"
    FIN

    QUAND EXCEPTION DANS
        // on met au format voulu
        :m_pautExcel>>Selection>>NumberFormat = sFormat
    FAIRE
        :MsgErreur("Impossible de modifier le format le format.",ExceptionInfo())
        RETOUR
    FIN
    // Résumé : Fusionne les cellules sélectionnées
    // Syntaxe :
    // FusionnerCellules ( [<sPlage>])
    //
    // Paramètres :
    //     sPlage : Plage de cellules à fusionner (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE FusionnerCellules(sPlage="")

    SI sPlage<>"" ALORS
        // sélection de la plage de cellules
        :SelectionnerCellules(sPlage)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une cellule.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // Fusionne verticalement ou horizontalement les cellules sélectionnées
        :m_pautExcel>>Selection>>Merge()
    FAIRE
        :MsgErreur("Impossible de fusionner les cellules.",ExceptionInfo())
        RETOUR
    FIN


    // Résumé : Définit les paramètres de police pour la sélection en cours
    // Syntaxe :
    // Graisse ( [<nGras> [, <nItalique> [, <nSouligne>]]])
    //
    // Paramètres :
    //     nGras : La graisse : "" -> ne fait rien, -1 -> permute d'un état à l'autre, 0 -> met l'état à faux, 1 -> met l'état à vrai
    //     nItalique : L'italique : "" -> ne fait rien, -1 -> permute d'un état à l'autre, 0 -> met l'état à faux, 1 -> met l'état à vrai
    //     nSouligne : Le souligné : "" -> ne fait rien, -1 -> permute d'un état à l'autre, 0 -> met l'état à faux, 1 -> met l'état à vrai
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Graisse(nGras="", nItalique="", nSouligne="")

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une cellule.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // gras
        SELON nGras
            CAS 1
                :m_pautExcel>>Selection>>Font>>Bold = Vrai
            CAS 0
                :m_pautExcel>>Selection>>Font>>Bold = Faux
            CAS -1
                // on permute
                SI :m_pautExcel>>Selection>>Font>>Bold = Vrai ALORS
                    :m_pautExcel>>Selection>>Font>>Bold = Faux
                SINON
                    :m_pautExcel>>Selection>>Font>>Bold = Vrai
                FIN          
        FIN
       
        // Italique
        SELON nItalique
            CAS 1
                :m_pautExcel>>Selection>>Font>>Italic = Vrai
            CAS 0
                :m_pautExcel>>Selection>>Font>>Italic = Faux
            CAS -1
                // on permute
                SI :m_pautExcel>>Selection>>Font>>Italic = Vrai ALORS
                    :m_pautExcel>>Selection>>Font>>Italic = Faux
                SINON
                    :m_pautExcel>>Selection>>Font>>Italic = Vrai
                FIN          
        FIN
       
        // Soulignement
        SELON nSouligne
            CAS 1
                :m_pautExcel>>Selection>>Font>>Underline = 2 // xlUnderlineStyleSingle
            CAS 0
                :m_pautExcel>>Selection>>Font>>Underline = 1 // xlUnderlineStyleNone
            CAS -1
                // on permute
                SI :m_pautExcel>>Selection>>Font>>Underline = 2 ALORS
                    :m_pautExcel>>Selection>>Font>>Underline = 1 // xlUnderlineStyleNone
                SINON
                    :m_pautExcel>>Selection>>Font>>Underline = 2 // xlUnderlineStyleSingle
                FIN          
        FIN

    FAIRE
        :MsgErreur("Impossible d'appliquer le style.",ExceptionInfo())
        RETOUR
    FIN
     
  • *!vince!*

    *!vince!* Member

    Inscrit:
    Juin 26, 2018
    Messages:
    62
    J'aime reçus:
    26
    PHP:
    // Résumé : Ajuste la hauteur de la ligne
    // Syntaxe :
    // HauteurAuto ( [<nLigne>])
    //
    // Paramètres :
    //     nLigne : Ligne à ajuster (facultatif). Si elle n'est pas précisée, c'est la sélection en cours.
    // Valeur de retour :
    //     Aucune

    PROCÉDURE HauteurAuto(nLigne="")

    SI nLigne<>"" ALORS
        // on sélectionne la ligne passée en paramètre
        :SelectionnerCellules(nLigne)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une ligne.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // Redimensionnement automatique de la hauteur des lignes
        :m_pautExcel>>Selection>>Rows>>AutoFit()
    FAIRE
        :MsgErreur("Impossible de modifier la hauteur.",ExceptionInfo())
        RETOUR
    FIN
    // Résumé : Change la hauteur de la ligne
    // Syntaxe :
    // HauteurLigne (<nTaille> [, <nLigne>])
    //
    // Paramètres :
    //     nTaille : Hauteur désirée
    //     nLigne : Ligne dont on veut changer la hauteur (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE HauteurLigne(nTaille, nLigne="")


    SI nLigne<>"" ALORS
        :SelectionnerCellules(nLigne)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une cellule.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // on modifie la hauteur de la ligne passée en paramètre
        :m_pautExcel>>Selection>>RowHeight = nTaille
    FAIRE
        :MsgErreur("Impossible de modifier la hauteur.",ExceptionInfo())
        RETOUR
    FIN


    // Résumé : Imprime le document actif
    // Syntaxe :
    // Imprimer ()
    //
    // Paramètres :
    //    Aucun
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Imprimer()

    QUAND EXCEPTION DANS
        // On appelle la fonction d'impression de Excel
        :m_pautExcel>>ActiveWindow>>SelectedSheets>>PrintOut(1)
    FAIRE
        :MsgErreur("Impossible d'imprimer le classeur.",ExceptionInfo())
        RETOUR
    FIN

    // Résumé : Insérer une colonne
    // Syntaxe :
    // InsérerUneColonne ( [<sColonne>])
    //
    // Paramètres :
    //     sColonne : Colonne à sélectionner avant d'insérer (facultatif). Si elle n'est pas précisée, c'est la colonne déjà sélectionnée.
    // Valeur de retour :
    //     Aucune

    PROCÉDURE InsérerUneColonne(sColonne="")

    SI sColonne<>"" ALORS
        // Sélection de la colonne
        :SelectionnerCellules(sColonne)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une colonne.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // Insertion de la colonne
        :m_pautExcel>>Selection>>Insert(-4161) // xlToRight
    FAIRE
        :MsgErreur("Impossible d'insérer une colonne.",ExceptionInfo())
        RETOUR
    FIN

    // Résumé : Insérer une ligne
    // Syntaxe :
    // InsererUneLigne ( [<sLigne>])
    //
    // Paramètres :
    //     sLigne : Ligne à sélectionner avant d'insérer (facultatif). Si elle n'est pas précisée, c'est la ligne déjà sélectionnée.
    // Valeur de retour :
    //     Aucune

    PROCÉDURE InsererUneLigne(sLigne="")


    SI sLigne<>"" ALORS
        // sélection de la ligne
        :SelectionnerCellules(sLigne)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une ligne.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // insertion de la ligne
        :m_pautExcel>>Selection>>Insert(-4121) // xlDown
    FAIRE
        :MsgErreur("Impossible d'insérer une ligne.",ExceptionInfo())  
        RETOUR
    FIN


    // Résumé : Ajuste la largeur de la colonne
    // Syntaxe :
    // LargeurAuto ( [<sColonne>])
    //
    // Paramètres :
    //     sColonne : Colonne à sélectionner (facultatif). Si elle n'est pas précisée, c'est la colonne déjà sélectionnée.
    // Valeur de retour :
    //     Aucune

    PROCÉDURE LargeurAuto(sColonne="")

    SI sColonne<>"" ALORS
        // on sélectionne la ligne passée en paramètre
        :SelectionnerCellules(sColonne)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une colonne.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // Redimensionnement automatique de la largeur des colonnes
        :m_pautExcel>>Selection>>Columns>>AutoFit()
    FAIRE
        :MsgErreur("Impossible de modifier la largeur.",ExceptionInfo())
        RETOUR
    FIN


    // Résumé : Change la largeur de la colonne
    // Syntaxe :
    // LargeurColonne (<nLargeur> [, <sColonne>])
    //
    // Paramètres :
    //     nLargeur : Largeur désirée
    //     sColonne : Colonne dont on veut changer la largeur (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE LargeurColonne(nLargeur, sColonne="")


    SI sColonne<>"" ALORS
        :SelectionnerCellules(sColonne)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une colonne.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // on redimensionne la colonne
        :m_pautExcel>>Selection>>ColumnWidth = nLargeur
    FAIRE
        :MsgErreur("Impossible de modifier la largeur.",ExceptionInfo())
        RETOUR
    FIN

    // Résumé : Masque ou rend visible une colonne
    // Syntaxe :
    // MasquerColonne ( [<sColonne> [, <bEtat>]])
    //
    // Paramètres :
    //     sColonne : Colonne à masquer ou à rendre visible (facultatif). Si elle n'est pas précisée, c'est la sélection en cours.
    //     bEtat (valeur par défaut=1) : Etat désiré (masquer ou rendre visible) : Vrai pour masquer, Faux pour rendre visible
    // Valeur de retour :
    //     Aucune

    PROCÉDURE MasquerColonne(sColonne="", bEtat=Vrai)

    SI sColonne<>"" ALORS
        // on sélectionne la colonne voulue
        :SelectionnerCellules(sColonne)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une colonne.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // on change son état
        SI bEtat ALORS
            :m_pautExcel>>Selection>>EntireColumn>>Hidden = Vrai
        SINON
            :m_pautExcel>>Selection>>EntireColumn>>Hidden = Faux
        FIN
    FAIRE
        :MsgErreur("Impossible de masquer la colonne.",ExceptionInfo())
        RETOUR
    FIN

    // Résumé : Masque ou rend visible une ligne
    // Syntaxe :
    // MasquerLigne ( [<sLigne> [, <bEtat>]])
    //
    // Paramètres :
    //     sLigne : Ligne à masquer ou à rendre visible (facultatif). Si elle n'est pas précisée, c'est la sélection en cours.
    //     bEtat (valeur par défaut=1) :  Etat désiré (masquer ou rendre visible) : Vrai pour masquer, Faux pour rendre visible
    // Valeur de retour :
    //     Aucune

    PROCÉDURE MasquerLigne(sLigne="", bEtat=Vrai)


    SI sLigne<>"" ALORS
        // on sélectionne la colonne voulue
        :SelectionnerCellules(sLigne)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une ligne.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // on change son état
        SI bEtat ALORS
            :m_pautExcel>>Selection>>EntireRow>>Hidden = Vrai
        SINON
            :m_pautExcel>>Selection>>EntireRow>>Hidden = Faux
        FIN
    FAIRE
        :MsgErreur("Impossible de masquer la ligne.",ExceptionInfo())
        RETOUR
    FIN
     
  • *!vince!*

    *!vince!* Member

    Inscrit:
    Juin 26, 2018
    Messages:
    62
    J'aime reçus:
    26
    Code (Text):
    // Résumé : Crée un nouveau document
    // Syntaxe :
    // NouveauDoc ()
    //
    // Paramètres :
    //    Aucun
    // Valeur de retour :
    //     Aucune

    PROCÉDURE NouveauDoc()

    QUAND EXCEPTION DANS
        //Ajouter un classeur
        :m_pautExcel>>Workbooks>>Add()
    FAIRE
        :MsgErreur("Impossible d'ajouter un classeur.",ExceptionInfo())
        RETOUR
    FIN

    // il n'y a pas de classeur en cours
    :m_sClasseurEnCours=""

    // Résumé : Renvoie la constante correspondant au type de graphe désiré
    // Syntaxe :
    // [ <Résultat> = ] nTypeGraphe (<sType>)
    //
    // Paramètres :
    //     sType : type de graphe dont on veut la constante
    // Valeur de retour :
    //     entier : Constante Excel correspondant à un type de graphe

    PROCÉDURE nTypeGraphe(sType)


    nConstGraphe est un entier

    SELON sType
        CAS "HISTO"
            nConstGraphe = 51 // xlColumnClustered      
        CAS "COURBE"
            nConstGraphe = 65 // xlLineMarkers
        CAS "SECTEUR"
            nConstGraphe = 5 // xlPie
    FIN

    RENVOYER nConstGraphe


    // Résumé : Teste la présence d'un logiciel Office (Word, Excel ...),  et recherche sa version la plus récente
    // Syntaxe :
    // [ <Résultat> = ] nVersionOffice (<sProgramme>)
    //
    // Paramètres :
    //     sProgramme : <indiquez ici le rôle de sProgramme>
    // Valeur de retour :
    //     entier : 0 si le logiciel n'est pas trouvé, son numéro de version s'il est trouvé

    PROCÉDURE nVersionOffice(sProgramme)

    sCle, sSousCle sont des chaînes
    nVersion est un entier = 0

    // on teste la présence d'Office
    sCle = RegistrePremièreSousClé("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\")

    // si Office n'est pas présent sur la machine, Word ne peut pas être présent
    SI sCle~="" ALORS RENVOYER 0

    // si Office est présent sur la machine, on teste la présence du programme
    TANTQUE sCle<>""
        // Première sous clé du programme
        sSousCle = RegistrePremièreSousClé(sCle+"\"+sProgramme+"\")
        // si le programme est trouvé, on récupère sa version
        SI sSousCle<>"" ALORS
            // on ne conserve que la version la plus récente
            nVersion = Max(Val(ExtraitChaîne(sCle,1,"\",DepuisFin)),nVersion)      
        FIN
        // Clé suivante
        sCle = RegistreCléSuivante(sCle)
    FIN

    RENVOYER nVersion


    // Résumé : Ouvre un classeur Excel
    // Syntaxe :
    // OuvrirClasseur ( [<sClasseur>])
    //
    // Paramètres :
    //     sClasseur : Classeur à ouvrir (facultatif). S'il n'est pas précisé, un sélecteur s'ouvre
    // Valeur de retour :
    //     Aucune

    PROCÉDURE OuvrirClasseur(sClasseur="")

    SI sClasseur="" ALORS
        // Sélection ou création d'un fichier Word
        sClasseur=fSélecteur("","","Sélectionnez un document...",...
                                "Document Excel (*.XLS)"+TAB+"*.XLS","XLS",...
                                fselOuvre)

        // Aucun fichier sélectionné
        SI sClasseur="" ALORS RETOUR
    FIN

    QUAND EXCEPTION DANS
        // on ouvre le classeur demandé
        :m_pautExcel>>Workbooks>>Open(sClasseur)
    FAIRE
        :MsgErreur("Impossible d'ouvrir le classeur.",ExceptionInfo())
        RETOUR
    FIN

    // ce document devient le document en cours
    :m_sClasseurEnCours = sClasseur


    // Résumé : Modifie la police
    // Syntaxe :
    //Police ( [<sPlage> [, <sPolice> [, <nTaille> [, <bGras> [, <bItalique> [, <bSouligne> [, <sCouleurTexte> [, <sCouleurFond>]]]]]]]])
    //
    // Paramètres :
    //    sPlage (valeur par défaut="") : plage de cellules dont on veut modifier la police (facultatif). Si elle n'es pas précisée, c'est la sélection courante
    //    sPolice (valeur par défaut="") : Police désirée (facultatif)
    //    nTaille (valeur par défaut=0) : Taille de police désirée (facultatif)
    //    bGras (valeur par défaut="") : Définit la graisse de la police (facultatif)
    //    bItalique (valeur par défaut="") : Définit l'italique de la police (facultatif)
    //    bSouligne (valeur par défaut="") : Définit le souligné de la police (facultatif)
    //    sCouleurTexte (valeur par défaut=0) : Couleur du texte (facultatif)
    //    sCouleurFond (valeur par défaut="") : Couleur de fond (facultatif)
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Police(sPlage="", sPolice="", nTaille=0 ,bGras="", bItalique="", bSouligne="", nCouleurTexte=-1, nCouleurFond=-1)


    SI sPlage<>"" ALORS
        // on sélectionne la plage de cellules désirée
        :SelectionnerCellules(sPlage)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une cellule.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // Police désirée
        SI sPolice<>"" ALORS
            :m_pautExcel>>Selection>>Font>>Name = sPolice
        FIN
       
        // Taille de la police désirée
        SI nTaille>0 ALORS
            :m_pautExcel>>Selection>>Font>>Size = nTaille
        FIN
    FAIRE
        :MsgErreur("Impossible de modifier la police.",ExceptionInfo())
        RETOUR
    FIN

    // graisse
    :Graisse(bGras, bItalique, bSouligne)



    // couleurs de fond et de texte
    :Couleur(nCouleurTexte, nCouleurFond, sPlage)


    // Résumé : Quitte Excel
    // Syntaxe :
    // Quitter ()
    //
    // Paramètres :
    //    Aucun
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Quitter()

    // pour éviter que Excel se mette en erreur
    QUAND EXCEPTION DANS
        // on quitte Excel
        :m_pautExcel>>Quit()
    FAIRE
        :MsgErreur("Impossible de fermer l'application.",ExceptionInfo())
        RETOUR
    FIN

    // Résumé : Renomme une feuille Excel
    // Syntaxe :
    // RenommerFeuille (<sNouveauNom> [, <sAncienNom>])
    //
    // Paramètres :
    //     sNouveauNom : Nouveau nom de la feuille
    //     sAncienNom : Ancien nom de la feuille (facultatif -> feuille en cours)
    // Valeur de retour :
    //     Aucune

    PROCÉDURE RenommerFeuille(sNouveauNom, sAncienNom="")

    QUAND EXCEPTION DANS
        SI sAncienNom<>"" ALORS
            // Renomme la feuille de calcul <sAncienNom> en <sNouveauNom>
            :m_pautExcel>>Sheets(sAncienNom)>>Name=sNouveauNom
        SINON
            // Renomme la feuille de calcul active en <sNouveauNom>
            :m_pautExcel>>ActiveSheet>>Name=sNouveauNom
        FIN
    FAIRE
        :MsgErreur("Impossible de renommer la feuille.",ExceptionInfo())  
        RETOUR
    FIN

    // Résumé : Sélectionne une cellule ou une plage de cellules
    // Syntaxe :
    // SelectionnerCellules (<sCellules>)
    //
    // Paramètres :
    //     sCellules : Plage de cellules à sélectionner
    // ex: A1 pour une seule cellule
    // ex: A1:B2  pour une plage de cellules
    // ex: A pour une colonne
    // ex: A:C pour une plage de colonnes
    // ex: 2 pour une ligne
    // ex: 2:5 pour une plage de lignes
    // Valeur de retour :
    //     Aucune

    PROCÉDURE SelectionnerCellules(sCellules)

    sCellule, sLigne1, sLigne2, sColonne1, sColonne2, sCh sont des chaînes
    i est un entier

    sPlage  est une chaîne = sCellules

    // si on reçoit A1, on le formate en A1:A1
    SI Position(sPlage,":")=0 ALORS
        sPlage = sPlage+":"+sPlage
    FIN

    // première cellule
    sCellule = ExtraitChaîne(sPlage,1,":")
    POUR i=1 _À_ Taille(sCellule)
        sCh = sCellule[[i]]
        SI NumériqueVersChaîne(Val(sCh))~=sCh ALORS
            sLigne1 += sCh
        SINON
            sColonne1 += sCh
        FIN
    FIN

    // deuxième cellule
    sCellule = ExtraitChaîne(sPlage,2,":")
    POUR i=1 _À_ Taille(sCellule)
        sCh = sCellule[[i]]
        SI NumériqueVersChaîne(Val(sCh))~=sCh ALORS
            sLigne2 += sCh
        SINON        
            sColonne2 += sCh
        FIN
    FIN

    // Sélection de la plage
    QUAND EXCEPTION DANS
        // si c'est une plage de lignes
        SI (sColonne1~="" ET sColonne2~="") ALORS
            :m_pautExcel>>Rows(sLigne1+":"+sLigne2)>>Select()
            RETOUR
        FIN
       
        // si c'est une plage de colonnes
        SI (sLigne1~="" ET sLigne2~="") ALORS
            :m_pautExcel>>Columns(sColonne1+":"+sColonne2)>>Select()
            RETOUR
        FIN
       
        // si c'est une plage de cellules
        SI (sLigne1<>"" ET sLigne2<>"" ET sColonne1<>"" ET sColonne2<>"") ALORS
            :m_pautExcel>>Range(sColonne1+sLigne1+":"+sColonne2+sLigne2)>>Select()
        SINON
            Info("La plage précisée est incorrecte.")  
        FIN

    FAIRE
        :MsgErreur("Impossible de sélectionner la plage.",ExceptionInfo())
        RETOUR
    FIN
     
  • *!vince!*

    *!vince!* Member

    Inscrit:
    Juin 26, 2018
    Messages:
    62
    J'aime reçus:
    26
    Code (Text):
    // Résumé : Sélectionne une feuille Excel
    // Syntaxe :
    // SelectionnerFeuille (<sFeuille>)
    //
    // Paramètres :
    //     sFeuille : Nom de la feuille à sélectionner
    // Valeur de retour :
    //     Aucune

    PROCÉDURE SelectionnerFeuille(sFeuille)

    QUAND EXCEPTION DANS
        //on sélectionne la feuille demandée
        :m_pautExcel>>Sheets(sFeuille)>>Select()
    FAIRE
        :MsgErreur("Impossible de sélectionner la feuille.",ExceptionInfo())
        RETOUR
    FIN

    // Résumé : Renvoie le contenu de la cellule
    // Syntaxe :
    // [ <Résultat> = ] sLireValeur (<sCellule>)
    //
    // Paramètres :
    //     sCellule : Cellule dont on veut lire le contenu
    // Valeur de retour :
    //     Type indéterminé : Contenu de la cellule

    PROCÉDURE sLireValeur(sCellule)


    QUAND EXCEPTION DANS
        RENVOYER :m_pautExcel>>Range(sCellule)>>Value
    FAIRE
        :MsgErreur("Impossible de lire la valeur.",ExceptionInfo())
        RENVOYER ""
    FIN


    // Résumé : Supprime une feuille Excel
    // Syntaxe :
    // SupprimerFeuille ( [<sNomFeuille>])
    //
    // Paramètres :
    //     sNomFeuille : Nom de la feuille à supprimer (facultatif-> feuille en cours)
    // Valeur de retour :
    //     Aucune

    PROCÉDURE SupprimerFeuille(sNomFeuille="")

    // On sélectionne la feuille désirée
    SI sNomFeuille<>"" ALORS
        :SelectionnerFeuille(sNomFeuille)
    FIN

    QUAND EXCEPTION DANS
        // Suppression de la feuille en cours du classeur
        :m_pautExcel>>ActiveWindow>>SelectedSheets>>Delete()
    FAIRE
        :MsgErreur("Impossible de supprimer la feuille.",ExceptionInfo())
        RETOUR
    FIN


    // Résumé : Trie une colonne
    // Syntaxe :
    // TrierColonne ( [<sColonne> [, <sOrdre>]])
    //
    // Paramètres :
    //     sColonne : Nom de la colonne à trier ex : B
    //     sOrdre (valeur par défaut="ASC") : Ordre de tri : ASC ou DESC
    // Valeur de retour :
    //     Aucune

    PROCÉDURE TrierColonne(sColonne="", sOrdre="ASC")

    // on sélectionne la colonne
    SI sColonne<>"" ALORS
        :SelectionnerCellules(sColonne)
    FIN

    // constante de Excel pour ordre
    nOrdre est un entier
    SI sOrdre~="DESC" ALORS
        nOrdre=2
    SINON
        nOrdre=1
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une colonne.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // tri
        :m_pautExcel>>Selection>>Sort(:m_pautExcel>>Selection, nOrdre)
    FAIRE
        :MsgErreur("Impossible de trier la colonne.",ExceptionInfo())
        RETOUR  
    FIN


    // Résumé : Définit l'état visible ou invisible de Excel
    // Syntaxe :
    //EstVisible ( [<bEtat>])
    //
    // Paramètres :
    //    bEtat (valeur par défaut=1) : Vrai : il sera visible, faux, il sera invisible
    // Valeur de retour :
    //     Aucune

    PROCÉDURE EstVisible(bEtat=Vrai)

    QUAND EXCEPTION DANS
        SI bEtat ALORS
            // Excel est visible
            :m_pautExcel>>visible=Vrai
        SINON
            // Excel n'est pas visible
            :m_pautExcel>>visible=Faux
        FIN
    FAIRE
        :MsgErreur("Impossible de rendre l'application (in)visible.",ExceptionInfo())  
        RETOUR
    FIN
    // Résumé : Gestion des erreurs
    // Syntaxe :
    // MsgErreur ([...])
    //
    // Paramètres :
    //     <*> : Les lignes d'erreur
    // Valeur de retour :
    //     Aucune

    PROCÉDURE MsgErreur(*)

    SI EnModeTest() ALORS
        WL.Erreur(MesParamètres)
    FIN
     
     
  • elghyati

    elghyati Member

    Inscrit:
    Jan 2, 2018
    Messages:
    56
    J'aime reçus:
    7

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Code (Text):
    CExcel est une Classe
        m_pautExcel est un objet OLE dynamique    // Pointeur sur objet actif
        m_nVersion est un entier          // Version de Excel installée sur le poste
        m_sClasseurEnCours est une chaîne    // nom du classeur en cours
    FIN

    CONSTANT
        CST_GAUCHE = 1
        CST_CENTRE = 2
        CST_DROITE = 3
    FIN


    PROCÉDURE Constructeur(bRecycle=Faux)
    // si bRecycle=Vrai, on réutilise le Excel qui est déjà ouvert

    // on teste la présence de Excel et on récupère sa version
    nVersion est un entier
    nVersion = :nVersionOffice("Excel")
    SI nVersion = 0 ALORS
        FinProgramme("Excel n'a pas été installé sur cette machine, vous ne pouvez pas utiliser cette classe !")
        RETOUR
    FIN
    SI nVersion < 8 ALORS
        FinProgramme("Pour utiliser cette classe, vous devez avoir Excel 97 ou supérieur !")
        RETOUR  
    FIN

    // version de Excel
    :m_nVersion = nVersion

    // si Excel n'est pas déja alloué
    SI :m_pautExcel = Null ALORS
        // si l'utilisateur veut réutiliser le Excel déjà ouvert
        SI bRecycle ALORS
            :m_pautExcel = ObjetActif("Excel.Application")
            SI :m_pautExcel = Null ALORS
                // il n'y avait aucun Excel déjà ouvert, on en alloue un
                :m_pautExcel = allouer un objet OLE "Excel.Application"
            FIN
        SINON
            // on en alloue un nouveau
            :m_pautExcel = allouer un objet OLE "Excel.Application"
        FIN
    FIN

    // Rendre visible
    :m_pautExcel>>visible=Vrai
    PROCÉDURE Destructeur()

    SI :m_pautExcel<>Null ALORS
        :Quitter()
        Multitâche(-10)
     
        // on libère le pointeur
        libérer :m_pautExcel
    FIN

    // Résumé : Ajoute une feuille dans le classeur
    // Syntaxe :
    // AjouterFeuille ( [<sNomFeuille>])
    //
    // Paramètres :
    //     sNomFeuille : Nom à donner à la nouvelle feuille
    // Valeur de retour :
    //     Aucune

    PROCÉDURE AjouterFeuille(sNomFeuille="")

    QUAND EXCEPTION DANS
        //Ajouter une feuille dans le classeur
        :m_pautExcel>>Sheets>>Add()
    FAIRE
        :MsgErreur("Impossible d'ajouter une feuille au classeur.",ExceptionInfo())
        RETOUR
    FIN

    // Renommage si nécessaire
    SI sNomFeuille<>"" ALORS
        :RenommerFeuille(sNomFeuille)
    FIN


    // Résumé : Permet de créer un graphe
    // Syntaxe :
    // AjouterGraphe ( [<sPlage> [, <sType> [, <sTitre> [, <bLegende>]]]])
    //
    // Paramètres :
    //     sPlage : Plage de cellule à sélectionner (peut être vide si des cellules sont déjà sélectionnées)
    //     sType (valeur par défaut="HISTO") : Type de graphe : HISTO, COURBE, SECTEUR
    //     sTitre : Nom du graphe (facultatif)
    //     bLegende (valeur par défaut=0) : à vrai si on veut la légende (les données sont récupérer dans la plage de cellules)
    // Valeur de retour :
    //     Aucune

    PROCÉDURE AjouterGraphe(sPlage="", sType="HISTO", sTitre="", bLegende=Faux)


    SI sPlage<>"" ALORS
        // Sélection de la plage de cellules
        :SelectionnerCellules(sPlage)
    FIN

    QUAND EXCEPTION DANS
        // ajout d'un graphe
        :m_pautExcel>>Charts>>Add()
     
        // type histogramme
        :m_pautExcel>>ActiveChart>>ChartType = :nTypeGraphe(sType)
     
    FAIRE
        :MsgErreur("Impossible d'ajouter le graphe.", ExceptionInfo())
        RETOUR
    FIN

    QUAND EXCEPTION DANS  
        // graphe dans nouvelle feuille (1er paramètre : xlLocationAsObject = 2)
        :m_pautExcel>>ActiveChart>>Location(2, :m_pautExcel>>ActiveSheet>>Name)
    FAIRE
        // Erreur non fatale
    FIN

    QUAND EXCEPTION DANS  
        // si un titre est précisé
        SI sTitre<>"" ALORS
            :m_pautExcel>>ActiveChart>>HasTitle = Vrai
            :m_pautExcel>>ActiveChart>>ChartTitle>>Characters>>Text = sTitre
        SINON
            :m_pautExcel>>ActiveChart>>HasTitle = Faux
        FIN
     
        // pas de légende
        SI bLegende ALORS
            :m_pautExcel>>ActiveChart>>HasLegend = Vrai
        SINON
            :m_pautExcel>>ActiveChart>>HasLegend = Faux
        FIN

    FAIRE
        :MsgErreur("Impossible d'ajouter le graphe.", ExceptionInfo())
        RETOUR
    FIN


    // Résumé : Applique un alignement horizontal à la cellule sélectionnée ou à une plage de cellules
    // Syntaxe :
    //Aligner (<nAlignement> [, <sPlage>])
    //
    // Paramètres :
    //    nAlignement : Alignement souhaité
    //    sPlage (valeur par défaut="") : Plage de cellules à sélectionner (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Aligner(nAlignement, sPlage="")

    // on sélectionne la plage demandée
    SI sPlage<>"" ALORS
        :SelectionnerCellules(sPlage)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une cellule.")
        RETOUR
    FIN

    nAlignConstante est un entier
    SELON nAlignement
        CAS CST_GAUCHE
            nAlignConstante = -4131 //xlLeft
        CAS CST_CENTRE
            nAlignConstante = -4108 //xlCenter
        CAS CST_DROITE
            nAlignConstante = -4152 //xlRight
        AUTRE CAS
            nAlignConstante = -4131 //xlLeft
    FIN                  
     
    QUAND EXCEPTION DANS
        // on réalise l'alignement demandé  
        :m_pautExcel>>Selection>>HorizontalAlignment = nAlignConstante  
    FAIRE
        :MsgErreur("Impossible d'appliquer l'alignement.", ExceptionInfo())
        RETOUR
    FIN
    // Résumé : Coller dans une cellule ou un ensemble de cellules
    // Syntaxe :
    // Coller ( [<sCellule>])
    //
    // Paramètres :
    //     sCellule : Cellule en haut à gauche de la zone de destination (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Coller(sCellule="")

    // sélection de la cellule
    SI sCellule<>"" ALORS
        :SelectionnerCellules(sCellule)
    FIN

    QUAND EXCEPTION DANS
        // coller dans la zone
        :m_pautExcel>>ActiveSheet>>Paste()
    FAIRE
            RETOUR
    FIN



    // Résumé : Copie d'une cellule ou d'un ensemble de cellules
    // Syntaxe :
    // Copier ( [<sPlage>])
    //
    // Paramètres :
    //     sPlage : Zone à copier (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Copier(sPlage="")

    // sélection de la plage de cellules
    SI sPlage<>"" ALORS
        :SelectionnerCellules(sPlage)
    FIN

    QUAND EXCEPTION DANS
        // copier de la zone
        :m_pautExcel>>Selection>>Copy()
    FAIRE
        RETOUR
    FIN
    // Résumé : Applique une couleur de texte et/ou de fond à une cellule ou un ensemble de cellules
    // Syntaxe :
    //Couleur ( [<sCouleurTexte> [, <sCouleurFond> [, <sPlage>]]])
    //
    // Paramètres :
    //    sCouleurTexte (valeur par défaut="") : Couleur désirée pour le texte (facultatif) : AUCUN, NOIR, ROUGE, VERT, BLEU, JAUNE
    //    sCouleurFond (valeur par défaut="") : Couleur désirée pour le fond de cellule (facultatif) : AUCUN, NOIR, ROUGE, VERT, BLEU, JAUNE
    //    sPlage (valeur par défaut="") : Plage de cellules à sélectionner (facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Couleur(nCouleurTexte = -1, nCouleurFond = -1, sPlage="")

    // Sélection de la cellule
    SI sPlage<>"" ALORS
        :SelectionnerCellules(sPlage)
    FIN

    // on vérifie la sélection
    QUAND EXCEPTION DANS
        :m_pautExcel>>Selection
    FAIRE
        Info("Vous devez d'abord sélectionner une cellule.")
        RETOUR
    FIN

    QUAND EXCEPTION DANS
        // couleur de police
        SI nCouleurTexte<>-1 ALORS
            :m_pautExcel>>Selection>>Font>>Color = nCouleurTexte
        FIN
     
        // couleur de fond
        SI nCouleurFond<> -1 ALORS
            :m_pautExcel>>Selection>>Interior>>Color = nCouleurFond
        FIN
     
     
    FAIRE
        :MsgErreur("Impossible de modifier la couleur.",ExceptionInfo())
        RETOUR
    FIN


    // Résumé : Effectue un "Couper" sur une cellule ou un ensemble de cellules
    // Syntaxe :
    // Couper ( [<sPlage>])
    //
    // Paramètres :
    //     sPlage : Zone à copier(facultatif). Si elle n'est pas précisée, ce sera la sélection en cours
    // Valeur de retour :
    //     Aucune

    PROCÉDURE Couper(sPlage="")

    // sélection de la plage de cellules
    SI sPlage<>"" ALORS
        :SelectionnerCellules(sPlage)
    FIN

    QUAND EXCEPTION DANS
        // couper de la zone
        :m_pautExcel>>Selection>>Cut()
    FAIRE
        RETOUR
    FIN

    // Résumé : Déplace une feuille donnée à la position souhaitée
    // Syntaxe :
    // DeplacerFeuille (<sFeuille>, <nPosition>)
    //
    // Paramètres :
    //     sFeuille : Nom de la feuille à déplacer
    //     nPosition : Position de destination
    // Valeur de retour :
    //     Aucune

    PROCÉDURE DeplacerFeuille(sFeuille, nPosition)

    QUAND EXCEPTION DANS
        // on déplace la feuille demandée après l'onglet <nPosition>
        :m_pautExcel>>Sheets(sFeuille)>>Move(:m_pautExcel>>Sheets(nPosition))
    FAIRE
        :MsgErreur("Impossible de déplacer la feuille.",ExceptionInfo())
        RETOUR
    FIN
    // Résumé : Permet d'écrire une valeur dans une cellule
    // Syntaxe :
    // EcrireValeur (<sCellule>, <sValeur>)
    //
    // Paramètres :
    //     sCellule : Cellule dans laquelle on veut écrire
    //     sValeur : Valeur à écrire
    // Valeur de retour :
    //     Aucune

    PROCÉDURE EcrireValeur(sCellule, sValeur)


    // pour éviter que Excel se mette en erreur
    QUAND EXCEPTION DANS
        // Ecrire une valeur dans la cellule passée en paramètre
        :m_pautExcel>>Range(sCellule)>>Value = sValeur
    FAIRE
        :MsgErreur("Impossible d'écrire la valeur.",ExceptionInfo())
        RETOUR
    FIN
    Cliquez pour agrandir...

    Ok Merci
     
  • irobot

    irobot Active Member
    MEMBRE WX

    Inscrit:
    Jan 10, 2018
    Messages:
    143
    J'aime reçus:
    131
    y a plus simple !
    en 24, tu fais juste un supprimeligne(tonxls,ta_ligne).
     
  • *!vince!*

    *!vince!* Member

    Inscrit:
    Juin 26, 2018
    Messages:
    62
    J'aime reçus:
    26
    Elghyati expliquait plus haut qu'elle n'avait pas la version 24.

     
  • Partager cette page

    Chargement...