Detection appli excel

Tahofeng - 21 mars 2013 à 04:30
 Tahofeng - 21 mars 2013 à 09:37
Bonjour,

Je suis en train de coder pour convertir automatiquement des fichiers CSV en fichier excel puis en extraire certaines données.

les fichiers excels convertis doivent rester ouverts

pour l'instant voila comment j'ouvre mon appli excel et ouvre mon fichier.
[b]
code:/b
[i]Dim xlsapp As Excel.Application
Dim Xlsbook As Excel.Workbook
Dim Xlsheet As Excel.Worksheet
Dim Nomfichier As String


Nomfichier = MEFcourbe.Lfichier.Text

'lancement d'excel et ouverture du fichier
xlsapp = New Excel.Application
Xlsbook = xlsapp.Workbooks.Open(Nomfichier)


xlsapp.Visible = False
Xlsheet = xlsapp.ActiveWorkbook.ActiveSheet/i
fin code

Avec cela j'arrive très bien à ouvrir mon fichier (je le rend visible plus tard) puis a travailler dessus.

Mon problème est que si je veux faire le traitement de plusieurs CSV de suite, cela me lance plusieurs appli excel.
Ne voulant pas fermer les fichiers précédents, je ne veux pas fermer l'appli

Je voudrais donc mettre en place un contrôle avant d'ouvrir une nouvelle appli mais je n'arrive pas a la mettre en place.
je ne connais pas la syntaxe et ne trouve rien sur les forums pour détecter et réutiliser une appli excel déjà ouverte et juste ouvrir le fichier CSV suivant.

Pour info je code sous Visual Basic 2010 express.

Merci de votre aide

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 mars 2013 à 07:50
Bonjour,
La lecture (dans ton aide VB6) attentive de la fonction GetObject et de l'exemple qui l'accompagne va te permettre de résoudre très aisément cette difficulté
Par ailleurs (et bien que cette seconde fonction ne te sera pas, dans ton cas, d'une grande utilité) tu devrais trouver un intérêt à lire également ce qu'est la fonction CreateObject.
Reviens, si encore en difficulté après cette lecture, avec ton code d'essai utilisant la fonction GetObject.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 mars 2013 à 08:12
Je suis par ailleurs très surpris (c'est le moins que je puisse dire) par quelques lignes de ton code, telle celle-ci :
xlsapp = New Excel.Application

pour initialiser une variable objet !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Merci de ta réponse rapide,

Je vais regarder l'aide de VB pour résoudre ce problème (je sais maintenant ou regarder grâce a toi).
Étant débutant, j'avoue que je ne suis pas familiarisé avec le langage orienté objet (je fais plus du bricolage que de la réelle programmation)
d'où certaine surprise dans mon code pour un vrai programmeur.
0
Rejoignez-nous