Anonyme
|
J'avais ça sous la main. Fonctionne impec. 1/ Sélectionnez le fichier Excel qui contient les données. - fonction fSélecteur() 2/ Décochez l'option si la feuille Excel est sans titres de colonnes. 3/ Cliquez sur ... Attention : importation temporaire : - pour sauvegarde provisoire :voir 4 - pour transfère définitif : voir 5 4/ En cliquant sur "Export vers Excel" vous modifiez la feuille Excel avec le contenu ci-dessus 5/ Sélectionnez le fichier HyperFile à compléter
////////////////////////////////////////////////////// nIdFic est un entier // identifiant du fichier Excel nColonne est un entier // colonne en cours nLigne est un entier // ligne en cours nPremièreLigne est un entier // première ligne à lire sLigne est une chaîne // contenu de la ligne en cours nNbLignes est un entier // nombre de lignes du tableau Excel sNomFic est une chaîne // nom du fichier XLS sDonnée est une chaîne nNbColonnes = 0 // Nombre colonnes du tableau Excel
//--------- Champ ou est stocké le nom du fichier XLS SI Sais_Fic1~="" ALORS Erreur("Sélectionnez d'abord un fichier Excel !") RETOUR SINON sNomFic = Sais_Fic1 FIN
Sablier(Vrai)
//--------- Vérification de l'existence du fichier SI fTaille(sNomFic)<=0 ALORS Erreur("Impossible de trouver le fichier spécifié") RETOUR FIN //--------- On tente d'ouvrir le fichier nIdFic = xlsOuvre(sNomFic) SI nIdFic=-1 ALORS Erreur("Impossible d'ouvrir le fichier.",... "Vérifier qu'il n'est pas déjà ouvert sur une autre application.",xlsMsgErreur(nIdFic)) RETOUR FIN //--------- On vide la table TableSupprimeTout(TableImport)
//--------- On initialise le nom des colonnes POUR nColonne=1 A NBCOL TableImport[1][nColonne]..Libellé = "" {"Colonne"+nColonne}..Visible=Vrai FIN //--------- Nombre de lignes et de colonnes du tableau Excel // la variables nNbColonnes est générale car sert // aussi au transfert // dans le fichier HyperFile nNbLignes = xlsNbLigne(nIdFic) nNbColonnes = xlsNbColonne(nIdFic) //--------- Si la première ligne contient les titres de colonne SI Inter_Titre[1] = Vrai ALORS // On modifie les titres de colonne POUR nColonne=1 A nNbColonnes TableImport[1][nColonne]..Libellé = xlsDonnée(nIdFic, 1, nColonne) FIN // Première ligne contenant les données nPremièreLigne = 2 SINON // Première ligne contenant les données nPremièreLigne = 1 FIN //--------- On remplit la table mémoire POUR nLigne = nPremièreLigne A nNbLignes sLigne = "" TableAjouteLigne(TableImport) // On construit la ligne lue POUR nColonne = 1 A nNbColonnes sDonnée = xlsDonnée(nIdFic, nLigne, nColonne, Faux) {"Colonne"+nColonne}[TableOccurrence(TableImport)]= sDonnée // si c'est un numérique SI NumériqueVersChaine(Val(sDonnée))=sDonnée ALORS {"Colonne"+nColonne}..CadrageHorizontal=iDroite SINON {"Colonne"+nColonne}..CadrageHorizontal=iGauche FIN FIN FIN
//--------- Les autres colonnes sont invisibles POUR nColonne = nNbColonnes+1 A NBCOL {"Colonne"+nColonne}..Visible=Faux FIN FenRepeint() //--------- Fermeture du fichier xlsFerme(nIdFic)
Sablier(Faux)
// 5/- Pour la récup dans un HF ici 2 fichiers // CptesGénéraux et CptesIndividuel
i, j, nPos sont des entiers sNomCol,sLigne,sData sont des chaînes
//--------- Parcours de la table nPos = TableSelect(TableImport) SI nPos < 1 ALORS nPos = 1 POUR i = 1 A TableImport..Occurrence // Sélection de la ligne TableSelectPlus(TableImport,i) //--------- Pour chaque colonne sLigne="" POUR j = 1 A nNbColonnes sNomCol=TableEnumèreColonne(TableImport, j) sLigne+={sNomCol}[i]+"/" FIN //--------- Transfert dans le fichier choisi SI ChaîneOccurrence(Sais_Fic1,"balgenerale") > 0 ALORS CptesGénéraux.NumCpteGen=ExtraitChaîne(sLigne,1,"/",DepuisDébut) sLigne = Droite(sLigne,Taille(sLigne)-Position(sLigne,"/",DepuisDébut)) CptesGénéraux.LibCpteGen=ExtraitChaîne(sLigne,1,"/",DepuisDébut) HAjoute(CptesGénéraux) FIN SI ChaîneOccurrence(Sais_Fic1,"balfournisseurs") > 0 ALORS CptesIndividuel.NumCpteInd =ExtraitChaîne(sLigne,1,"/",DepuisDébut) sLigne = Droite(sLigne,Taille(sLigne)-Position(sLigne,"/",DepuisDébut)) CptesIndividuel.LibCpteIndivi =ExtraitChaîne(sLigne,1,"/",DepuisDébut) sLigne = Droite(sLigne,Taille(sLigne)-Position(sLigne,"/",DepuisDébut)) CptesIndividuel.NumCpteGen=ExtraitChaîne(sLigne,1,"/",DepuisDébut) HAjoute(CptesIndividuel) FIN FIN
Contribution le : 30/01/2006 22:52
|