Voilà j'ai cherché et fait ce programme en cherchant à gauche et à droite.
Je poste ceci :
Voici un programme qui fonctionne et qui importe un fichier Excel dans lotus.
Bien évidemment le fichier Excel doit correspondre au masque (document) dans lotus note.
Fonction en V8 et V7.
A mettre dans un bouton d'une vue simple.
Si sa peut aidé: (le code n'est pas forcément bien écris mais fonctionne)
- Code : Tout sélectionner
Sub Click(Source As Button)
Const DEFAUTREP="c:\" 'le chemin par défaut a ouverture de la boite de dialogue
Const DEFAUTEXT="Fichiers Excel|*.xls|Tous|*.*" ' le type de fichier que la personne a le droit de séléctionner
Dim fichier As Variant
Dim view As NotesView
Dim create( 1 To 16) As String'on créer un tableau
Dim i As Integer
Dim ws As New NotesUIWorkspace
'---------------------------------------
Dim session As NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim XLApp As Variant
Dim XLWorkBook As Variant
Dim ActiveWorkBook As Variant
Dim Sheet As Variant
Dim Cellule As Variant
Dim colonne As Long
Dim ligne As Long
On Error Goto Erreur
'// Initialisation de la session, base actuelle et vue
Set session=New NotesSession
Set db = session.CurrentDatabase
Set view = db.GetView("Tous documents")
' // Initialisation de l'objet OLE ou Instance OLE
' // Ouverture de l'application Excel sans ouverture de classeur
'// On fourni le fichier
fichier = ws.OpenFileDialog(False, "Liste des fichiers", DEFAUTEXT, DEFAUTREP)
If Isempty(fichier) Then Exit Sub '// cas si l'utilisateur abandonne la sélection du fichier
Set XLApp = CreateObject("Excel.Application")
XLApp.Visible = False
XLApp.DisplayAlerts = False
Set XLWorkBook=XLApp.workbooks
XLWorkBook.Open fichier
' Ou mettre en dure le chemin du fichier Excel "C:\\modèle\Classeur1.xls"
Set ActiveWorkBook=XLApp.ActiveWorkBook
Set Sheet=ActiveWorkBook.ActiveSheet
Set Cellule=Sheet.Cells
'initialisation des variables pour le traitement
Ligne=2 'je commence à la ligne 2 généralement ligne 1 réserve le nom des colonnes
Colonne=1
i=1
Do While Not Isempty(Cellule(Ligne,Colonne).Value)
For Colonne=1 To 16
'Print Cellule(Ligne,Colonne).Value
Create(i)=Trim(Cellule(Ligne,Colonne).Value)
'on insère les valeurs dans un tableau
i=i+1
Next
Call createDocument(create(),db)'on appel la fonction pour créer le document
i=1 'on reinitialise i car on crée un autre tableau pour un autre document
Colonne = 1'on remet colonne a 1
Ligne=Ligne + 1 'on passe a la ligne suivante
Print"Nombre de Lignes lus :" & Cstr(Ligne-2)
Loop
Call view.Refresh 'on rafraichit la vue
ActiveWorkBook.Close
XLApp.Quit
Set xlapp=Nothing 'Stop l'automation excel
Set db=Nothing
Exit Sub
Erreur:
XLApp.Quit
Set xlapp=Nothing 'Stop l'automation excel
Set db=Nothing
Exit Sub
End Sub
Ma fonction celle-ci est spécifique à mon masque adapté pour le votre:
- Code : Tout sélectionner
Function createDocument(FieldArray() As String, db As notesdatabase) As Integer
On Error Goto Erreur
'Fonction qui crée un document et insère les différents informations
'Dim session As New notessession
'Dim db As notesdatabase
'Set db = session.currentdatabase
Dim doc As New notesdocument(db)
If FieldArray(1) <> "" Then 'And FieldArray(1)<309999
doc.Form = "Document"
Call doc.ReplaceItemValue("E_Responsable_Commercial",FieldArray(1))
Call doc.ReplaceItemValue("E_pays",FieldArray(2))
Call doc.ReplaceItemValue("E_region",FieldArray(3))
Call doc.ReplaceItemValue("E_Departement",FieldArray(4))
Call doc.ReplaceItemValue("E_Ville",FieldArray(5))
Call doc.ReplaceItemValue("E_Categorie",FieldArray(6))
Call doc.ReplaceItemValue("E_Societe",FieldArray(7))
Call doc.ReplaceItemValue("E_nom",FieldArray(8))
Call doc.ReplaceItemValue("E_prenom",FieldArray(9))
Call doc.ReplaceItemValue("E_fonction",FieldArray(10))
Call doc.ReplaceItemValue("E_numero_fixe",FieldArray(11))
Call doc.ReplaceItemValue("E_fax",FieldArray(12))
Call doc.ReplaceItemValue("E_numero_portable",FieldArray(13))
Call doc.ReplaceItemValue("E_mail",FieldArray(14))
Call doc.ReplaceItemValue("E_addresse",FieldArray(15))
Call doc.ReplaceItemValue("E_Date_Derniere_Visite",FieldArray(16))
Call doc.save(1,0)
End If
Erreur:
'Set db=Nothing
Exit Function
End Function
Si quelqu'un a un programme qui permet de créer un masque spécifique au fichier Excel je suis preneur.
voilà bonne journée a tous