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

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

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

Messagepar Thelonious » 04 Oct 2010 à 16:51

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.
Dernière édition par Thelonious le 05 Oct 2010 à 09:02, édité 1 fois.
Avatar de l’utilisateur
Thelonious
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 106
Inscrit(e) le : 16 Déc 2004 à 11:58
Localisation : Région Parisienne

Messagepar roubech » 04 Oct 2010 à 23:31

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 ?
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar Thelonious » 05 Oct 2010 à 07:38

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
Avatar de l’utilisateur
Thelonious
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 106
Inscrit(e) le : 16 Déc 2004 à 11:58
Localisation : Région Parisienne

Messagepar adx60 » 05 Oct 2010 à 08:45

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+
Cordialement.

Gael.

Dans l'informatique, ce qui est bien : Chaque jour est un nouveau défis :mrgreen:. Ce qui est moche, On ne voit pas ses enfants grandir .... :cry:
Avatar de l’utilisateur
adx60
Posteur habitué
Posteur habitué
 
Message(s) : 245
Inscrit(e) le : 14 Jan 2008 à 10:27
Localisation : Le plessis belleville

Messagepar Michael DELIQUE » 05 Oct 2010 à 08:50

tips ?
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar adx60 » 05 Oct 2010 à 08:58

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+
Cordialement.

Gael.

Dans l'informatique, ce qui est bien : Chaque jour est un nouveau défis :mrgreen:. Ce qui est moche, On ne voit pas ses enfants grandir .... :cry:
Avatar de l’utilisateur
adx60
Posteur habitué
Posteur habitué
 
Message(s) : 245
Inscrit(e) le : 14 Jan 2008 à 10:27
Localisation : Le plessis belleville

Messagepar Thelonious » 05 Oct 2010 à 09:01

ça marche impeccable !
Merci beaucoup ! :D
Avatar de l’utilisateur
Thelonious
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 106
Inscrit(e) le : 16 Déc 2004 à 11:58
Localisation : Région Parisienne

Messagepar Michael DELIQUE » 05 Oct 2010 à 09:20

le coup du

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

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar adx60 » 05 Oct 2010 à 09:24

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+
Cordialement.

Gael.

Dans l'informatique, ce qui est bien : Chaque jour est un nouveau défis :mrgreen:. Ce qui est moche, On ne voit pas ses enfants grandir .... :cry:
Avatar de l’utilisateur
adx60
Posteur habitué
Posteur habitué
 
Message(s) : 245
Inscrit(e) le : 14 Jan 2008 à 10:27
Localisation : Le plessis belleville

Messagepar Michael DELIQUE » 05 Oct 2010 à 09:32

ben non lol !

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

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar adx60 » 05 Oct 2010 à 09:40

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+
Cordialement.

Gael.

Dans l'informatique, ce qui est bien : Chaque jour est un nouveau défis :mrgreen:. Ce qui est moche, On ne voit pas ses enfants grandir .... :cry:
Avatar de l’utilisateur
adx60
Posteur habitué
Posteur habitué
 
Message(s) : 245
Inscrit(e) le : 14 Jan 2008 à 10:27
Localisation : Le plessis belleville

Messagepar Michael DELIQUE » 05 Oct 2010 à 09:41

Accès ouvert
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar adx60 » 05 Oct 2010 à 09:43

Yessssssss je viens de recevoir le mail ....


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

Gael.

Dans l'informatique, ce qui est bien : Chaque jour est un nouveau défis :mrgreen:. Ce qui est moche, On ne voit pas ses enfants grandir .... :cry:
Avatar de l’utilisateur
adx60
Posteur habitué
Posteur habitué
 
Message(s) : 245
Inscrit(e) le : 14 Jan 2008 à 10:27
Localisation : Le plessis belleville

Messagepar adx60 » 05 Oct 2010 à 09:49

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+
Cordialement.

Gael.

Dans l'informatique, ce qui est bien : Chaque jour est un nouveau défis :mrgreen:. Ce qui est moche, On ne voit pas ses enfants grandir .... :cry:
Avatar de l’utilisateur
adx60
Posteur habitué
Posteur habitué
 
Message(s) : 245
Inscrit(e) le : 14 Jan 2008 à 10:27
Localisation : Le plessis belleville

Messagepar Michael DELIQUE » 05 Oct 2010 à 09:51

c'est parfait !
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy


Retour vers Développement