Ouvrir fichier Excel en VBA

J

Jeff

Guest
Bonjour,

A problème simple réponse sans doute aussi simple, mais je ne trouve pas.

Je cherche à ouvrir un classeur excel à partir d'un code vba pour y importer des données. J'utilise la procédure suivante:

Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel

'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("D:\Sig.xls")
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)


Résultat, rien ne s'ouvre, et je peux encore moins travailler sur le fichier en question... que faire?

Merci par avance!

Jeff
 

Pierrot93

XLDnaute Barbatruc
Re : Ouvrir fichier Excel en VBA

Re,

comprends pas trop cette double initialisation.... la première par une variable de type "string" et la seconde par une variable "objet" (précédé d'un set).... le mieux pour éviter pas mal d'erreurs est de déclarer et de typer tes variables en tête de module.... exemple ci-dessous :
Code:
Dim fichier As String, wb As Workbook
fichier = "C:\MesDocs\Sig.xls"
Set wb = Workbooks.Open(fichier)
 

C@thy

XLDnaute Barbatruc
Re : Ouvrir fichier Excel en VBA

Ben justement, j'ai fait comme ça mais j'ai la même erreur...

Public ClasseurHisto As Workbook, ClasseurReseau As Workbook
Public FeuilleBetan As Worksheet, FeuilleSortie As Worksheet


Sub initialisation()
'**********CODE RAJOUTE DANS LE CADRE DE LA MODIFICATION DE L'ARBORESCENCE **********
Dim test As Boolean
Dim k As Integer
cheminCourant = ThisWorkbook.Path
While test = False
k = k + 1
test = Dir(cheminCourant & "\chemins.xls") <> ""
If test = True Then
If Len(cheminCourant = ThisWorkbook.Path) = 3 Then MsgBox ("Interruption de la macro" & Chr(13) & "Merci de ne pas placer le fichier chemins.xls à la racine d'un lecteur"): Exit Sub
Set workbookchemins = Workbooks.Open(cheminCourant & "\chemins.xls", ReadOnly:=True)
ElseIf k > 6 Then
MsgBox ("Fichier chemins.xls introuvable")
Exit Sub
Else
'on remonte d'un niveau de répertoire
cheminCourant = Left(cheminCourant, InStrRev(cheminCourant, "\") - 1)
End If
Wend
Set ClasseurHisto = ThisWorkbook
Dim fichier As String
fichier = cheminCourant & "\" & workbookchemins.Names("flux_dette").RefersToRange
Set ClasseurReseau = Workbooks(fichier)

et là, paf! erreur, l'indice n'appartient pas à la sélection...
je ne sais pas ce que j'ai fait mais ça ne veut pas marcher, et je suis bloquée...

sorry for embêting (bothering) you again, Pierrot!!! mais j'y perds mon latin....
Bi
sous
C@thy
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Ouvrir fichier Excel en VBA

Re,

normal dans ce cas pas de chemin..au lieu de ;
Code:
Dim fichier As String 
fichier = cheminCourant & "\" & workbookchemins.Names("flux_dette").RefersToRange 
Set ClasseurReseau = Workbooks(fichier)

utilise :
Code:
Dim fichier As String 
fichier = workbookchemins.Names("flux_dette").RefersToRange 
Set ClasseurReseau = Workbooks(fichier)

supposant que le "RefersToRange" renvoie bien un nom de classeur ouvert (avec son extension xls)
 

C@thy

XLDnaute Barbatruc
Re : Ouvrir fichier Excel en VBA

Ah oui!!! Ca y est!!! j'y suis,
si je fais ce que tu dis au lieu de C:\Gestion des flux\Prévision\Cods flux\159-Dette.xls j'obtiens Prévision\Cods flux\159-Dette.xls, qui correspond à mon nom, donc ça ne marche toujours pas car il faudrait uniquement le nom du fichier...
damned... je dois juste récupérer la fin du contenu de la cellule renvoyé par le nom...
ça se complique...

C@thy
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Ouvrir fichier Excel en VBA

Re,

j'obtiens Prévision\Cods flux\159-Dette.xls, qui correspond à mon nom, donc ça ne marche toujours pas car il faudrait uniquement le nom du fichier...

pour juste le nom du fichier :
Code:
Dim fichier As String
fichier = "Prévision\Cods flux\159-Dette.xls"
MsgBox Split(fichier, "\")(UBound(Split(fichier, "\")))
 

C@thy

XLDnaute Barbatruc
Re : Ouvrir fichier Excel en VBA

Arf! J'ai pas fini avec ce truc!!!:eek:

le classeur n'est pas ouvert mais je vais l'ouvrir plus tard...
Code:
Dim wb as workbook, wfeuille as worksheet
dim fichier As String, fic as string, NomSortie as string
'j'initialise
fichier = "C:\MesDocs\toto\Sig.xls"
fic = Split(fichier, "\")(UBound(Split(fichier, "\")))
NomSortie = "SORTIE"
Set wb = Workbooks(fichier) 'oui je sais, c'est pas ça:o
set wfeuille = wb.Sheets(NomSortie)
'.....
'plus tard : j'ouvre le fichier
Set wb = Workbooks.Open(fichier) 
wb.Sheets(NomSortie).select
Range("A1").value = 10
tu vois ce que je veux faire?... mais c'est pas comme ça...:eek:

Bises

C@thy
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Ouvrir fichier Excel en VBA

Bonjour,

bah... supprime cette ligne...
Code:
Set wb = Workbooks(fichier)

et place celle-ci après avoir ouvert le fichier :
Code:
set wfeuille = wb.Sheets(NomSortie)

sans plus de détails...

bon après midi
@+
 

C@thy

XLDnaute Barbatruc
Re : Ouvrir fichier Excel en VBA

coucou,

je m'en doutais...

mais je voulais tout initialiser avant, c'est le principe du module d'initialisation...

avec mon nom de classeur en variable, j'y arrivais, mais dès que je le mets en workbook je peux plus... et en plus je dois passer par des tas de variables intermédiaires pour le nom avec le chemin complet, (une par fichier), le nom tout seul... (une par fichier)...

j'ai un paquet de fichiers à traiter, ça va pas être simple...

ou alors je fais comme dans ton dernier code du #7, mais tu disais que c'était moins simple à gérer...

Bisettes

C@thy
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Ouvrir fichier Excel en VBA

Re,

ou alors je fais comme dans ton dernier code du #7, mais tu disais que c'était moins simple à gérer...

bah oui... moins simple, mais à voir selon le cas à gérer.... pour un paquet de fichiers à traiter, peut être utiliser une boucle... voir aussi du coté de la fonction "Dir".... tout dépend....
 

Discussions similaires

Réponses
3
Affichages
364

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87