begin process at 2012 02 04 12:57:54
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OLE, DDE, Automation

 > IMPORTER ET EXPORTER AVEC EXCEL

IMPORTER ET EXPORTER AVEC EXCEL


 Information sur la source

Note :
6,62 / 10 - par 26 personnes
6,62 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :OLE, DDE, Automation Classé sous :importer, exporter, excel Niveau :Débutant Date de création :17/06/2002 Date de mise à jour :11/04/2005 09:27:48 Vu :88 361

Auteur : trolix

Ecrire un message privé
Commentaire sur cette source (42)
Ajouter un commentaire et/ou une note

 Description

Ce code permet d'extraire des données depuis les cellules d'un fichier excel ou d'y envoyer des données depuis une applilcation VB, tout ceci sans avoir à ouvrir le fichier "manuellement" (contrairement à la méthode linktopic).
Vous y trouverez également quelques commandes intéressantes pour la manipulation de fichiers excel.

11/04/05: mise à jour
le code que j'avais posté à l'origine était une bidouille que j'avais concocté pour les besoins d'un stage.
Ca m'avait bien dépanné mais j'avoue que c'était loin d'être stable.
Après plusieurs demandes (parfois sans réponse de ma part, je l'avoue) je me suis enfin décidé à mettre ça à jour.
Voilà donc la nouvelle mouture, en espérant que cela vous aide.

Le principe est simple: on crée une variable objet dans laquelle on affecte un fichier Excel, et après il ne reste plus qu'à la modifier au besoin.

Pour cela il faut d'abord ajouter dans les références (Projet --> Références) "Microsoft Excel 10.0 Object Library"


Source

  • Dim xls As Excel.Workbook ' déclaration d'une variable objet de type classeur Excel
  • Dim var As ce_que_vous_voulez
  • Set xls = GetObject("monfichier.xls") 'instanciation de l'objet (qui devient ici le fichier excel indiqué)
  • ' export de données
  • With xls
  • .worksheets(1).range("B6").Value = "1"
  • .worksheets(1).range("B18").Value = "2"
  • .worksheets(1).range("A18").Value = "3"
  • End With
  • ' worksheets(1) correspond à la feuille 1 du fichier Excel
  • ' pour spécifier le nom d'une feuille mettre à la place sheets("nom de la feuille")
  • ' import de données
  • var = xls.worksheets(1).range("C2").Value
  • ' etc etc...
  • ' après à vous d'adapter le code en fonction de vos besoin
  • ' une fois que vous avez fini d'utiliser la variable xls, pensez à la détruire
  • Set xls = Nothing
  • ' PS: le code ci-dessus utilise un fichier Excel déjà existant.
  • ' Pour créer un fichier Excel à partir d'une appli VB voici la manip:
  • Dim xls as Excel.Application
  • Set xls = CreateObject("Excel.Application") ' création d'une nouvelle instance vierge de l'application Excel
  • ' après paramètrez le fichier comme bon vous semble.
  • ' Voici quelques exemples
  • xls.WindowState = xlMaximized ' format plein écran
  • xls.Visible = True ' visible à l'écran
  • xls.ShowWindowsInTaskbar = True ' visible dans la barre de tâches
  • xls.DisplayFormulaBar = True ' affichage de la barre de formule
  • xls.Caption = "Mon fichier Excel"
  • xls.Workbooks.Add ' ajout d'un classeur Excel sinon vous aurez une instance d'Excel mais pas de classeur
  • xls.Worksheets(1).Name = "Feuille1"
  • xls.Worksheets(2).Name = "Feuille2"
  • xls.Worksheets(1).Range("D1").Font.Bold = True ' la cellule D1 est en gras
  • xls.Worksheets(1).Columns("A:A").EntireColumn.AutoFit 'ajustement automatique de la colonne A
  • xls.Worksheets(1).PrintOut Copies:=1 ' imprimer 1 copie de la feuille 1
  • ' je vais pas tous les faire parce que les possibilitées sont énormes.
  • ' une bonne astuce pour voir les commandes correspondant à ce que vous
  • ' souhaitez faire est de créer un fichier Excel, de lancer l'enregistrement d'une macro,
  • ' d'exécuter les opérations voulues (changement police, ajustement colonne etc),
  • ' d'arrêter l'enregistrement de la macro et d'aller voir le code qui a été créé. Perso c'est
  • ' comme ça que j'ai procédé.
Dim xls As Excel.Workbook        ' déclaration d'une variable objet de type classeur Excel
Dim var As ce_que_vous_voulez

Set xls = GetObject("monfichier.xls")   'instanciation de l'objet (qui devient ici le fichier excel indiqué)

' export de données
With xls
   .worksheets(1).range("B6").Value = "1"
   .worksheets(1).range("B18").Value = "2"
   .worksheets(1).range("A18").Value = "3"
End With

' worksheets(1) correspond à la feuille 1 du fichier Excel
' pour spécifier le nom d'une feuille mettre à la place sheets("nom de la feuille")

' import de données
var = xls.worksheets(1).range("C2").Value

' etc etc...
' après à vous d'adapter le code en fonction de vos besoin

' une fois que vous avez fini d'utiliser la variable xls, pensez à la détruire
Set xls = Nothing

' PS: le code ci-dessus utilise un fichier Excel déjà existant.
' Pour créer un fichier Excel à partir d'une appli VB voici la manip:

Dim xls as Excel.Application
Set xls = CreateObject("Excel.Application")   ' création d'une nouvelle instance vierge de l'application Excel

' après paramètrez le fichier comme bon vous semble.
' Voici quelques exemples    
xls.WindowState = xlMaximized     ' format plein écran
xls.Visible = True                ' visible à l'écran
xls.ShowWindowsInTaskbar = True   ' visible dans la barre de tâches
xls.DisplayFormulaBar = True      ' affichage de la barre de formule
xls.Caption = "Mon fichier Excel"
xls.Workbooks.Add     ' ajout d'un classeur Excel sinon vous aurez une instance d'Excel mais pas de classeur
xls.Worksheets(1).Name = "Feuille1"
xls.Worksheets(2).Name = "Feuille2"
xls.Worksheets(1).Range("D1").Font.Bold = True  ' la cellule D1 est en gras
xls.Worksheets(1).Columns("A:A").EntireColumn.AutoFit  'ajustement automatique de la colonne A
xls.Worksheets(1).PrintOut Copies:=1	' imprimer 1 copie de la feuille 1

' je vais pas tous les faire parce que les possibilitées sont énormes.
' une bonne astuce pour voir les commandes correspondant à ce que vous 
' souhaitez faire est de créer un fichier Excel, de lancer l'enregistrement  d'une macro, 
' d'exécuter les opérations voulues (changement police, ajustement colonne etc), 
' d'arrêter l'enregistrement de la macro et d'aller voir le code qui a été créé. Perso c'est
' comme ça que j'ai procédé.

 Conclusion

' PS: je précise que j'ai arrêté de programmer depuis pratiquement 2 ans donc il se
' peut que je laisse traîner des erreurs à droite à gauche, désolé si c'est le cas. Après
' c'est à vous de vous inspirer de ce code (ou pas d'ailleurs), de fouiner sur le net et
' surtout utilisez la librairie MSDN, elle m'a sauvé la mise plus d'une fois.

' Bon courage et bonne prog


 Historique

11 avril 2005 09:27:48 :
Pour cette mise à jour j'ai changé complètement le code pour obtenir quelque chose de beaucoup plus propre et stable.

 Sources de la même categorie

IMPORTATION DANS EXCEL DE DONNÉES D'UNE SOURCE AS400 (I5, IS... par Godzestla
Source avec Zip Source avec une capture Source .NET (Dotnet) EXCELDOTNET : PROGRAMMER EXCEL EN DOTNET SANS VBA NI VSTO par Patrice99
Source avec Zip Source avec une capture AJOUTEZ VOTRE COMPLÉMENT À VISUAL BASIC 6 SANS ÊTRE CONTRAIN... par VBsearch
Source avec Zip PILOTER ACROBAT READER DEPUIS EXCEL ET VBA par jpduf
Source avec Zip Source avec une capture INTERCEPTER DES APPELS DE METHODE (SURCHARGE DE VTABLE) par Renfield

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) EXPORTER LE CONTENU D'UN DATAGRIDVIEW VERS EXCEL OU N IMPORT... par surfzoid
Source avec Zip Source avec une capture RECUPERER DES INFOS OU LES DONNÉES D'UN GRAPHIQUE SANS UTILI... par bigfish_le vrai
Source avec Zip Source .NET (Dotnet) IMPORTER/EXPORTER FACILEMENT VOS DONNÉES SOUS DIFFÉRENTS FOR... par addy
Source avec Zip UN MSFLEXGRID PLUS COMPLET par BobRouleur
Source .NET (Dotnet) EXPORTER LE CONTENU D'UN DATAGRID VERS EXCEL OU N IMPORTE QU... par surfzoid

Commentaires et avis

Commentaire de trolix le 23/09/2002 15:25:37

Ce code est super!!!! ça marche nickel! T'es le meilleur Trolix!!!!

Commentaire de trolix le 02/10/2002 17:22:50

Notez moi !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Commentaire de apys le 04/04/2003 12:15:40

Pas mal du tout ! ce code va bien m'aider, ceci dit g du mettre un SET devant la variable "fichier" pour l'importation ....
merci a toi :)

