Page 1 sur 1

importation excel dans domino

MessagePublié: 30 Juil 2003 à 09:57
par audrain
Bonjour à tous,J'aimerais pouvoir importer un fichier excel (carnet d'adresse) dans une base notes.Est-ce que quelqu'un à des pistes à me donner, je galère ....

Re: importation excel dans domino

MessagePublié: 30 Juil 2003 à 10:02
par Stephane Maillard
Bonjour,Est ce que les entêtes de colonnes corresponde aux noms des champs Notes si oui j'ai code qui le fais.[%sig%]

Re: importation excel dans domino

MessagePublié: 30 Juil 2003 à 10:13
par audrain
je ne pense pas, car je n'ai pas les entêtes.Mais je suis preneur de toutes informations à ce sujet

Re: importation excel dans domino

MessagePublié: 30 Juil 2003 à 10:17
par Stephane Maillard
Re,Voici le code :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 ' Récupère les entêtes de colonne xlsSheet.Cells(1, 1).Select For iCompteurColonne = 1 To xlsColonne If iCompteurColonne = 1 Then Redim sCol(iCompteurColonne) As String sCol(iCompteurColonne) = xlsSheet.Cells(1, iCompteurColonne).Value Else Redim Preserve sCol(iCompteurColonne) As String sCol(iCompteurColonne) = xlsSheet.Cells(1, iCompteurColonne).Value End If Next ' Récupère les valeurs des cellules d'une ligne 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, sCol()) 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, sCol() As String) 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(sCol(iCompteur), aLigneATraiter(iCompteur)) 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 Sub[%sig%]

Re: importation excel dans domino

MessagePublié: 30 Juil 2003 à 10:22
par audrain
Je ne suis pas developpeur, j'ai donc un peu de mal à comlprendre ou je dois placer ce code, pour un test d'importation.Si tu as quelques minutes, pour me donner une demarche à suivre.Je pensais au depart, importer un fichier xls avec X colonnes (X colonnes corrspondant au variable NOM, PRENOM ...

Re: importation excel dans domino

MessagePublié: 30 Juil 2003 à 10:23
par Stephane Maillard
Re,A la place de : Call CreationDocument(sLig, xlsColonne, sCol())Il mettre : Call CreationDocument(sLig, xlsColonne, sCol)[%sig%]

Re: importation excel dans domino

MessagePublié: 30 Juil 2003 à 10:25
par audrain
!!!!Je ne comprends pas

Re: importation excel dans domino

MessagePublié: 30 Juil 2003 à 10:38
par Stephane Maillard
Re,Il faut copier le code dans un agent de ton carnet d'adresse.Ensuite dans ton fichier excel sur la première ligne tu mets le nom des champs qui corresponde au masque.Si ce n'est pas confidentiel envoi moi ton fichier je te l'importerait dans un carnet d'adresse tu n'aura plus qu'à copier les documents.[%sig%]

Re: importation excel dans domino

MessagePublié: 30 Juil 2003 à 14:59
par Homer
Pour cela il suffit de :1. Sauvegarder ton fichier Excel au format wks (Lotus 123)2. Dans ta base, créer un masque qui contient tous les champs correspondant aux colonnes de ton fichier3. Créer une vue pour affichant les documents créés avec ce masque. Attention, les colonnes de ta ve doivent être dans le même ordre que les colonnes du fichier Excel4. Ouvre ta vue, utilise le menu File / Import et laisse toi guider...