|
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", VersCellule(MaFeuilleXLS,"B",1,TitreSection,"101",0,"Gauche","","Courrier",10) VersCellule(MaFeuilleXLS,"F",1,"Section n° ","010",0,"Droite","","Courrier", 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", VersCellule(MaFeuilleXLS,"B",1,TitreSection,"101",0,"Gauche","","Courrier",1 0) > VersCellule(MaFeuilleXLS,"F",1,"Section n° ","010",0,"Droite","","Courrier",
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 |
| |
| |
| | | |
|
| | | | |
| | |
|