Commentaire de sadikenpanik le 08/01/2004 14:41:09

Kler tro nikel ce code !!
Mais il faut pour mon projet que je puisse faire défiler dans une listbox (combobox ou autre) toutes les cellules A1 de chaque fichier excel...
Est ce que c possible et dans ce cas est ce que kelkun ou l'ingénieux Trolix peut m'aider !!?? Merci d'avance

Commentaire de Desesperados le 12/03/2004 18:57:04

idem le code est nikel mais comme sadikenpanik je dois mettre mes cellules ds une liste box et les utiliser comme des liens vers une otre list box

alors need assistance ^^

Commentaire de spluiss le 30/05/2005 16:25:30

salut
ton code semble bien mais je recupere un messge d'erreur et ma faible experience ne m'aide pas pour specifier le type.
le message d'erreur est : "type defini par l'utilisateur non defini"??? pour la ligne "Dim xls As Excel.Workbook"
peux tu me dir ce que je dois inserer dans mon projet ou les lignes de code a ajouter a ton programme pour eviter ce probleme.
Merci beaucoup de ta reponse
ciao

Commentaire de trolix le 30/05/2005 16:33:41

Normalement il faut ajouter en référence "Microsoft Excel 10.0 Object Library"
Sachant que 10.0 correspond à Office XP, donc si tu as une autre version d'Office il faut adapter la référence.
Par contre je ne les ai pas en tête donc...

