Bonjour,
Pensez a utiliser la classe CExcel qui est très pratique et que vous trouverez dans l'exemple < WD Pilotage de Excel >
A titre d'exemple, voici un bout de code de récupération de données d'une feuille Excel - affichage dans une table - et enregistrement des données dans un fichier < Situation.Fic >
// [< Initialisation des variables >] // Les données sont reprises dans des champs de saisies préfixés : SAI_.....
// Chemin complet du fichier Excel [< NomFichier.xls >] sNomXls = SansEspace(SAI_FichXls)
// Exercice sExerc = SAI_Exercice
// Feuille du classeur Excel : Exemple < A2006 > sFeuille = ChaîneConstruit("A%1", SansEspace(sExerc))
// Nbre de ligne dans tableau Excel nNbLgn = SAI_NbLgn
// [< Jauge >] gnValeur = 1 gnValMaxEncours = nNbLgn
Lib_Copie = " Mise en place du programme "
// [< Instanciation de la classe Excel >] Ex1 est un objet CExcel
// [< Ouverture du classeur / Sélectionner la feuille >] Ex1:Ouvrir(sNomXls) Ex1:SelectionnerFeuille(sFeuille)
// Ligne de départ dans Excel nLgn = 4
POUR Ind=1 A nNbLgn
sCode = Ex1:sLireValeur("B" + nLgn ) sIdCpte = Ex1:sLireValeur("C" + nLgn )
// [< Libellé >] SI sCode = "#1" ALORS sLibCompte = Ex1:sLireValeur("D" + nLgn ) sLibTotal = "" sLibelle = sLibCompte FIN
// [< Total >] SI sCode = "#2" ALORS sLibCompte = "" sLibTotal = Ex1:sLireValeur("D" + nLgn ) sLibelle = sLibTotal bValide = Vrai FIN
nMontant = Ex1:sLireValeur("F" + nLgn ) nMontant = Arrondi(nMontant,2)
// [< Séparation >] SI sCode = "#3" ALORS sIdCpte = "" TableAjouteLigne(TabComptes, sCode) bValide = Faux FIN
Lib_Copie = ChaîneConstruit("Copie des données : %1 %2", sIdCpte, sLibelle) SI sCode = "#1" ET nMontant <> 0 ALORS bValide = Vrai
SI bValide = Vrai ALORS
TableAjouteLigne(TabComptes, sCode, sIdCpte, sLibCompte, sLibTotal, nMontant)
// [< Enregistrer Données >] Situation.Exercice = sExerc Situation.Code = sCode Situation.IDCompte = sIdCpte Situation.LibCompte = sLibelle Situation.Montant = nMontant SI PAS HAjoute(Situation) ALORS Ouvre("MsgBox", " Erreur", ">>> Impossible d'ajouter un enregistrement"+RC+HErreurInfo(), 1) FIN
FIN
bValide = Faux
// [< Jauge >] ProgresJauge() Multitâche(5)
// Ligne suivante nLgn++ FIN
// Libérer [< Objet Excel >] Ex1:Quitter()
J'espère avoir pu vous aider
Cordialement
Albert |