Importation de données dans Notes

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Importation de données dans Notes

Messagepar nicolas » 15 Juil 2003 à 08:57

Salut à tous, J'aimerais savoir comment on fait pour importer des valeurs de Excel vers Notes ? Une procédure complète m'aiderai beaucoup. Nicolas
nicolas
 

Re: Importation de données dans Notes

Messagepar Stephane Maillard » 15 Juil 2003 à 10:26

Bonjour,Option PublicOption ExplicitSub Initialize On Error Goto err_ImportExcel ' Variable de sélection de fichier Dim tmpFic As Variant Dim sFic As String ' Variable de traitement de fichier Excel Dim xlsApp As Variant ' Application Excel Dim xlsWorkBook As Variant ' Classeur Dim xlsSheet As Variant ' Feuille de calcul Dim xlsLigne As Integer ' Ligne Dim xlsColonne As Integer ' Colonne ' Demande de sélection du fichier Excel à traité tmpFic = OuvreXLS() sFic = tmpFic(0) ' Tableau de données Dim sLig() As String ' Met dans un tableau les données de la ligne Dim sCol() As String ' Met dans un tableau les entêtes de colonne ' Compteur de boucle Dim iCompteur As Integer Dim iCompteurLigne As Integer Dim iCompteurColonne As Integer ' Vérification des champs vide Dim vVF As Variant ' Traitement sur le fichier Excel Print "Connexion à Excel..." Set xlsApp = CreateObject("Excel.Application") ' Création de l'instance Print "Ouverture du fichier : " & sFic xlsApp.Workbooks.Open sFic ' Ouverture du fichier Set xlsWorkBook = xlsApp.ActiveWorkbook ' Récupère le classeur actuel Set xlsSheet = xlsWorkBook.ActiveSheet ' Récupère la feuille active xlsApp.Visible = False ' Affiche Excel xlsSheet.Cells.SpecialCells(11).Activate xlsLigne = xlsApp.ActiveWindow.ActiveCell.Row ' Nombre de ligne à traiter xlsColonne = xlsApp.ActiveWindow.ActiveCell.Column' Nombre de colonne à traiter ' Je commence à la ligne 2 car ma première colonne ' Contient les entêtes pour les noms de champs For iCompteurLigne = 2 To xlsLigne xlsSheet.Cells(iCompteurLigne, 1).select For iCompteurColonne = 1 To xlsColonne If iCompteurColonne = 1 Then Redim sLig(iCompteurColonne) As String sLig(iCompteurColonne) = xlsSheet.Cells(iCompteurLigne, iCompteurColonne).Value Else Redim Preserve sLig(iCompteurColonne) As String sLig(iCompteurColonne) = xlsSheet.Cells(iCompteurLigne, iCompteurColonne).value End If Next ' Vérifit que le tableau n'est pas vide. vVF = False For iCompteur = 1 To Ubound(sLig) If sLig(iCompteur) <> "" Then vVF = True Exit For Else vVF = False End If Next Print "Traitement de la ligne " & iCompteurLigne & " sur " & xlsLigne If vVF = True Then Call CreationDocument(sLig, xlsColonne) End If Next Print "Déconnexion d'Excel..." xlsWorkBook.Close False ' Ferme le classeur xlsApp.Quit ' Quitte Excel Set xlsApp = Nothing ' Ferme l'instance Print "Fin de l'importation du fichier Excel" Exit Sub err_ImportExcel: Resume NextEnd SubFunction OuvreXLS() As Variant Dim ws As New NotesUIWorkspace ' Affiche la fenêtre de sélection ' Le False correspond à une sélection simple OuvreXLS = ws.OpenFileDialog(False, "Ouverture d'un fichier Excel", "Fichiers Excel | *.xls", "c:")End FunctionSub CreationDocument(aLigneATraiter() As String, NbColonne As Integer) Dim Session As NotesSession Dim Db As NotesDatabase Dim Doc As NotesDocument Dim iCompteur As Integer On Error Goto err_CreationDocument Set Session = New NotesSession Set Db = Session.CurrentDatabase Set Doc = Db.CreateDocument ' Nom du masque à utiliser Doc.Form = "impxls" For iCompteur = 1 To NbColonne ' Insère les valeur dans les champs MonChampsX Call doc.ReplaceItemValue("MonChamps" & iCompteur, aLigneATraiter(iCompteur)) ' Vous pouvez modifier le paramètrage des champs avec des Select Case ' Exemple ' Select Case iCompteur ' Case 1 ' Doc.NomDuChamps1 = aLigneATraiter(iCompteur) ' Case 2 ' Doc.NomDuChamps2 = aLigneATraiter(iCompteur) ' End Select Next ' Sauvgarde le masque Call Doc.Save(True, False, False) ' Sort de la routine de création du masque Exit Sub err_CreationDocument: Exit SubEnd SubCe code vous permet de sélectionner votre fichier Excel par une boîte de dialogue, Compte le nombre de ligne et de colonne à traité, etc...[%sig%]
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne

Re: Importation de données dans Notes

Messagepar nicolas » 15 Juil 2003 à 10:33

merci beaucoup, ca va enormement m'aider.
nicolas
 

Re: Importation de données dans Notes

Messagepar Stephane Maillard » 15 Juil 2003 à 10:46

Re,Précisions :xlsSheet.Cells.SpecialCells(11).ActivateLe 11 correspond à la constante Excel xlLastActiveCell[%sig%]
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne


Retour vers Développement