]]>

mercredi 14 mars 2007

Transfert de données de IBM Universe vers Excel - 1ere Partie

Aujourd'hui, je vous présente une macro Excel qui permet de tranférer des données de universe (IBM U2) vers Excel à l'aide d'Uniobject.

Il me manque encore la partie avec la SubValue, mais j'hésite encore quant à la façon de le faire.

Voici donc la première ébauche du programme :

Sub transfert_universe()
Dim UVCommand As Object
Set FSO = CreateObject("Uniobjects.unioaifctrl")
FSO.UserName = "votrelogin"
FSO.Password = "votremotdepasse"
FSO.HostName = "votreserveur"
FSO.AccountPath = "votrecompte"
FSO.Connect
NomdeFichier = InputBox("Nom de fichier : ", "Nom de fichier")
CleDepart = InputBox("Clé de départ : ", "Clé de départ")
CleFin = InputBox("Clé de fin : ", "Clé de fin")
Set ObjFichier = FSO.OpenFile(NomdeFichier)
Set UVCommand = FSO.Command
UVCommand.Text = "SELECT " & NomdeFichier & " >= " & CleDepart & " AND <= " & CleFin
UVCommand.Exec
Sheets("Feuil1").Activate
Set SelectList = FSO.SelectList(0)
ligne_de_depart = 1
ligne_compteur = 0
For a = 1 To UVCommand.AtSelected
ObjFichier.RecordID = SelectList.Next
ObjFichier.Read
For b = 1 To ObjFichier.Record.Count
For c = 1 To ObjFichier.Record.Field(b).Count
ligne_saisie = ligne_de_depart + c
If b = 1 Then Cells(ligne_saisie, 1) = ObjFichier.RecordID
If ObjFichier.Record.Value(b, c).Count = 1 Then
Cells(ligne_saisie, b + 1).Value = ObjFichier.Record.SubValue(b, c, 1)
End If
If ligne_compteur < ligne_saisie Then ligne_compteur = ligne_saisie
Next c
Next b
ligne_de_depart = ligne_compteur
Next a
End Sub



Dans la deuxième partie le code sera commenté et complété. N'hésitez pas à poser vos questions et surtout à poster vos commentaires

A bientôt

Thomas

Aucun commentaire: