Page 1 sur 1

[Resolu] Mauvaise conversion txt/numérique dans export Excel

MessagePublié: 04 Oct 2010 à 16:51
par Thelonious
Bonjour à tous,

J'essaye d'exporter une vue Notes dans un classeur Excel.
Pas de difficultés particulières, sauf une : dans une de mes colonnes, j'ai un Gencod qui est dans un champ texte mais qui ne contient que des nombres.
Du coup, lorsque j'exporte dans Excel, ce dernier le transforme automatiquement en nombre...

Exemple :
Image

Comme on peut le voir, si je me positionne sur la valeur du Gencod dans Excel, j'ai bien la bonne valeur qui s'affiche en haut, mais pas dans la colonne ...

Est-ce quelqu'un sait comment résoudre ce problème ?

Merci d'avance pour vos réponses.

MessagePublié: 04 Oct 2010 à 23:31
par roubech
tu vais comment ton export ?
manuellement, "copier les éléments de tableau" ?
menu fichier \ exporter ?
un agent qui génère un csv ? => ajouter des guillements autour de la valeur du champ
un agent qui manipule XL en OLE ?

MessagePublié: 05 Oct 2010 à 07:38
par Thelonious
Salut Roubech,

J'utilise un script LS que j'ai d'ailleurs trouvé sur ce site ... et qui fonctionne très bien :

Code : Tout sélectionner
Sub Initialize
    Dim session As NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim XLApp As Variant
    Dim XLWorkBook 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("vwExport") ' Mettre ici le nom de la vue
       
'// Initialisation de l'objet OLE ou instance OLE
'// Ouverture de l'application Excel sans ouverture de classeur
    Print " - Ouverture d'Excel"
    Set XLApp = CreateObject("Excel.Application")
    XLApp.Visible = True
    XLApp.DisplayAlerts = True
    XLApp.StatusBar="Traitement en cours ..."
    Set XLWorkBook=XLApp.Workbooks.Add
    Set ActiveWorkBook=XLApp.Workbooks.Add
    Set Sheet=ActiveWorkBook.ActiveSheet
    Sheet.Name="Export produits"
   
'// Ecriture des titres de colonnes - A modifier selon les besoins ...
    ligne=1
    Sheet.Cells(ligne,1)="Createur Doc"
    Sheet.Cells(ligne,2)="Code Doc"
    Sheet.Cells(ligne,3)="Nom produit"   
    Sheet.Cells(ligne,4)="Famille"   
    Sheet.Cells(ligne,5)="Segment"   
    Sheet.Cells(ligne,6)="Gencod"
    Sheet.Cells(ligne,7)="Code produit (SAP)"
    Sheet.Cells(ligne,8)="Dénomination légale"
   
   
'// Mise en forme première ligne
    XLApp.Range("A1:M1").Select
    XLApp.Selection.Font.Bold = True   
    With XLApp.Rows("1:1").Interior
       
        .ColorIndex = 6
    End With
   
'// Balayage de la vuePrint " - Balayage de la vue "
    Set doc=view.GetFirstDocument
    Do While Not ( doc Is Nothing )
        ligne = ligne +1
        sheet.Cells(ligne,1)=doc.Createur(0)
        sheet.Cells(ligne,2)=doc.COD(0)
        sheet.Cells(ligne,3)=doc.Titre(0)       
        sheet.Cells(ligne,4)=doc.Famille(0)       
        sheet.Cells(ligne,5)=doc.Segment(0)       
        sheet.Cells(ligne,6)=doc.Gencod(0)
        sheet.Cells(ligne,7)=doc.CodeInterneSAP(0)
        sheet.Cells(ligne,8)=doc.Denomination_legale(0)
               
        Set doc=view.GetNextDocument(doc)
    Loop
   
    XLApp.Range(Sheet.Cells(1,1), Sheet.Cells(ligne,37)).Select
    XLApp.Selection.Font.Name="Arial"
    XLApp.Selection.Font.Size = 9
    XLApp.Selection.Columns.AutoFit
   
    'XLApp.Rows("2:2").Select
    'XLApp.Selection.ActiveWindow.FreezePanes = True
   
    With XLApp.Worksheets(1)
        '// 1 = Mode portrait, 2 = Mode paysage
        .PageSetup.Orientation = 2
        .PageSetup.centerheader = "Liste des Produits"
        .PageSetup.RightFooter = "Page : &P"
        '.PageSetup.CenterFooter = "Edition du &D"
    End With
       
    XLApp.ActiveWorkbook.SaveAs Export_Produits.xls
    ActiveWorkBook.Close
    XLApp.Quit
   
    Dim twoLiner As String
    twoLiner = |Le fichier d'export généré s'appelle :
     Export_Produits.xls|
    Messagebox twoLiner, MB_OK, "Export Produits"
   
    Exit Sub
   
Erreur:
    XLApp.Quit
    Resume Fin
   
Fin:
   
    Print " - Fin de l'export"
End Sub

MessagePublié: 05 Oct 2010 à 08:45
par adx60
Salut,

tu doit indiquer a Excel qu'il s'agit d'un texte, pour cela tu doit ajouter un ' devant.

Ca donne :

Code : Tout sélectionner
sheet.Cells(ligne,6)="'" + doc.Gencod(0)


A+

MessagePublié: 05 Oct 2010 à 08:50
par Michael DELIQUE
tips ?

MessagePublié: 05 Oct 2010 à 08:58
par adx60
Salut Michael,

Pas sur d'avoir suivis la ? C'est déjà dans le tips ? ou tu veut que l'on en créer un ?

A+

MessagePublié: 05 Oct 2010 à 09:01
par Thelonious
ça marche impeccable !
Merci beaucoup ! :D

MessagePublié: 05 Oct 2010 à 09:20
par Michael DELIQUE
le coup du

tu doit indiquer a Excel qu'il s'agit d'un texte, pour cela tu doit ajouter un ' devant.

MessagePublié: 05 Oct 2010 à 09:24
par adx60
Ben oui ? Tu ne connaissait pas ?

En fait cette astuce est plus une astuce Excel proprement dit qu'autre chose... Qand tu écris une valeur dans une cellule Excel, que cette valeur est uniquement composé de chiffre (genre un code article : "00015550"), si tu met que les chiffres, Excel te met : "15550"...

Si tu écris " '00015550", Excel laisse 00015550, et tu voit un petit triangle vert au coin de la cellule...

A+

MessagePublié: 05 Oct 2010 à 09:32
par Michael DELIQUE
ben non lol !

comme quoi ! un petit tips d'une ligne sera parfait, je te laisse le faire !

MessagePublié: 05 Oct 2010 à 09:40
par adx60
Volontiers...

Sauf que je ne dispose pas des habilitations nécessaire.... :P

Le site me réponds :

Informations


Désolé, mais seuls les utilisateurs avec un accès spécial peuvent poster dans ce forum.


A+

MessagePublié: 05 Oct 2010 à 09:41
par Michael DELIQUE
Accès ouvert

MessagePublié: 05 Oct 2010 à 09:43
par adx60
Yessssssss je viens de recevoir le mail ....


Je suis maintenant un "Tipsseur" ........ Excellent ...... :mdr:

MessagePublié: 05 Oct 2010 à 09:49
par adx60
Voila,

J'ai mis ça la....

http://forum.dominoarea.org/forcer-exce ... 25997.html

J'espère que ça conviens, je ne savais pas trop ou le mettre...

A+

MessagePublié: 05 Oct 2010 à 09:51
par Michael DELIQUE
c'est parfait !