PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → cellules nommées dans Excel
cellules nommées dans Excel
Started by peg, Sep., 13 2004 8:36 PM - 3 replies
Posted on September, 13 2004 - 8:36 PM
bonjour,
comment récupérer la valeur d'une cellule en faisant référence à son nom et non pas à ses coordonnées ?
Posted on September, 19 2004 - 9:02 PM
J'ai été confronté au problème non pas pour récupérer une valeur mais pour l'écrire... mais la méthode est tres proche. J'ai écris cette procédure il y à longtemps je la livre pour ce qu'elle vaut.

PROCEDURE CreClasseurExcel(Liste)
LOCAL
_Ch est une chaîne
Ch1,Ch2 sont des chaînes
DateDevis est une chaîne
I,J,K sont des entiers
uneLigne est une chaîne
TitreSection est une chaîne
CommentaireSection est une chaîne
RangSection est un entier
Feuille est une chaîne
RangFeuille est un entier
nLigneFin est un entier
RubriqueDuDescriptif est une chaîne
sNomClasseur sont des chaînes
sNomFeuille est une chaîne
_sNomFeuille est une chaîne


DateDevis = DateVersJourEnLettre(DateSys())+" "+Milieu(DateVersChaine(DateDuJour()),1,2)+" "+DateVersMoisEnLettre(DateSys())+" "+Gauche(DateDuJour(),4)

SI ObjetActif("Excel.Application") <> Null ALORS
// Récupération de l'instance de Excel existante
MaFeuilleXLS = ObjetActif("Excel.Application")
SINON
// Allocation de l'objet automation "MaFeuilleXLS"
MaFeuilleXLS = allouer un objet Automation "Excel.Application"
FIN
// Excel devient visible
MaFeuilleXLS>>Visible = Vrai
// Ouverture d'un classeur d'Excel
MaFeuilleXLS>>Workbooks>>Add()
//

