trolix
Messages postés13Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention23 juin 2007
-
23 sept. 2002 à 15:25
Tycoon87
Messages postés1Date d'inscriptionmardi 19 juin 2018StatutMembreDernière intervention19 juin 2018
-
19 juin 2018 à 02:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Tycoon87
Messages postés1Date d'inscriptionmardi 19 juin 2018StatutMembreDernière intervention19 juin 2018 19 juin 2018 à 02:37
Bonjour a tous.
Je ne ne suis pas un expert en programmation. Vraiment pas. Environ 20h de formation a l'école sur visual basic.
Je bidouille présentement pour le plaisir, un programme qui doit utiliser des données sur internet (ou dans excel) et en compiler de nouvelles vers un fichier Excel. Je crois que ce code va m'aider grandement. Cependant, je vais devoir faire cette manoeuvre plusieurs fois.
Disons que je dois transmettre des données de plusieurs "personnes de mon entreprise dans mon fichier Excel.
Monsieur A
Monsieur B
Madame C
Monsieur C ...
Est ce que ça serait possible d'associer chaque noms a des données spécifique. j'aimerais par exemple: sélectionner Monsieur A dans une liste déroulante et ainsi récupérer les données de excel vers vb et par la suite en appuyant sur un bouton transférer des statistiques vers un autre fichier Excel. J'espère que ma question vous sembles clair.!
Présentement je récupère les données sur internet par moi même, ni écrit ces données dans mon programme et en appuyant sur un bouton je génère mes statistiques qui sont transféré vers un datagridview. Ensuite je copie et collé dans Excel. Ça fonctionne bien sauf que c'est très long et sachant que je dois le faire environ 300 fois....sivous avez une idée je suis preneur.merci
ammar06
Messages postés1Date d'inscriptionvendredi 25 décembre 2015StatutMembreDernière intervention25 décembre 2015 25 déc. 2015 à 12:14
BONNE PROGRAMME
cs_jpduclos
Messages postés1Date d'inscriptionmardi 31 mai 2011StatutMembreDernière intervention31 mai 2011 31 mai 2011 à 21:39
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 !
spluiss
Messages postés27Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention 4 avril 2013 27 juil. 2009 à 13:02
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.
rakicky
Messages postés3Date d'inscriptionmercredi 6 février 2008StatutMembreDernière intervention27 juillet 2009 27 juil. 2009 à 10:08
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?
spluiss
Messages postés27Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention 4 avril 2013 25 juil. 2009 à 20: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...
spluiss
Messages postés27Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention 4 avril 2013 25 juil. 2009 à 20:02
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
rakicky
Messages postés3Date d'inscriptionmercredi 6 février 2008StatutMembreDernière intervention27 juillet 2009 24 juil. 2009 à 18:26
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
redahs
Messages postés3Date d'inscriptiondimanche 30 mars 2008StatutMembreDernière intervention22 avril 2011 31 mars 2008 à 11:12
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 ^-^
spluiss
Messages postés27Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention 4 avril 2013 25 juil. 2007 à 08:46
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
enitbasma
Messages postés7Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention 5 juin 2008 24 juil. 2007 à 22:37
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
trolix
Messages postés13Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention23 juin 2007 23 juin 2007 à 16:26
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.
pgwizard
Messages postés1Date d'inscriptionsamedi 23 juin 2007StatutMembreDernière intervention23 juin 2007 23 juin 2007 à 16:06
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.
Atojul
Messages postés2Date d'inscriptionjeudi 26 avril 2007StatutMembreDernière intervention26 avril 2007 26 avril 2007 à 09:48
Super ce code Trolix
mais je recherche toujours une chose, comment alligner le texte toutes mes cellules à droite ??
merci d'avance pour votre aide
djillalidjillali
Messages postés1Date d'inscriptionjeudi 22 février 2007StatutMembreDernière intervention 2 avril 2007 2 avril 2007 à 02:39
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
rob29
Messages postés6Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention 2 août 2006 7 août 2006 à 11:58
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
cs_Didier72
Messages postés76Date d'inscriptiondimanche 10 octobre 2004StatutMembreDernière intervention13 juin 2015 4 août 2006 à 17:23
Hello
Qu'elle référence faut-il prendre avec le tableur de OpenOffice ?
merci
A bientôt
cs_winnipeg
Messages postés1Date d'inscriptionjeudi 13 juillet 2006StatutMembreDernière intervention13 juillet 2006 13 juil. 2006 à 22:17
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)
Tanaka56
Messages postés124Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention29 janvier 2009 10 juil. 2006 à 18:26
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.
cs_cynthia06
Messages postés6Date d'inscriptionvendredi 19 mai 2006StatutMembreDernière intervention30 janvier 2007 19 mai 2006 à 11:50
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. :-)
michoweb
Messages postés2Date d'inscriptionsamedi 14 octobre 2000StatutMembreDernière intervention 4 novembre 2008 12 mai 2006 à 17:19
Bonjour,
comment fait on pour metrre des bordure en vbscript, une personne a t'il une idée
Merci
amirsousou
Messages postés1Date d'inscriptionlundi 18 juillet 2005StatutMembreDernière intervention10 mai 2006 10 mai 2006 à 14:33
Mille merci pour vous Mr....vous m'avez sauvé!
globlafuit
Messages postés1Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention 4 mai 2009 21 août 2005 à 00:05
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
trolix
Messages postés13Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention23 juin 2007 2 août 2005 à 23:24
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é.
thierrydkk
Messages postés3Date d'inscriptionjeudi 7 juillet 2005StatutMembreDernière intervention 9 avril 2008 2 août 2005 à 21:03
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
trolix
Messages postés13Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention23 juin 2007 8 juil. 2005 à 15:49
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 ;-)
veyraud
Messages postés5Date d'inscriptionmercredi 13 avril 2005StatutMembreDernière intervention 8 juillet 2005 8 juil. 2005 à 15:00
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!
miss_laly
Messages postés2Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention17 juin 2005 17 juin 2005 à 12:10
Vi merci j'avais un problème à la définition de la plage.. ça marche super bien
Merci encore ;-)
Meuhste
Messages postés4Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention16 juin 2005 16 juin 2005 à 16:13
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
miss_laly
Messages postés2Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention17 juin 2005 16 juin 2005 à 11:36
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 :-(
Meuhste
Messages postés4Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention16 juin 2005 10 juin 2005 à 08:27
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
trolix
Messages postés13Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention23 juin 2007 9 juin 2005 à 13:15
Oups j'ai oublié le next...
trolix
Messages postés13Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention23 juin 2007 9 juin 2005 à 13:14
Re-salut,
tu peux faire plus simple je pense:
Sub copy()
Dim xls As Excel.Workbook
Set xls = GetObject("C:\...\mafeuille.xls")
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.
Meuhste
Messages postés4Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention16 juin 2005 9 juin 2005 à 11:48
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.
trolix
Messages postés13Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention23 juin 2007 9 juin 2005 à 09:28
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...
Meuhste
Messages postés4Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention16 juin 2005 8 juin 2005 à 17:44
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
spluiss
Messages postés27Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention 4 avril 2013 30 mai 2005 à 18:58
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
trolix
Messages postés13Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention23 juin 2007 30 mai 2005 à 16:33
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...
spluiss
Messages postés27Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention 4 avril 2013 30 mai 2005 à 16:25
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
cs_Desesperados
Messages postés11Date d'inscriptionvendredi 12 mars 2004StatutMembreDernière intervention12 août 2004 12 mars 2004 à 18:57
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 ^^
sadikenpanik
Messages postés4Date d'inscriptionjeudi 8 janvier 2004StatutMembreDernière intervention21 janvier 2004 8 janv. 2004 à 14:41
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
apys
Messages postés1Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 avril 2003 4 avril 2003 à 12:15
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 :)
trolix
Messages postés13Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention23 juin 2007 2 oct. 2002 à 17:22
Notez moi !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
trolix
Messages postés13Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention23 juin 2007 23 sept. 2002 à 15:25
Ce code est super!!!! ça marche nickel! T'es le meilleur Trolix!!!!
19 juin 2018 à 02:37
Je ne ne suis pas un expert en programmation. Vraiment pas. Environ 20h de formation a l'école sur visual basic.
Je bidouille présentement pour le plaisir, un programme qui doit utiliser des données sur internet (ou dans excel) et en compiler de nouvelles vers un fichier Excel. Je crois que ce code va m'aider grandement. Cependant, je vais devoir faire cette manoeuvre plusieurs fois.
Disons que je dois transmettre des données de plusieurs "personnes de mon entreprise dans mon fichier Excel.
Monsieur A
Monsieur B
Madame C
Monsieur C ...
Est ce que ça serait possible d'associer chaque noms a des données spécifique. j'aimerais par exemple: sélectionner Monsieur A dans une liste déroulante et ainsi récupérer les données de excel vers vb et par la suite en appuyant sur un bouton transférer des statistiques vers un autre fichier Excel. J'espère que ma question vous sembles clair.!
Présentement je récupère les données sur internet par moi même, ni écrit ces données dans mon programme et en appuyant sur un bouton je génère mes statistiques qui sont transféré vers un datagridview. Ensuite je copie et collé dans Excel. Ça fonctionne bien sauf que c'est très long et sachant que je dois le faire environ 300 fois....sivous avez une idée je suis preneur.merci
25 déc. 2015 à 12:14
31 mai 2011 à 21:39
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 !
27 juil. 2009 à 13:02
27 juil. 2009 à 10:08
25 juil. 2009 à 20:08
25 juil. 2009 à 20:02
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
24 juil. 2009 à 18:26
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
31 mars 2008 à 11:12
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 ^-^
25 juil. 2007 à 08:46
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
24 juil. 2007 à 22:37
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
23 juin 2007 à 16:26
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.
23 juin 2007 à 16:06
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.
26 avril 2007 à 09:48
mais je recherche toujours une chose, comment alligner le texte toutes mes cellules à droite ??
merci d'avance pour votre aide
2 avril 2007 à 02:39
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
7 août 2006 à 11:58
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
4 août 2006 à 17:23
Qu'elle référence faut-il prendre avec le tableur de OpenOffice ?
merci
A bientôt
13 juil. 2006 à 22:17
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)
10 juil. 2006 à 18:26
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.
19 mai 2006 à 11:50
12 mai 2006 à 17:19
comment fait on pour metrre des bordure en vbscript, une personne a t'il une idée
Merci
10 mai 2006 à 14:33
21 août 2005 à 00:05
merci
2 août 2005 à 23:24
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é.
2 août 2005 à 21:03
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
8 juil. 2005 à 15:49
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 ;-)
8 juil. 2005 à 15:00
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!
17 juin 2005 à 12:10
Merci encore ;-)
16 juin 2005 à 16:13
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
16 juin 2005 à 11:36
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 :-(
10 juin 2005 à 08:27
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
9 juin 2005 à 13:15
9 juin 2005 à 13:14
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.
9 juin 2005 à 11:48
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.
9 juin 2005 à 09:28
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...
8 juin 2005 à 17:44
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
30 mai 2005 à 18:58
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
30 mai 2005 à 16:33
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...
30 mai 2005 à 16:25
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
12 mars 2004 à 18:57
alors need assistance ^^
8 janv. 2004 à 14:41
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
4 avril 2003 à 12:15
merci a toi :)
2 oct. 2002 à 17:22
23 sept. 2002 à 15:25