vba pour excel

2
VBA - Excel : Lire dans un classeur fermé Juin 2014 Sous VBA , les différentes techniques de lecture de données dans un fichier Excel fermé sont assez rebut antes par leur complexité. Cependant, il existe une petite astuce permett ant de contourner ceci, sans utili ser de connexion OLE DB, mais uniquement pour la lecture. Introduction La méthode, par Excel : Le code VBA correspondant Précautions d'emploi Exemple d'utilisation Téléchargement  Introduction Nous avons besoin, dans notre classeur « Recap », d'avoir les informations situées dans la plage de cellules « A1 :F10 » de la feuille « Feui l1 » d'un classeur « source », l ui-même situé dans le répert oire « C :\Pijaku\Ne_fait_rien_de_ses_journées\ CCM\ ». Donc pour commencer , ouvrons un classeur, inscrivons « Pij aku » en Feuil1 de l a cellule A1 à la cellul e F10 et enregistrons le sous « source. xls » dans le répertoire : C:\Pijaku\Ne_fait_rien_de_ses_journées\CCM\. Fer mons ce classeur. Ouvrons un second classeur Excel et enregistrons le sous « Recap.xls » dans l e bureau (par exemple). La méthode, par Excel : Dans votre classeur Recap.xls : Insérer un nom défini : Menu : Insertion Choix : Nom Cliquer sur : Définir Noms dans le cl asseur => saisir : plage Fait référence à => saisir : ='C:\Pijaku\Ne_fait_rien_de_ses_journées\CCM\[sour ce.xls]Feuil1'!$A$1:$F$10 Cliquer sur Ajouter. Dans votre classeur, en A1 saisi r la formule : =plage puis vali der. Etirer cett e formule sur toute la plage de A1 à F10... Le code VBA correspondant Sub ImporterDonneesSansOuvrir() Dim Chemin As String, Fichier As String Chemin = "C:\Pijaku\Ne_fait_rien_de_ses_journées\CCM\" Fichier = "source.xls" ThisWorkbook.Names.Add Précautions d'emploi Surtout, vérifiez bien le chemin d'accès au répert oire, l'orthographe, la casse sont très important. Aussi à vérifier l e « \ » entre le chemin du répertoire et le nom du classeur. Exemple d'utilisation Ce code boucle sur tous les classeurs Excel d'un répertoire et en extrait le contenu de la cellule A 1 Feuil1, en l'occurence pour l'exemple, une date. Option Explicit Sub Import erDates() Dim objShell As Object, objFolder As Object Dim Chemin As String, fichier As String Set objShell = CreateObject("Shell.Appli catio Téléchargement Vous pouvez télécharger le classeur source exemple ainsi que le cl asseur « recap » utilisés en première part ie de cette astuce. Si toutefois ceux-ci n'étaient

Upload: kalimatayeba

Post on 11-Oct-2015

1 views

Category:

Documents


0 download

TRANSCRIPT

  • VBA - Excel : Lire dans un classeur fermJuin 2014

    Sous VBA, les diffrentes techniques de lecture de donnes dans un fichier Excel ferm sont assez rebutantes par leur complexit. Cependant, il existe unepetite astuce permettant de contourner ceci, sans utiliser de connexion OLE DB, mais uniquement pour la lecture.

    IntroductionLa mthode, par Excel :Le code VBA correspondantPrcautions d'emploiExemple d'utilisationTlchargement

    IntroductionNous avons besoin, dans notre classeur Recap , d'avoir les informations situes dans la plage de cellules A1 :F10 de la feuille Feuil1 d'unclasseur source , lui-mme situ dans le rpertoire C:\Pijaku\Ne_fait_rien_de_ses_journes\CCM\ . Donc pour commencer, ouvrons un classeur,inscrivons Pijaku en Feuil1 de la cellule A1 la cellule F10 et enregistrons le sous source.xls dans le rpertoire :C:\Pijaku\Ne_fait_rien_de_ses_journes\CCM\. Fermons ce classeur. Ouvrons un second classeur Excel et enregistrons le sous Recap.xls dans lebureau (par exemple).

    La mthode, par Excel :Dans votre classeur Recap.xls :

    Insrer un nom dfini :Menu : InsertionChoix : NomCliquer sur : Dfinir

    Noms dans le classeur => saisir : plage Fait rfrence => saisir : ='C:\Pijaku\Ne_fait_rien_de_ses_journes\CCM\[source.xls]Feuil1'!$A$1:$F$10 Cliquersur Ajouter.

    Dans votre classeur, en A1 saisir la formule : =plagepuis valider. Etirer cette formule sur toute la plage de A1 F10...

    Le code VBA correspondantSub ImporterDonneesSansOuvrir() Dim Chemin As String, Fichier As String Chemin = "C:\Pijaku\Ne_fait_rien_de_ses_journes\CCM\" Fichier = "source.xls" ThisWorkbook.Names.Add "plage", _

    Prcautions d'emploiSurtout, vrifiez bien le chemin d'accs au rpertoire, l'orthographe, la casse sont trs important. Aussi vrifier le \ entre le chemin du rpertoire et lenom du classeur.

    Exemple d'utilisationCe code boucle sur tous les classeurs Excel d'un rpertoire et en extrait le contenu de la cellule A1 Feuil1, en l'occurence pour l'exemple, une date.Option Explicit Sub ImporterDates() Dim objShell As Object, objFolder As Object Dim Chemin As String, fichier As String Set objShell = CreateObject("Shell.Application")

    TlchargementVous pouvez tlcharger le classeur source exemple ainsi que le classeur recap utiliss en premire partie de cette astuce. Si toutefois ceux-ci n'taient

  • plus disponibles sur cjoint, merci de me le faire savoir en m'envoyant un MP ici, cliquez sur Lui crire un message Ce document intitul VBA - Excel : Lire dans un classeur ferm issu de CommentCaMarche (www.commentcamarche.net) est mis disposition sous les termes de la licence CreativeCommons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixes par la licence, tant que cette note apparat clairement.