Il me semble que c'est la seule explication à ton problème (que j'ai déjà eu d'ailleurs) donc ça devrait être résolu par ce biais.
Je vais essayer de vérifier ce soir...

Commentaire de spluiss le 30/05/2005 18:58:19

salut
merci pour ta reponse tres rapide mais je suis desolé mais je rencontre denouveau un blem :
le programme tourne comme il faut mais qd je verifie dans le fichier excel specifié il n'y a rien dans les cellules designés et je ne vois pas du tout, je n'ai prix que la partie expotation de ton projet :

Dim xls As excel.Workbook    
      
    Set xls = GetObject("C:\Esstin\projet 4A\Programme\balayeuse\123456.xls") 'instanciation de l'objet (qui devient ici le fichier excel indiqué)
    
    ligne = "opérateur des test :  " + frm_conclusion.txt_opérateur.Text
    With xls
        .Worksheets(1).range("A2").Value = "coucou"
    End With
    

    ligne = vbCrLf + "type de machine :  " + frm_conclusion.txt_typemachine.Text
    With xls
        .Worksheets(1).range("A3").Value = "bonjour"
    End With
    
    
    Set xls = Nothing

pourrais tu voir ce qui cloche
d'avance merci pour tout et excuse moi de faire encore appel a toi

sylvain

