IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

creation fichiers EXCEL version incompatible


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut creation fichiers EXCEL version incompatible
    Bonjour à tous,

    je suis dans la panade...

    je crée des fichiers xls via ces instructions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oExcel = CreateObject("Excel.Application") 
    oBook = oExcel.Workbooks.Open(Filename:=nom_fichier) 
    oSheet = oExcel.ActiveSheet
    le problème c'est qu'a l'origine les pc de la boite avait Excel 2003 tout allait bien.

    depuis quelque temps Excel 2007 apparait ce qui ne pose pas de prob à la construction du fichier.

    mais impossible d'ouvrir le fichier avec Excel 2003 et 2007.
    Je pense que cela viens du système d'interpolation qui était en V11 pour Excel 2003 et est maintenant en V12 pour excel 2007.

    ma question : comment continuer à fabriquer mes fichiers pour qu'il soit compatible en version 2003 et 2007 ???

    Merci de votre aide.
    Cordialement.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    est ce que tu as bien un oBook.close() ?
    est ce que tu crées tes fichiers au format xls ou au format xlsx?
    est ce que tu peux poster ton code? On ne voit que le début ici.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut
    je suis une nouille... enfin presque.

    je fichier continu à être fabriquer avec l'extension XLS, même si le pc utilise excel 2007... c'est clair qu'il faudrait théoriquement une extension XLSX.

    question :

    1) comment détecter la version excel installée ?
    2) comment forcer l'enregistrement "format 97-2003" si excel 2007 est détecté ?

    le traitement des fichiers construit utilise excel 2003 (fusion des données dans un fichier unique par une autre appli sur un serveur).
    et pas possible de faire installer le convertisseur, pire que l'administration !


    Merci d'avance.
    Cordialement.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut
    Bonsoir,

    ci-dessous extrait d'ajout données dans le fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     oExcel = CreateObject("Excel.Application")
                oBook = oExcel.Workbooks.Open(Filename:=nom_fichier)
                oSheet = oExcel.ActiveSheet
                If oBook.ReadOnly = True Then
                    info.Text = "le fichier est déjà ouvert, veuillez fermer le fichier et Excel !"
                    System.Windows.Forms.Application.DoEvents()
                    oExcel.DisplayAlerts = False
                    oBook.close(Filename:=nom_fichier)
                    oExcel.Quit()
                    oExcel.DisplayAlerts = True
                    oExcel = Nothing
                    oBook = Nothing
                    Exit Sub
                Else
     
                    With oExcel.Sheets("suivi")
     
                        i = oExcel.WorksheetFunction.CountA(oExcel.Worksheets("suivi").Columns(1))
                        i = i + 1.0
                        ' demandeur
                        .Cells(i, 1).Numberformat = "@" 'Cellules au format texte
                        .Cells(i, 1).Value = TextBox3.Text
                        'noms ITC
                        .Cells(i, 2).Numberformat = "@" 'Cellules au format texte
                        .Cells(i, 2).Value = mesinfos.TextBox2.Text
                        ' date
                        .Cells(i, 3).Value = DateTimePicker1.Text
                        ' Temps passée
                        .Cells(i, 4).Value = ComboBox4.Text
                        ' client
                        .Cells(i, 5).Numberformat = "@" 'Cellules au format texte
                        .Cells(i, 5).Value = TextBox1.Text
                        ' contact client
                        .Cells(i, 6).Numberformat = "@" 'Cellules au format texte
                        .Cells(i, 6).Value = TextBox2.Text
                        ' N° SOON
                        .Cells(i, 7).Value = TextBox4.Text
                        ' code agence
                        .Cells(i, 8).Value = TextBox7.Text
                        'noms DEPARTEMENT
                        .Cells(i, 9).Numberformat = "@" 'Cellules au format texte
                        .Cells(i, 9).Value = ComboBox2.Text
                        ' famille
                        .Cells(i, 10).Numberformat = "@" 'Cellules au format texte
                        .Cells(i, 10).Value = ComboBox3.Text
                        'Questions
                        .Cells(i, 11) = Replace(TextBox6.Text, Chr(13) & Chr(10), " ")
                        'Réponse
                        .Cells(i, 12) = Replace(TextBox8.Text, Chr(13) & Chr(10), " ")
                        'email
                        .Cells(i, 13).Numberformat = "@" 'Cellules au format texte
                        .Cells(i, 13).Value = TextBox9.Text
                        'action
                        .Cells(i, 14).Value = TextBox10.Text
                        'téléphone
                        'appel du module pour espace tel.
                        telephone = TextBox14.Text
                        ESPACE.espace(telephone, TextBox14.Text)
                        System.Windows.Forms.Application.DoEvents()
                        .Cells(i, 15).Numberformat = "@" 'Cellules au format texte
                        .Cells(i, 15).Value = TextBox14.Text
                        'autoajustage des colonnes
                        .Cells.Columns.AutoFit()
     
                        'fermeture des instances Excel
                        oExcel.DisplayAlerts = False
                        oBook.Saveas(Filename:=nom_fichier)
                        oBook.close(Filename:=nom_fichier)
                        oExcel.Quit()
                        oExcel.DisplayAlerts = True
                        oSheet = Nothing
                        oExcel = Nothing
                        oBook = Nothing
                 End if
    Cordialement

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    Sans garantie de résultat tu peux essayer ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if val(oExcel.Version) > 11
        oWorkbook.SaveAs("C:\temp\foobar.xls", 56) && xlExcel8
    else
        oWorkbook.SaveAs("C:\temp\foobar.xls")
    endif
    oExcel.version te donnes la version d'excel, après il y a des options dans le saveas que tu peux donner, c'est logique, c'est comme quand tu fais enregistrer sous dans excel, tu as des options.

    Maintenant je ne fais que copier ce que j'ai trouvé sur google, je ne sais pas si ca marche ou pas, mais ca devrait au moins te donner une bonne piste pour trouver une solution.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut
    Merci, je vais essayé ton code.

    PQZ donne cette solution sur un autre post:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeWorkbook.SaveAs sChemin, xlWorkbookNormal
    mais j'arrive pas à mettre le xlWorkbookNormal

    oBook.Saveas(Filename:=nom_fichier) ,xlWorkbookNormal --> "fin d'instruction attendue"

    oBook.Saveas(Filename:=nom_fichier) ,oExcel.xlWorkbookNormal --> idem
    oBook.Saveas(Filename:=nom_fichier,xlWorkbookNormal ) --> idem
    oBook.Saveas(Filename:=nom_fichier,oExcel.xlWorkbookNormal ) --> idem

    une idée ??

    Cordialement.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    Eh bien, c'est peut etre le moment d'aller voir la documentation de cette fonction saveas non?
    la solution ne doit pas être bien loin.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut
    ça fonctionne pas même en dur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oBook.Saveas("c:\toto.xls", oExcel.xlWorkbookNormal)
    je trouve pas, mais je cherche

    Cordialement.

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Par défaut
    Hello, pour la commande SaveAs essaie ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oBook.SaveAs("c:\toto.xls", FileFormat:=Excel.XlWindowState.xlNormal)
    Cela fera une sauvegarde forcée normalement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] C#-creation fichier Excel
    Par nounou_bazid dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/04/2013, 16h20
  2. probleme creation fichier excel "en deux bouts"
    Par petitours dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/09/2012, 18h58
  3. Bug POI : ouverture de fichier excel versions 97-2003
    Par mouss4rs dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 06/02/2012, 22h07
  4. Réponses: 5
    Dernier message: 21/05/2009, 23h59
  5. [excel] changement date de creation fichier
    Par djibril dans le forum Excel
    Réponses: 5
    Dernier message: 14/03/2006, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo