Importer une feuille d'un document Excel sans ouvrir ce dernier
hassanz17
Messages postés3Date d'inscriptionjeudi 10 avril 2003StatutMembreDernière intervention23 janvier 2009
-
23 janv. 2009 à 12:30
Supra3000
Messages postés159Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 8 janvier 2010
-
23 janv. 2009 à 19:14
Bonjour à tous
mon problème et le suivant:
J'ai un fichier Excel "MonClasseur" ou je fais tout un calcul sauf pour alliment des cefichier il faut que je récupère une feuille d'un autre classeur "MaBase" sans oubrir ce dernier.
Je souhaite faire cette importation sous VBA
- Comme le fichier "Mabase" est mis à jour chaque mois , j'ai d'abord fait une boite de dialogue pour désisgner le fichier à importer.
Dim ChemMabase As Variant
Position1:
Dim s As Integer
ChemMabase = Application.GetOpenFilename("Excel Files (*.xls), *.xls", , "Selection du fichier")
If
ChemMabase
= False Then
toto = MsgBox("Vous n'avez pas selectionné de fichier à importer.Désirez vous continuer?", 52, "Erreur")
I f (toto = vbYes) Then
GoTo Position1
End If
' --- Si on annule
If (toto = vbNo) Then
End
End If
End If
- Après c'est là où je suis bloqué
J'aimerai avoir un code VBD qui m'importe la première feuille du fichier Mabase sans l'ouvrir
Merci d'avance
A voir également:
Vba récupérer données d'un autre classeur sans l'ouvrir
whitelegend
Messages postés156Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention 2 mars 2009 23 janv. 2009 à 17:10
Salut,
Qu'entends tu dans: "sans ouvrir le classeur" ?
Pour accéder aux données d'un classeur il faut obligatoirement ouvrir celui ci mais pas obligatoirement avec la fenêtre Excel ouverte visuellement.
Le code ci-dessous ouvre le classeur ainsi qu'un instance d'Excel dans les processus système mais sans ouvrir visuellement le programme.
Sub test()
Dim myXl As Excel.Application
Dim myWb As Excel.Workbook
Dim myWs As Excel.Worksheet
Set myXl = New Excel.Application 'Intancie
Set myWb = myXl.Workbooks.Open("c:\Monfichier.xls") 'Ouvre le fichier
Set myWs = myWb.Worksheets.Item(1) 'instancie myWS avec la feuille 1 du classeur
End Sub
Voilà, il n'y aucun autre moyen d'accéder aux données d'un classeur Excel par VBA
hassanz17
Messages postés3Date d'inscriptionjeudi 10 avril 2003StatutMembreDernière intervention23 janvier 2009 23 janv. 2009 à 17:56
Merci bcp pour votre réactivité,
Quand je fais une importation de feuille avec la méthode normale (càd aller sur
le menu d'Excel Données-> Données externes->Importer des données...) cela
importe la feuille sans ouvrir le fichier.
J'ai essayé même d'enregistré la macro liée a cette opération, et sur le
code je retrouve bien le chemin de la feuille à importer, par contre quand je
souhaite rendre ce chemin variable sur le code la macro ne fonctionne plus
La méthode ActiveSheet.QueryTables.Add.Refresh BackgroundQuery:=False ouvre le fichier en mode invisible pour pouvoir importe ta feuille. Cette méthode n'est pas magique, je veux dire par là qu'à la limite il est impossible d'importer un fichier qu'il soit binaire, etc sans l'ouvrir pour avoir l'info qui se trouve a l'intérieur...