Commentaire de Meuhste le 08/06/2005 17:44:30

Bonjour,
Je suis débutante en vba, je dois faire quelques macros pour les besoins d'un stage, je connais très mal la syntaxe.

Je me sers de la partie export de données de ce code:

' export de données
With xls
   .worksheets(1).range("B6").Value = "1"
   .worksheets(1).range("B18").Value = "2"
   .worksheets(1).range("A18").Value = "3"
End With

Avec ce code, on exporte un chiffre précis dans un autre classeur excel.
Je souhaiterais de la même façon exporter une plage de cellules.
Merci d'avance




Commentaire de trolix le 09/06/2005 09:28:50

Salut Meuhste,

pour exporter une plage de cellules vers un autre classeur je crois qu'il n'y a pas d'autre choix que de faire une boucle.

Cela donne un truc du genre:

Dim i as integer

for i= 0 to 10
xls.worksheets(1).range("B" + i).Value = i
Next

Voilà un exemple qui mettra la valeur i dans la cellule "B valeur de i".

Après à toi d'adapter en fonction de tes besoins mais pour répondre clairement à ta question il n'existe pas de méthode pour sélectionner une plage de cellules d'un seul coup.

En espérant t'avoir aidée...

Commentaire de Meuhste le 09/06/2005 11:48:24

Bonjour Trolix et merci beaucoup pour ton aide et ta réponse rapide!

Excel n'aime pas trop  "  range("B" + i) " il comprend pas !

j'ai arrangé ça comme cela :  
mais ça oblige à faire de la copie cellule par cellule, c'est un peu lourd à saisir si je dois copier 300 cellules vers un autre classeur !
ça doit surement pouvoir s'allerger ??



Sub copy()
Dim xls As Excel.Workbook
Set xls = GetObject("C:\...\mafeuille.xls")

With xls
Dim i(1 To 3) As Integer 'ici tableau à une colonne mais peut etre multidimensionnel sous la forme dim i(1 to 10, 1 to 10) as integer par exemple
i(1) = Range("A1")
i(2) = Range("A2")
i(3) = Range("A3")

Dim j As Integer
For j = 1 To 3
xls.Worksheets(1).Range("B1").Value = i(1)
xls.Worksheets(1).Range("B2").Value = i(2)
xls.Worksheets(1).Range("B3").Value = i(3)
Next
End With



merci pour ton aide
bonne journée.

Commentaire de trolix le 09/06/2005 13:14:05

Re-salut,

tu peux faire plus simple je pense:


Sub copy()
Dim xls As Excel.Workbook
Set xls = GetObject("C:\...\mafeuille.xls")

Dim j As Integer
For j = 1 To 3

With xls

   .Worksheets(1).Range("B" & j).Value =    .Worksheets(1).Range("A" & j).Value

End With

Ceci va copier la valeur de la cellule Aj vers la cellule Bj.

Si le + ne marche pas essaie avec le &. Je ne me rappelle plus précisément de la syntaxe.
Je vais essayer de trouver ça.

Bon courage.

Commentaire de trolix le 09/06/2005 13:15:06

Oups j'ai oublié le next...

Commentaire de Meuhste le 10/06/2005 08:27:00

Pourquoi faire simple quand on peut faire compliqué ?!

Voici une réponse au pb ci-dessus (après un peu de recherche)

Sub export_data()

    Range("A1:B13").Select 'selectionne une plage de données dans le classeur source ou se trouve cette macro
    Selection.copy 'copie dans le presse papier la selection
    ChDir "C:\....\"
    Workbooks.Open Filename:= _
        "C:\...\cible.xls"   'ouvre le fichier cible
    Range("C1:D13").Select
    ActiveSheet.Paste 'colle la selection à l'endroit souhaité
    Windows("source.xls").Activate 'fenetre fichier source active
        
End Sub

Merci trolix pour ton aide
bonne journée

Commentaire de miss_laly le 16/06/2005 11:36:37

Bonjour à tous,

