Et je n'ai pas windev 23, je passe la main...
-
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.
Et je n'ai pas windev 23, je passe la main...Cliquez pour agrandir...
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
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.
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
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
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
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
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
FINCliquez pour agrandir...
Ok Merci
y a plus simple !
en 24, tu fais juste un supprimeligne(tonxls,ta_ligne).
Elghyati expliquait plus haut qu'elle n'avait pas la version 24.