//Page de garde....
MaFeuilleXLS>>ActiveSheet>>Name="Descriptif"
VersCellule(MaFeuilleXLS,"A",1,DateDevis,"",40,"Gauche")
I = 1
J = 1
BOUCLE
uneLigne = ExtraitChaîne(RefClient,I,RC)
SI uneLigne = EOT ALORS SORTIR
SI I = 1 ALORS
VersCellule(MaFeuilleXLS,"B",J,uneLigne,"100",35,"Gauche","","Courrier",12)
sNomClasseur = "Etude_"+uneLigne
sNomClasseur = Remplace(sNomClasseur,"/"," ")
sNomClasseur = Remplace(sNomClasseur,"\"," ")
sNomClasseur = Milieu(sNomClasseur,1,30)
SINON
VersCellule(MaFeuilleXLS,"B",J,uneLigne,"000",35,"Gauche")
FIN
J++
I++
FIN
CouleursExcel(MaFeuilleXLS,"A1:F4","Noir","Gris")
J=6
VersCellule(MaFeuilleXLS,"A",J, "DESCRIPTIF SCHEMATIQUE","100",40,"Centre","","Courrier",12)
VersCellule(MaFeuilleXLS,"B",J, PType,"100",40,"Gauche","","Courrier",12)
J=7
VersCellule(MaFeuilleXLS,"E",J, "SYNTHESE","100",0,"Droite","","Courrier",10)
J=8
VersCellule(MaFeuilleXLS,"E",J, "Francs","100",0,"Centre")
VersCellule(MaFeuilleXLS,"F",J, "Euros","100",0,"Centre")
J=9
//-----------------------
TableSelectMoins(Table1)
//-----------------------
POUR I = 1 A TableOccurrence(Table1,toTotal)
TableSelectPlus(Table1,I)
uneLigne = Table1.Section..ValeurAffichée
Ch1 = SansEspace(ExtraitChaîne(uneLigne,1,":"))
Ch2 = ExtraitChaîne(uneLigne,2,":")
RangSection = Val(Ch1)
TitreSection = ExtraitChaîne(Ch2,1,"../..")
CommentaireSection = ExtraitChaîne(Ch2,2,"../..")
SI Position(RubriqueDuDescriptif,uneLigne) = 0 ALORS //Cette section n'à pas encore ete traitée
RubriqueDuDescriptif += uneLigne
VersCellule(MaFeuilleXLS,"A",J,TitreSection)
VersCellule(MaFeuilleXLS,"B",J,CommentaireSection,"010")
MaFeuilleXLS>>Range("E"+J)>>Name="SyntheseF"+Ch1
MaFeuilleXLS>>Range("E"+J)>>NumberFormat = "##################0,00\ F"
// MaFeuilleXLS>>Selection>>NumberFormat = "##################0,00\ F"
MaFeuilleXLS>>Range("F"+J)>>Name="SyntheseE"+Ch1
MaFeuilleXLS>>Range("F"+J)>>NumberFormat = "##################0,00\ €"
// MaFeuilleXLS>>Selection>>NumberFormat = "##################0,00\ €"
J++
FIN
//-----------------------
TableSelectMoins(Table1)
//-----------------------
FIN
J++
//-------------------------------------------------------------------------------------------------------
K = J-2
VersCellule(MaFeuilleXLS,"D",J, "Total achat HT","101",0,"","")
MaFeuilleXLS>>Range("E"+J)>>Name="TotalAchatHTF"
MaFeuilleXLS>>Range("F"+J)>>Name="TotalAchatHTE"
MaFeuilleXLS>>Range("TotalAchatHTF")>>Value="=Somme(E9:E"+K
MaFeuilleXLS>>Range("TotalAchatHTF")>>NumberFormat = "##################0,00\ F"
MaFeuilleXLS>>Range("TotalAchatHTE")>>Value="=Somme(F9:F"+K
MaFeuilleXLS>>Range("TotalAchatHTE")>>NumberFormat = "##################0,00\ €"
CouleursExcel(MaFeuilleXLS,"D"+J+":F"+J,"Noir","Gris")
J++
//----------------------------------------
VersCellule(MaFeuilleXLS,"B",J, "Coef 1:","000",0,"Droite","")
VersCellule(MaFeuilleXLS,"C",J, Coef_x1,"000",0,"","Nombre")
VersCellule(MaFeuilleXLS,"D",J, "Prix de vente","100",14,"Droite","")
MaFeuilleXLS>>Range("E"+J)>>Name="TotalVenteFHT_1"
MaFeuilleXLS>>Range("F"+J)>>Name="TotalVenteEHT_1"
MaFeuilleXLS>>Range("TotalVenteFHT_1")>>Value="=C"+J+"*TotalAchatHTF"
MaFeuilleXLS>>Range("TotalVenteFHT_1")>>NumberFormat = "##################0,00\ F"
MaFeuilleXLS>>Range("TotalVenteEHT_1")>>Value="=C"+J+"*TotalAchatHTE"
MaFeuilleXLS>>Range("TotalVenteEHT_1")>>NumberFormat = "##################0,00\ €"
CouleursExcel(MaFeuilleXLS,"D"+J+":F"+J,"Noir","Gris")
J++
VersCellule(MaFeuilleXLS,"B",J, "Coef 2:","000",0,"Droite","")
VersCellule(MaFeuilleXLS,"C",J, Coef_x2,"000",0,"","Nombre")
VersCellule(MaFeuilleXLS,"D",J, "Prix de vente","100",14,"Droite","")
MaFeuilleXLS>>Range("E"+J)>>Name="TotalVenteFHT_2"
MaFeuilleXLS>>Range("F"+J)>>Name="TotalVenteEHT_2"
MaFeuilleXLS>>Range("TotalVenteFHT_2")>>Value="=C"+J+"*TotalAchatHTF"
MaFeuilleXLS>>Range("TotalVenteFHT_2")>>NumberFormat = "##################0,00\ F"
MaFeuilleXLS>>Range("TotalVenteEHT_2")>>Value="=C"+J+"*TotalAchatHTE"
MaFeuilleXLS>>Range("TotalVenteEHT_2")>>NumberFormat = "##################0,00\ €"
CouleursExcel(MaFeuilleXLS,"D"+J+":F"+J,"Noir","Gris")
J++
VersCellule(MaFeuilleXLS,"B",J, "Coef 3:","000",0,"Droite","")
VersCellule(MaFeuilleXLS,"C",J, Coef_x3,"000",0,"","Nombre")
VersCellule(MaFeuilleXLS,"D",J, "Prix de vente","100",14,"Droite","")
MaFeuilleXLS>>Range("E"+J)>>Name="TotalVenteFHT_3"
MaFeuilleXLS>>Range("F"+J)>>Name="TotalVenteEHT_3"
MaFeuilleXLS>>Range("TotalVenteFHT_3")>>Value="=C"+J+"*TotalAchatHTF"
MaFeuilleXLS>>Range("TotalVenteFHT_3")>>NumberFormat = "##################0,00\ F"
MaFeuilleXLS>>Range("TotalVenteEHT_3")>>Value="=C"+J+"*TotalAchatHTE"
MaFeuilleXLS>>Range("TotalVenteEHT_3")>>NumberFormat = "##################0,00\ €"
CouleursExcel(MaFeuilleXLS,"D"+J+":F"+J,"Noir","Gris")
J++

//----------------------------------------
//
//Feuilles de Section
I = 1
uneLigne = ExtraitChaîne(Liste,I)
TANTQUE uneLigne <> EOT
Ch1 = SansEspace(ExtraitChaîne(uneLigne,1,":"))
Ch2 = ExtraitChaîne(uneLigne,2,":")
RangSection = Val(Ch1)
TitreSection = ExtraitChaîne(Ch2,1,"../..")
CommentaireSection = ExtraitChaîne(Ch2,2,"../..")
RangFeuille = I+1
Feuille = "Feuil"+RangFeuille
QUAND EXCEPTION DANS
MaFeuilleXLS>>Sheets(Feuille)>>Select()
FAIRE
MaFeuilleXLS>>Sheets>>Add()
FIN
TitreSection = Remplace(TitreSection,"/"," ")
TitreSection = Remplace(TitreSection,"\"," ")
sNomFeuille = Milieu(TitreSection,1,30)
MaFeuilleXLS>>ActiveSheet>>Name=sNomFeuille
_Ch = MaFeuilleXLS>>Range( "Descriptif!B1")>>Value +" "+ MaFeuilleXLS>>Range( "Descriptif!B4")>>Value
VersCellule(MaFeuilleXLS,"A",1, _Ch,"011",0,"Gauche","","Courrier",8)
VersCellule(MaFeuilleXLS,"B",1,TitreSection,"101",0,"Gauche","","Courrier",10)
VersCellule(MaFeuilleXLS,"F",1,"Section n° ","010",0,"Droite","","Courrier",8)
VersCellule(MaFeuilleXLS,"G",1,Val(Ch1),"010",0,"Gauche")
CouleursExcel(MaFeuilleXLS,"A1:G1","Noir","Gris")
J=3
VersCellule(MaFeuilleXLS,"A",J,"DESIGNATION DU MATERIEL","100",35,"Centre")
VersCellule(MaFeuilleXLS,"B",J,"QTE","100",0,"Centre")
VersCellule(MaFeuilleXLS,"C",J,"P.U. Francs","100",16,"Centre")
VersCellule(MaFeuilleXLS,"D",J,"Total ach. Francs","100",16,"Centre")
VersCellule(MaFeuilleXLS,"E",J,"P.U. Euros","100",16,"Centre")
VersCellule(MaFeuilleXLS,"F",J,"Total ach. Euros","100",16,"Centre")
VersCellule(MaFeuilleXLS,"G",J,"Fournisseur","100",16,"Centre")
J=4
//-----------------------
TableSelectMoins(Table1)
//-----------------------
POUR K = 1 A TableOccurrence(Table1,toTotal)
TableSelectPlus(Table1,K)
uneLigne = Table1.Section..ValeurAffichée
SI Val(Ch1) = Val(ExtraitChaîne(uneLigne,1,":")) ALORS
SI eDeviseMemParDéfaut() = 0 ALORS //EUROS
VersCellule(MaFeuilleXLS,"A",J,Table1.Désignation,"000",0,"Gauche")
VersCellule(MaFeuilleXLS,"B",J,Table1.Quantité,"000",0,"Centre")
VersCellule(MaFeuilleXLS,"C",J,eVersDevise(Table1.Prix_d_achat,eFRF,2),"000",0,"Droite","Nombre")
MaFeuilleXLS>>Range("C"+J)>>NumberFormat = "##################0,00\ F"
VersCellule(MaFeuilleXLS,"D",J,"= B"+J+"*C"+J,"000",0,"Droite","Nombre")
MaFeuilleXLS>>Range("D"+J)>>NumberFormat = "##################0,00\ F"
VersCellule(MaFeuilleXLS,"E",J,Table1.Prix_d_achat,"000",0,"Droite","Monetaire")
VersCellule(MaFeuilleXLS,"F",J,"= B"+J+"*E"+J,"000",0,"Droite","Monetaire")
FIN
SI eDeviseMemParDéfaut() = 1 ALORS //Francs
VersCellule(MaFeuilleXLS,"A",J,Table1.Désignation,"000",0,"Gauche")
VersCellule(MaFeuilleXLS,"B",J,Table1.Quantité,"000",0,"Centre")
VersCellule(MaFeuilleXLS,"C",J,Table1.Prix_d_achat,"000",0,"Droite","Monetaire")
VersCellule(MaFeuilleXLS,"D",J,"= B"+J+"*C"+J,"000",0,"Droite","Monetaire")
VersCellule(MaFeuilleXLS,"E",J,eVersDevise(Table1.Prix_d_achat,eEUR,2),"000",0,"Droite","Nombre")
MaFeuilleXLS>>Range("E"+J)>>NumberFormat = "##################0,00\ €"
VersCellule(MaFeuilleXLS,"F",J,"= B"+J+"*E"+J,"000",0,"Droite","Nombre")
MaFeuilleXLS>>Range("F"+J)>>NumberFormat = "##################0,00\ €"
FIN
J++
FIN
//-----------------------
TableSelectMoins(Table1)
//-----------------------
FIN
nLigneFin = J-1
J++
VersCellule(MaFeuilleXLS,"C",J,"Total","100",0,"Centre")
SI eDeviseMemParDéfaut() = 0 ALORS //EUROS
VersCellule(MaFeuilleXLS,"D",J,"=somme(D4:D"+nLigneFin+")","101",0,"Droite","Nombre")
MaFeuilleXLS>>Range("D"+J)>>NumberFormat = "##################0,00\ F"
VersCellule(MaFeuilleXLS,"F",J,"=somme(F4:F"+nLigneFin+")","101",0,"Droite","Monetaire")
FIN
SI eDeviseMemParDéfaut() = 1 ALORS //Francs
VersCellule(MaFeuilleXLS,"D",J,"=somme(D4:D"+nLigneFin+")","101",0,"Droite","Monetaire")
VersCellule(MaFeuilleXLS,"F",J,"=somme(F4:F"+nLigneFin+")","101",0,"Droite","Nombre")
MaFeuilleXLS>>Range("F"+J)>>NumberFormat = "##################0,00\ €"
FIN
SI Position(sNomFeuille,"'")<> 0 ALORS
_sNomFeuille = Remplace(sNomFeuille,"'","''")
SINON
_sNomFeuille = sNomFeuille
FIN
SI EnModeTest() ALORS Trace("='"+sNomFeuille+"'!D"+J)
MaFeuilleXLS>>Range("SyntheseF"+Ch1)>>Value="='"+_sNomFeuille+"'!D"+J
MaFeuilleXLS>>Range("SyntheseF"+Ch1)>>NumberFormat = "##################0,00\ F"
MaFeuilleXLS>>Range("SyntheseE"+Ch1)>>Value="='"+_sNomFeuille+"'!F"+J
MaFeuilleXLS>>Range("SyntheseE"+Ch1)>>NumberFormat = "##################0,00\ €"
MaFeuilleXLS>>Sheets(sNomFeuille)>>Select()
I++
uneLigne = ExtraitChaîne(Liste,I)
FIN

RENVOYER Vrai
Posted on September, 20 2004 - 12:41 AM
Bonjour,
Ton post est très riche pour la syntaxe à utiliser lors d'un dialogue OLE
entre WD et Excel.
Pourrais-tu joindre aussi les procédures
"VersCellule(prm1,prm2,prm3,prm4,prm5,prm6,prm7)" et
CouleursExcel(prm1,prm2,prm3,prm4), car elles doivent être également très
riche d'enseignements.
Pour tout te dire, je suis actuellement sur le sujet (OLE Excel), et je
recherche toute source pouvant m'aider.
Merci



"Guy PIERS" <guy.piers@laposte.net> a écrit dans le message de
news:414dbadc@news.pcsoft.fr...
> J'ai été confronté au problème non pas pour récupérer une valeur mais pour
l'écrire... mais la méthode est tres proche. J'ai écris cette procédure il y
à longtemps je la livre pour ce qu'elle vaut.

PROCEDURE CreClasseurExcel(Liste)
LOCAL
_Ch est une chaîne
Ch1,Ch2 sont des chaînes
DateDevis est une chaîne
I,J,K sont des entiers
uneLigne est une chaîne
TitreSection est une chaîne
CommentaireSection est une chaîne
RangSection est un entier
Feuille est une chaîne
RangFeuille est un entier
nLigneFin est un entier
RubriqueDuDescriptif est une chaîne
sNomClasseur sont des chaînes
sNomFeuille est une chaîne
_sNomFeuille est une chaîne


DateDevis = DateVersJourEnLettre(DateSys())+"

"+Milieu(DateVersChaine(DateDuJour()),1,2)+"
"+DateVersMoisEnLettre(DateSys())+" "+Gauche(DateDuJour(),4)

SI ObjetActif("Excel.Application") <> Null ALORS
// Récupération de l'instance de Excel existante
MaFeuilleXLS = ObjetActif("Excel.Application")
SINON
// Allocation de l'objet automation "MaFeuilleXLS"
MaFeuilleXLS = allouer un objet Automation "Excel.Application"
FIN
// Excel devient visible
MaFeuilleXLS>>Visible = Vrai
// Ouverture d'un classeur d'Excel
MaFeuilleXLS>>Workbooks>>Add()
//

//Page de garde....
MaFeuilleXLS>>ActiveSheet>>Name="Descriptif"
VersCellule(MaFeuilleXLS,"A",1,DateDevis,"",40,"Gauche")
I = 1
J = 1
BOUCLE
uneLigne = ExtraitChaîne(RefClient,I,RC)
SI uneLigne = EOT ALORS SORTIR
SI I = 1 ALORS

VersCellule(MaFeuilleXLS,"B",J,uneLigne,"100",35,"Gauche","","Courrier",12)
sNomClasseur = "Etude_"+uneLigne
sNomClasseur = Remplace(sNomClasseur,"/"," ")
sNomClasseur = Remplace(sNomClasseur,"\"," ")
sNomClasseur = Milieu(sNomClasseur,1,30)
SINON
VersCellule(MaFeuilleXLS,"B",J,uneLigne,"000",35,"Gauche")
FIN
J++
I++
FIN
CouleursExcel(MaFeuilleXLS,"A1:F4","Noir","Gris")
J=6
VersCellule(MaFeuilleXLS,"A",J, "DESCRIPTIF

SCHEMATIQUE","100",40,"Centre","","Courrier",12)
VersCellule(MaFeuilleXLS,"B",J, PType,"100",40,"Gauche","","Courrier",12)
J=7
VersCellule(MaFeuilleXLS,"E",J,

"SYNTHESE","100",0,"Droite","","Courrier",10)
J=8
VersCellule(MaFeuilleXLS,"E",J, "Francs","100",0,"Centre")
VersCellule(MaFeuilleXLS,"F",J, "Euros","100",0,"Centre")
J=9
//-----------------------
TableSelectMoins(Table1)
//-----------------------
POUR I = 1 A TableOccurrence(Table1,toTotal)
TableSelectPlus(Table1,I)
uneLigne = Table1.Section..ValeurAffichée
Ch1 = SansEspace(ExtraitChaîne(uneLigne,1,":"))
Ch2 = ExtraitChaîne(uneLigne,2,":")
RangSection = Val(Ch1)
TitreSection = ExtraitChaîne(Ch2,1,"../..")
CommentaireSection = ExtraitChaîne(Ch2,2,"../..")
SI Position(RubriqueDuDescriptif,uneLigne) = 0 ALORS //Cette section n'à

pas encore ete traitée
RubriqueDuDescriptif += uneLigne
VersCellule(MaFeuilleXLS,"A",J,TitreSection)
VersCellule(MaFeuilleXLS,"B",J,CommentaireSection,"010")
MaFeuilleXLS>>Range("E"+J)>>Name="SyntheseF"+Ch1
MaFeuilleXLS>>Range("E"+J)>>NumberFormat = "##################0,00\ F"
// MaFeuilleXLS>>Selection>>NumberFormat = "##################0,00\ F"
MaFeuilleXLS>>Range("F"+J)>>Name="SyntheseE"+Ch1
MaFeuilleXLS>>Range("F"+J)>>NumberFormat = "##################0,00\ ?"
// MaFeuilleXLS>>Selection>>NumberFormat = "##################0,00\ ?"
J++
FIN
//-----------------------
TableSelectMoins(Table1)
//-----------------------
FIN
J++

//--------------------------------------------------------------------------
-----------------------------
K = J-2
VersCellule(MaFeuilleXLS,"D",J, "Total achat HT","101",0,"","")
MaFeuilleXLS>>Range("E"+J)>>Name="TotalAchatHTF"
MaFeuilleXLS>>Range("F"+J)>>Name="TotalAchatHTE"
MaFeuilleXLS>>Range("TotalAchatHTF")>>Value="=Somme(E9:E"+K
MaFeuilleXLS>>Range("TotalAchatHTF")>>NumberFormat =

"##################0,00\ F"
MaFeuilleXLS>>Range("TotalAchatHTE")>>Value="=Somme(F9:F"+K
MaFeuilleXLS>>Range("TotalAchatHTE")>>NumberFormat =

"##################0,00\ ?"
CouleursExcel(MaFeuilleXLS,"D"+J+":F"+J,"Noir","Gris")
J++
//----------------------------------------
VersCellule(MaFeuilleXLS,"B",J, "Coef 1:","000",0,"Droite","")
VersCellule(MaFeuilleXLS,"C",J, Coef_x1,"000",0,"","Nombre")
VersCellule(MaFeuilleXLS,"D",J, "Prix de vente","100",14,"Droite","")
MaFeuilleXLS>>Range("E"+J)>>Name="TotalVenteFHT_1"
MaFeuilleXLS>>Range("F"+J)>>Name="TotalVenteEHT_1"
MaFeuilleXLS>>Range("TotalVenteFHT_1")>>Value="=C"+J+"*TotalAchatHTF"
MaFeuilleXLS>>Range("TotalVenteFHT_1")>>NumberFormat =

"##################0,00\ F"
MaFeuilleXLS>>Range("TotalVenteEHT_1")>>Value="=C"+J+"*TotalAchatHTE"
MaFeuilleXLS>>Range("TotalVenteEHT_1")>>NumberFormat =

"##################0,00\ ?"
CouleursExcel(MaFeuilleXLS,"D"+J+":F"+J,"Noir","Gris")
J++
VersCellule(MaFeuilleXLS,"B",J, "Coef 2:","000",0,"Droite","")
VersCellule(MaFeuilleXLS,"C",J, Coef_x2,"000",0,"","Nombre")
VersCellule(MaFeuilleXLS,"D",J, "Prix de vente","100",14,"Droite","")
MaFeuilleXLS>>Range("E"+J)>>Name="TotalVenteFHT_2"
MaFeuilleXLS>>Range("F"+J)>>Name="TotalVenteEHT_2"
MaFeuilleXLS>>Range("TotalVenteFHT_2")>>Value="=C"+J+"*TotalAchatHTF"
MaFeuilleXLS>>Range("TotalVenteFHT_2")>>NumberFormat =

"##################0,00\ F"
MaFeuilleXLS>>Range("TotalVenteEHT_2")>>Value="=C"+J+"*TotalAchatHTE"
MaFeuilleXLS>>Range("TotalVenteEHT_2")>>NumberFormat =

"##################0,00\ ?"
CouleursExcel(MaFeuilleXLS,"D"+J+":F"+J,"Noir","Gris")
J++
VersCellule(MaFeuilleXLS,"B",J, "Coef 3:","000",0,"Droite","")
VersCellule(MaFeuilleXLS,"C",J, Coef_x3,"000",0,"","Nombre")
VersCellule(MaFeuilleXLS,"D",J, "Prix de vente","100",14,"Droite","")
MaFeuilleXLS>>Range("E"+J)>>Name="TotalVenteFHT_3"
MaFeuilleXLS>>Range("F"+J)>>Name="TotalVenteEHT_3"
MaFeuilleXLS>>Range("TotalVenteFHT_3")>>Value="=C"+J+"*TotalAchatHTF"
MaFeuilleXLS>>Range("TotalVenteFHT_3")>>NumberFormat =

"##################0,00\ F"
MaFeuilleXLS>>Range("TotalVenteEHT_3")>>Value="=C"+J+"*TotalAchatHTE"
MaFeuilleXLS>>Range("TotalVenteEHT_3")>>NumberFormat =

"##################0,00\ ?"
CouleursExcel(MaFeuilleXLS,"D"+J+":F"+J,"Noir","Gris")
J++

//----------------------------------------
//
//Feuilles de Section
I = 1
uneLigne = ExtraitChaîne(Liste,I)
TANTQUE uneLigne <> EOT
Ch1 = SansEspace(ExtraitChaîne(uneLigne,1,":"))
Ch2 = ExtraitChaîne(uneLigne,2,":")
RangSection = Val(Ch1)
TitreSection = ExtraitChaîne(Ch2,1,"../..")
CommentaireSection = ExtraitChaîne(Ch2,2,"../..")
RangFeuille = I+1
Feuille = "Feuil"+RangFeuille
QUAND EXCEPTION DANS
MaFeuilleXLS>>Sheets(Feuille)>>Select()
FAIRE
MaFeuilleXLS>>Sheets>>Add()
FIN
TitreSection = Remplace(TitreSection,"/"," ")
TitreSection = Remplace(TitreSection,"\"," ")
sNomFeuille = Milieu(TitreSection,1,30)
MaFeuilleXLS>>ActiveSheet>>Name=sNomFeuille
_Ch = MaFeuilleXLS>>Range( "Descriptif!B1")>>Value +" "+

MaFeuilleXLS>>Range( "Descriptif!B4")>>Value
VersCellule(MaFeuilleXLS,"A",1, _Ch,"011",0,"Gauche","","Courrier",8)

VersCellule(MaFeuilleXLS,"B",1,TitreSection,"101",0,"Gauche","","Courrier",1
0)
> VersCellule(MaFeuilleXLS,"F",1,"Section n°
","010",0,"Droite","","Courrier",8)
VersCellule(MaFeuilleXLS,"G",1,Val(Ch1),"010",0,"Gauche")
CouleursExcel(MaFeuilleXLS,"A1:G1","Noir","Gris")
J=3
VersCellule(MaFeuilleXLS,"A",J,"DESIGNATION DU

MATERIEL","100",35,"Centre")
VersCellule(MaFeuilleXLS,"B",J,"QTE","100",0,"Centre")
VersCellule(MaFeuilleXLS,"C",J,"P.U. Francs","100",16,"Centre")
VersCellule(MaFeuilleXLS,"D",J,"Total ach. Francs","100",16,"Centre")
VersCellule(MaFeuilleXLS,"E",J,"P.U. Euros","100",16,"Centre")
VersCellule(MaFeuilleXLS,"F",J,"Total ach. Euros","100",16,"Centre")
VersCellule(MaFeuilleXLS,"G",J,"Fournisseur","100",16,"Centre")
J=4
//-----------------------
TableSelectMoins(Table1)
//-----------------------
POUR K = 1 A TableOccurrence(Table1,toTotal)
TableSelectPlus(Table1,K)
uneLigne = Table1.Section..ValeurAffichée
SI Val(Ch1) = Val(ExtraitChaîne(uneLigne,1,":")) ALORS
SI eDeviseMemParDéfaut() = 0 ALORS //EUROS
VersCellule(MaFeuilleXLS,"A",J,Table1.Désignation,"000",0,"Gauche")
VersCellule(MaFeuilleXLS,"B",J,Table1.Quantité,"000",0,"Centre")

VersCellule(MaFeuilleXLS,"C",J,eVersDevise(Table1.Prix_d_achat,eFRF,2),"000"
,0,"Droite","Nombre")
MaFeuilleXLS>>Range("C"+J)>>NumberFormat = "##################0,00\ F"
VersCellule(MaFeuilleXLS,"D",J,"= B"+J+"*C"+J,"000",0,"Droite","Nombre")
MaFeuilleXLS>>Range("D"+J)>>NumberFormat = "##################0,00\ F"

VersCellule(MaFeuilleXLS,"E",J,Table1.Prix_d_achat,"000",0,"Droite","Monetai
re")
> VersCellule(MaFeuilleXLS,"F",J,"=
B"+J+"*E"+J,"000",0,"Droite","Monetaire")
FIN
SI eDeviseMemParDéfaut() = 1 ALORS //Francs
VersCellule(MaFeuilleXLS,"A",J,Table1.Désignation,"000",0,"Gauche")
VersCellule(MaFeuilleXLS,"B",J,Table1.Quantité,"000",0,"Centre")

VersCellule(MaFeuilleXLS,"C",J,Table1.Prix_d_achat,"000",0,"Droite","Monetai
re")
> VersCellule(MaFeuilleXLS,"D",J,"=
B"+J+"*C"+J,"000",0,"Droite","Monetaire")

VersCellule(MaFeuilleXLS,"E",J,eVersDevise(Table1.Prix_d_achat,eEUR,2),"000"
,0,"Droite","Nombre")
MaFeuilleXLS>>Range("E"+J)>>NumberFormat = "##################0,00\ ?"
VersCellule(MaFeuilleXLS,"F",J,"= B"+J+"*E"+J,"000",0,"Droite","Nombre")
MaFeuilleXLS>>Range("F"+J)>>NumberFormat = "##################0,00\ ?"
FIN
J++
FIN
//-----------------------
TableSelectMoins(Table1)
//-----------------------
FIN
nLigneFin = J-1
J++
VersCellule(MaFeuilleXLS,"C",J,"Total","100",0,"Centre")
SI eDeviseMemParDéfaut() = 0 ALORS //EUROS

VersCellule(MaFeuilleXLS,"D",J,"=somme(D4:D"+nLigneFin+")","101",0,"Droite",
"Nombre")
MaFeuilleXLS>>Range("D"+J)>>NumberFormat = "##################0,00\ F"

VersCellule(MaFeuilleXLS,"F",J,"=somme(F4:F"+nLigneFin+")","101",0,"Droite",
"Monetaire")
FIN
SI eDeviseMemParDéfaut() = 1 ALORS //Francs

VersCellule(MaFeuilleXLS,"D",J,"=somme(D4:D"+nLigneFin+")","101",0,"Droite",
"Monetaire")
>
VersCellule(MaFeuilleXLS,"F",J,"=somme(F4:F"+nLigneFin+")","101",0,"Droite",
"Nombre")
MaFeuilleXLS>>Range("F"+J)>>NumberFormat = "##################0,00\ ?"
FIN
SI Position(sNomFeuille,"'")<> 0 ALORS
_sNomFeuille = Remplace(sNomFeuille,"'","''")
SINON
_sNomFeuille = sNomFeuille
FIN
SI EnModeTest() ALORS Trace("='"+sNomFeuille+"'!D"+J)
MaFeuilleXLS>>Range("SyntheseF"+Ch1)>>Value="='"+_sNomFeuille+"'!D"+J
MaFeuilleXLS>>Range("SyntheseF"+Ch1)>>NumberFormat =

"##################0,00\ F"
MaFeuilleXLS>>Range("SyntheseE"+Ch1)>>Value="='"+_sNomFeuille+"'!F"+J
MaFeuilleXLS>>Range("SyntheseE"+Ch1)>>NumberFormat =

"##################0,00\ ?"
MaFeuilleXLS>>Sheets(sNomFeuille)>>Select()
I++
uneLigne = ExtraitChaîne(Liste,I)
FIN

RENVOYER Vrai


Posted on September, 21 2004 - 3:32 PM
La suite...

PROCEDURE CouleursExcel(Cible,ZoneSelect="",sCouleurTexte="",sCouleurFond="")
LOCAL
nCouleur est un entier

SI ZoneSelect = "" ALORS RETOUR

//Cible>>Range(ZoneSelect)>>Select
Cible>>Range(ZoneSelect)>>Select

SELON Majuscule(sCouleurTexte)
CAS "AUCUN" // dans le cas d'une couleur de fond
nCouleur = 0
CAS "NOIR"
nCouleur = 1
CAS "ROUGE"
nCouleur = 3
CAS "VERT"
nCouleur = 4
CAS "BLEU"
nCouleur = 5
CAS "JAUNE"
nCouleur = 6
AUTRE CAS
nCouleur = 1
FIN
// couleur de police
Cible>>Selection>>Font>>ColorIndex = nCouleur

SELON Majuscule(sCouleurFond)
CAS "AUCUN" // dans le cas d'une couleur de fond
nCouleur = 0
CAS "NOIR"
nCouleur = 1
CAS "ROUGE"
nCouleur = 3
CAS "VERT"
nCouleur = 4
CAS "BLEU"
nCouleur = 5
CAS "JAUNE"
nCouleur = 6
CAS "GRIS"
nCouleur = 15
AUTRE CAS
nCouleur = 0
FIN
// couleur de fond
Cible>>Selection>>Interior>>ColorIndex = nCouleur

-----------------------------------------------------------------------------------------

PROCEDURE VersCellule(Cible,sColonne = "A",Rang = 1,Valeur="",Attributs="000",LargeurColonne = 0,Alignement = "",FormatCellule = "",sPolice="Arial",tPolice)
LOCAL
NomCellule est une chaîne
nAlignConstante est un entier
sFormat est une chaîne
nGras,nItalique,nSouligne sont des entiers

NomCellule = sColonne+Rang
// Envoi des données dans les cellules d'Excel
SI Gauche(Valeur,1) <> "=" ALORS
Cible>>Range(NomCellule)>>Value = Valeur
SINON
Cible>>Range(NomCellule)>>Value = Valeur
FIN

Cible>>Range(NomCellule)>>Select

Cible>>Selection>>Font>>Name = sPolice
Cible>>Selection>>Font>>Size = tPolice

SI FormatCellule <> "" ALORS
SELON Majuscule(FormatCellule)
CAS "NOMBRE"
sFormat = "#################0,00"
CAS "DATE"
sFormat = "j mmmm aaaa"
CAS "HEURE"
sFormat = "h:mm:ss"
CAS "MONETAIRE"
SI AfDevise = eEUR ALORS sFormat = "##################0,00\ €"
SI AfDevise = eFRF ALORS sFormat = "##################0,00\ F"
CAS "POURCENTAGE"
sFormat = "0.00\%"
AUTRE CAS
sFormat = "@"
FIN
// on met au format voulu
Cible>>Selection>>NumberFormat = sFormat
FIN

Attributs = Complète(Attributs,3,0)
nGras = Val(Milieu(Attributs,1,1))
nItalique = Val(Milieu(Attributs,2,1))
nSouligne = Val(Milieu(Attributs,3,1))
// gras
SELON nGras
CAS 1
Cible>>Selection>>Font>>Bold = Vrai
CAS 0
Cible>>Selection>>Font>>Bold = Faux
FIN

// Italique
SELON nItalique
CAS 1
Cible>>Selection>>Font>>Italic = Vrai
CAS 0
Cible>>Selection>>Font>>Italic = Faux
FIN

// Soulignement
SELON nSouligne
CAS 1
Cible>>Selection>>Font>>Underline = 2 // xlUnderlineStyleSingle
CAS 0
Cible>>Selection>>Font>>Underline = 1 // xlUnderlineStyleNone
FIN

SI LargeurColonne <> 0 ALORS
Cible>>Selection>>ColumnWidth = LargeurColonne
FIN

SI Alignement <> "" ALORS
SELON Majuscule(Alignement)
CAS "GAUCHE"
nAlignConstante = -4131 //xlLeft
CAS "CENTRE"
nAlignConstante = -4108 //xlCenter
CAS "DROITE"
nAlignConstante = -4152 //xlRight
AUTRE CAS
nAlignConstante = -4131 //xlLeft
FIN
// on réalise l'alignement demandé
Cible>>Selection>>HorizontalAlignment = nAlignConstante
FIN