j'aimerais savoir comment formater plusieurs colonnes en même temps, pour une ça marche bien :
OxlWbk.ActiveSheet.Columns("Q:Q").Select
'--> avec OxlWbk correspondant à mon classeur
Selection.NumberFormat = "0.00%"

Mais quand j'essaye de mettre plusieurs colonnes, ça marche plus :-(

Commentaire de Meuhste le 16/06/2005 16:13:56

Bonjour Miss_laly

sub formater()
Columns("A:D").Select
Selection.NumberFormat = "0.00%"
Columns("F:I").Select
Selection.NumberFormat = "0.00%"
end sub

il n'y a pas de raison pour que ça ne marche pas...
ou essaie de creer ta macro avec l'outil d'enregistrement de excel

Commentaire de miss_laly le 17/06/2005 12:10:49

Vi merci j'avais un problème à la définition de la plage.. ça marche super bien
Merci encore ;-)

Commentaire de veyraud le 08/07/2005 15:00:27

Super code, merci trolix.

Je cherche à mettre des number format autre que les pourcentages, genre un type currency (séparateur de millier et la valeur de la monnaie: € par exemple). Mais j'ai pas trouvé!!

Quelqu'un peut m'aider?

Merci!

Commentaire de trolix le 08/07/2005 15:49:36

Merci Veyraud,

concernant ta question je te conseille d'enregsitrer une macro sous excel en formatant ta cellule au format voulu.

Ensuite tu arrête l'enregistrement et tu édites la macro. Là tu verras le code qui correspond à ce que tu veux faire.

Bon courage.

PS: si mon code vous a servi n'hésitez pas à le noter ;-)

Commentaire de thierrydkk le 02/08/2005 21:03:26

merci Trollix
ton code ma été très utile pour remplir un document word à partir d'excel, je sauvegarde même les données insérer dans la form dans le fichier excel.

Au boulot on a office 97 et 2000.
Il existe donc 2 version des fichier "Microsoft Excel xx.x Object Library"
Mon fichier étant sur le réseau tous fonctionne bien si j'ouvre mon fichier avec une version 97 mais plante avec une version 2000.
Existe t-il un moyen pour appeler la version 8 ou 9 suivant que je travail avec un word 97 ou 2000.

merci

Commentaire de trolix le 02/08/2005 23:24:12

Salut à toi programmeur désoeuvré ;-)

concernant ton problème je ne pense pas que l'on puisse choisir la version de la librairie.

En revanche, si je ne me trompe pas, la librairie 9 (donc pour Office 2000) est sensée gérer les versions précédentes.

Donc en théorie en travaillant avec la Microsoft Excel 9 object library tu dois pouvoir utiliser des fichiers Excel 97 et 2000.

Mais bon je ne suis pas sûr de mon coup. Si ça ne marche pas je pense malheureusement que tu devras trouver une autre astuce...

En espérant t'avoir aidé.

Commentaire de globlafuit le 21/08/2005 00:05:43

bonjour , je rencontre un probleme avec  l export vers excel , j ai un programme qui via un bouton appelle excel , et dessine un graphe , cette methode marche bien pour tracer le 1 er graphe mais apres plus moyen de dessiner un 2 eme graphe , j obtiens une erreur : method sheets of object global failed , bref on dirait qu il ne sait pas quelle instance d excel il doit considerer . quelqu un a t il une solution hormis tuer l application excel.exe a chaque appui du bouton ?

merci

Commentaire de amirsousou le 10/05/2006 14:33:53

Mille merci pour vous Mr....vous m'avez sauvé!

Commentaire de michoweb le 12/05/2006 17:19:48

Bonjour,


comment fait on pour metrre des bordure en vbscript, une personne a t'il une idée

Merci

Commentaire de cynthia06 le 19/05/2006 11:50:24

Merci pour ces informations...Cela faisait trois jours que je cherchais un moyen simple pour faire passer un parametre de VB a une Macro Excel. Votre code m'a donne l'idee d'exporter le parametre de VB, de le copier dans une cellule Excel puis d'aller le lire. :-)

Commentaire de Tanaka56 le 10/07/2006 18:26:58

Vieux motard que jamais !!!
A l'attention de "SPLUISS" et des autres. J'ai rencontré le même problème; tout se déroule corectement, mais rien dans les cellules.
Alors j'ai cherché dans d'autre application, et en ajoutant ceci, ça fonctionne : Workbooks.Open Filename:="c:\BASE.XLS"
Cordialement.

Commentaire de winnipeg le 13/07/2006 22:17:26

Merci pour ce code

J'ajouterais la ligne suivante dans le code (pour sauvegarder l'export vers le fichier excel) :

xls.save

(avant 'Set xls = Nothing' )
sinon on peut utiliser la propriété:

xls.Worksheets(n).cells(i,j)

pour accéder directement à la cellule(i,j) de la feuille n (et ne pas s'embeter avec le range)

Commentaire de Didier72 le 04/08/2006 17:23:00

Hello

Qu'elle référence faut-il prendre avec le tableur de OpenOffice ?

merci

A bientôt

Commentaire de rob29 le 07/08/2006 11:58:52

Bonjour,
j'ai lu ton code et je voulais savoir une chose. En fait moi je veux exporter mes données access dans mon formulaire excel pour ensuite les mettre en graphiques. Est-ce que le principe est le même ? Si j'ai bien compris, je dois dire que le résultat de telle case access va dans tel case excel ?
Seulement le nombre de mes cases est aléatoire donc comment faire ?

Merci

Commentaire de djillalidjillali le 02/04/2007 02:39:29

merci tres bien trolix
mon probleme :

quand je revien a l'excel ,et j'ouvre mon classeur rien n afiche
et j ai passé par menu fenetre - aficher pour aficher mon classeur

aidez moi svp

merci ,merci ,merci ,merci ,merci

Commentaire de Atojul le 26/04/2007 09:48:01

Super ce code Trolix

mais je recherche toujours une chose, comment alligner le texte toutes mes cellules à droite ??

merci d'avance pour votre aide

Commentaire de pgwizard le 23/06/2007 16:06:52

Bonjour Trolix
je suis novice en programmation et je cherchai comment importer exporter des données dans un fichier excel depuis VB2005Express quand j'ai découvert ton code. Je l'ai donc saisi et j'ai ajouté la référence Microsoft Excel 9.0 Object Library (ongletCOM) car c'est la seule qu'on me propose. J'utilise Office 2000.
Quand je lance le programme il me retourne l'erreur suivante : L'exception System.Exception n'a pas été gérée - Message="Impossible de créer le composant ActiveX."
Après avoir cherché une solution dans la bibliothèque Microsoft de VB2005 ainsi que sur plusieurs forums je me suis décidé à m'adresser directement à toi.
Qu'en penses-tu et peux tu m'aider à résoudre ce problème. D'avance merci.

Commentaire de trolix le 23/06/2007 16:26:35

Bonjour,

merci de ta sollicitation mais je ne programme plus depuis des années. Je serais bien incapable de te dire d'où vient le problème, d'autant plus que je ne connais pas VB2005Express.
Il y a surement quelques différences avec VB6 donc je suppose que le problème vient d'une option quelconque ou d'une référence.

Bon courage pour le suite.

Commentaire de enitbasma le 24/07/2007 22:37:21

salut
je suis dans une situation grave
en fait je suis débutante en vb6
j'effectue mon stage au sein d'une entreprise

mon stage est obligatoire ainsi que la validation

dans tout je vais expliquer: mon pb est que je veux acceder à des fichiers .csv(séparateur camma) il ressemble à excel mais à la place de colonnes on trouve des pts virgules

bref je veux savoir est ce que existe une méthode pour acceder à des fichiers à partir de vb6 et extraire des colonnes.
ou extraire les colonnes que j'ai besoin et les impoter à ACCESS.

NB: je ne sais pas comment meme manipuler excel avec vb et je ne sais pas pour quoi tu parle tjs du macro  et je sais c'est quoi et quel est son utilité

désolé pour le dérrangement mais ma situation est grave

merci pour votre aide

et merci pour toute personne qui veut m'aider car je veux déprimée il me reste presque deux semaines pour donner l'application à l'entreprise

merci pour votre attention

Commentaire de spluiss le 25/07/2007 08:46:23

salut

je ne sais pas si ma solution est la bonne mais je me demandais si le format de ton .csv est en ascii. Car dans ce cas tu enregistre un fichier ascii avec tes point virgule et tout le bon format, et tu l'enregistre avec l'extension ".csv" . Pour extraire tes colonne la possibilité est de faire un traitement de text et a chaque fois que vb rencontre le caractère de séparation de csv, il crée une nouvelle variable, ou change d'indice pour le tableau. Pour ce qui est de la placer dans une base access, je ne sais pas comment t'aider, je ne l'ai jamais fais, mais sur ces forum tu peux peut etre trouver un truc...

Bon courage et bon stage

Sylvain

Commentaire de redahs le 31/03/2008 11:12:39 8/10

Salut a tous ! je suis un jeune étudiant en dévelopement infomatique et j'ai besoin d'aide svp.
je programme un projet en visual studio 2005 et j'ai besoin d'exporté des données en excel.
Merci Trolix pour le code, mais je ne sais pas comment ajouter une référence :s . Quand je clique sur l'onglet projet => Ajouter une référence => Microsoft Excel 11.0 Object Library et que je clique sur Ok, je crois que sa ne marche pas parceque visual studio ne reconné pas "excel.workbook lors" lors de la déclaration  => dim xls as excel.workbook.:s
Merci de bien vouloir m'aider car j'ai vraiment besoin de votre aide. ^-^
Reda ^-^

Commentaire de rakicky le 24/07/2009 18:26:45

Bonjour

je voulais poser une question a propos de ce code, en faite je travail sur un projet de meme principe mais l'executable sera executé sur server et dessus il n'y a pas Excel d'installer.
J'ai utilisé donc oledb pour me connecter sur le fichier. Mais le probleme c'est qu'au chargement des donnée dans Excel j'ai cet erreur: [Microsoft][ODBC Excel Driver] Data type mismatch in criteria expression.
Ma question c'est que si j'utilise la methode que vous avez utiliser pour ce code et qu'il faut donc referencer l'Excel, est ce que ca marchera quand j'execute le programme sur le server là où il n'y pas Excel.

merci d'avance pour votre reponse

Commentaire de spluiss le 25/07/2009 20:02:12

J'avoue tre un peu depassé mais suis interessé par la reponse. Je me demande si Visual a vraiment besoin d'une installation complete excel ou si il renferme suffisemment d'elements pour gerer un format xls. Peut etre que des dll sont a rajouter.
Je pense que visual pourra gerer ton soucis mais avec microsoft faut se mefier de tout.
Merci de dire comment ça s'est passé...?

Sylvain

Commentaire de spluiss le 25/07/2009 20:08:08

Je crois avoir repondu un peu vite,car pour s'executer ton programme a besoin d'une librairie excel, à l'epoque de mon programme c'etait "microsoft excel 10.0 object library". Pas sur que cette librairie soit rattaché sur ton executable lors de la compilation et qu'elle prendra effet sur ton serveur. Je pense finalement qu'il faut quelque element sur le serveur pour reconnaitre le format xls, mais a tenter...

Commentaire de rakicky le 27/07/2009 10:08:29

en faite nous avons dejà un programme codé par une autre personne qui s'execute sur ce meme serveur et qui sert a chargé des données d'un fichier excel vers une base SQL Server, mais je pense que le programme utilise OLEDB et des requetes SQL. et je me pose donc la question si le programme marche sur ce server pourqoui est ce que je ne pourrai pas utiliser votre methode?

Commentaire de spluiss le 27/07/2009 13:02:59

c'est vrai que ce code ne semble pas reclamer de biblio excel d'apres son code. Je reste depassé par le domaine mais sans doute que les élément permettant de gérer le format xls est contenu dans lme programme OLEDB. Je pense que de toute façon il faut faire le code, tu verra ensuite si tu as des surprises. En tout cas, le programme dont tu parles (excel-->SQL) a forcemment besoin de connaitre le format excel, il faut verifier comment il le sait pour etre sur que tu n'as rien a rajouter a ton code.

Commentaire de jpduclos le 31/05/2011 21:39:31

Bonjour, je suis nouveau sur ce forum, et je remercie tous les participants qui m'ont aidé involontairement par leurs remarques pertinentes.

Au sujet de l'import-export de cellules Excel dans un pg en VB6,j'ai utilisé l'une des idées de ce forum, et ça marche :
(il s'agit de mettre des données issues de Tableau(x,y) dans un fichier Excel, seulement si la valeur de la case est différente).

Set xls = GetObject(CheminFichier$) 'instanciation de l'objet (qui devient ici le fichier excel indiqué)

CheminFichier$ est le chemin complet,sinon, ça ne marche pas. Exemple: C:\2011\Fichier.xls
On trouve facilement ces  indications par un clic droit, et Propriétés
'   *
'   * ' export de données
Pour faire une boucle, j'utilise des chaînes de caractères. Je pense que ("B" & i ) peut rebuter VB, je pense qu'il vaut mieux écrire ("B" & str$(i)). Mais il faut se débarrasser de l'espace  devant i dans la chaîne. Alors, remplacer str$(i) par right$(str$(i), len(str$(i))-1). Ca devrait marcher !

With xls
CX$ = "2345678"
CY$ = "ABCDEFG"
For X = 0 To 6
For Y = 0 To 6
If xls.worksheets("Altitudes").range(Mid$(CY$, Y + 1, 1) & Mid$(CX$, X + 1, 1)).Value <> Tableau(X, Y) Then

.worksheets("Altitudes").range(Mid$(CY$, Y + 1, 1) & Mid$(CX$, X + 1, 1)).Value = Tableau(X, Y)
End If
Next Y
Next X
  End With

Et ça marche au poil !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Importer, exporter des macros excel [ par steph05 ] Bonjour à tous,voilà mon problème : en fait je dispose d'un classeur excel "a" contenant des données et auquel sont associées un certain nombre de mac importer le fichier excel et l'exporter dans la base des données sql server 2000 en utilisant le code vb6.0 [ par munemmy ] Bonjour à tous, J'aimerais demander s'il y a quelqu'un qui peut aider à me dire comment importer un fichier excel par le visual basic 6.0 et l'exporte Exporter des données dans Excel tt les X minutes [ par Fabian26 ] Voila je dois exporter des données vers Excel tt les x minutes, seulement la donnée qu'il envoie est tjs la meme alors que entre chaque minute elle va importer un tableau excel dans un même fichier vba [ par gabao ] bonjour à tous!!alors je vous explique mon problème: j'ai créé un tableau sous excel que j'aimerais recuperer sous excel vba...le problème est que je Exporter une feuille VB6.0 sous Excel [ par jeanmardelbv ] Bonjour à tous,  Je suis désolé de vous déranger pour cette question mais j'ai cherché partout sans succès.  J'ai un formulaire sous VB.6.0  L'objecti exporter un msflexgrille vers excel et word [ par Consty25 ] je demande le code  pour exporter un msflexgrille vers excel et word. Exporter tableau vb sous excel [ par Fabian26 ] Slt, Si j'ai un tableau :tab(i) comment puis-je exporter chacune des ligne de mon tableau dans un fichier excel en mettant chaque valeur automatiquem Comment importer plusieurs .csv dans le meme classeur Excel [ par Panodrek ] Voilà, donc comme le dit le titre, j'ai 2 documents en .csv, que je desire importer dans le meme classeur, un en feuille 1, l'autre en feuille 2, à pa Importer 2 fichiers texte dans le même classeur Excel et dans 2 feuilles séparées [ par mahevallia ] Bonjour, J'ai plusieurs fichiers texte dans des dossiers séparés, je souhaite automatiser un import vers Excel. Par exemple, j'ai un dossier qui compo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales