Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1114 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Pb Import excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pb Import excel

n°1354576
elkhy
Posté le 26-04-2006 à 17:42:54  profilanswer
 

Bonjour,
 
Le code suivant lit sur un répertoire donné tous les fichiers Excel et les importe dans une base access. Il importe plus particulièrement les onglets
"TestIndicateurs" et "Transpose".  
Contrainte lié à mon application:
Ces 2 onglets doivent être masqués. Et le code ici présent marche très bien lorsque les onglets sont visibles, mais ne fonctionne pas lorsque je masque les onglets.
J'ai donc rajouté la procédure Sub "ToutAfficher" (que j'appelle juste avant la lecture):
En utilisant le débugger pas à pas je passe bien dans l'onglet mais il me sort une erreur à la compil.
 
L'erreur provient apparemment du fait que le fichier est en lecture seule donc il ne peut pas modifier  
les onglets en masqué.
J'ai donc changé la ligne suivante:  
 
 
Set Wb = xlAppl.Workbooks.Open(FileName:=strPathToFiles, ReadOnly:=True)
en  
 
Set Wb = xlAppl.Workbooks.Open(FileName:=strPathToFiles, ReadOnly:=False)
 
 
Le programme me fait donc l'import des feuilles masquées parfaitement bien hormis un gros pb à la fin de l'import:
 
il bug sur les fichiers excel et m'ouvre la boite de dialogue suivante:
 
"Fichier désormais disponible"
"monFichier.xls" est à présent disponible pour modification.
Ouvrez le fichier en lecture-écriture pour le modifier. (choix Lecture-Ecriture/Annuler)
Et après il plante sur mes fichiers excel. Donc je tue les processus à la main.
 
 
En fait Excel réagit comme s'il y avait 2 accès concurrents sur le même fichier.  
 
Comment faire pour éviter cela ? Il ne doit pas y avoir grand chose à changer mais je ne trouve pas
 
 
Merci à tous pour votre aide
 
 
Le code:
 
Sub ToutAfficher()
 
Dim ws As Worksheet
For Each ws In Worksheets
ws.Visible = True
Next
End Sub
 
 
Sub ImportAllFiles()  
Dim strPathToFiles As String  
Dim xlAppl As Excel.Application  
Dim Wb As Excel.Workbook  
Dim onglet As String  
Dim ws As Excel.Worksheet  
Dim Repertoire As String, Fichier As String  
 
'Repertoire = "C:\Documents and Settings\dossier\"  
Repertoire = "C:\Documents and Settings\dossierOngletMasque\"
 
Fichier = Dir(Repertoire & "*.xls" )  
Do While Fichier ‹› ""  
 
Set xlAppl = CreateObject("Excel.Application" )  
strPathToFiles = Repertoire & Fichier  
 
'Supprimer enreg table T_Import_Brut  
DoCmd.RunSQL "DELETE FROM TImport"  
DoCmd.RunSQL "DELETE FROM TImport2"  
 
Set Wb = xlAppl.Workbooks.Open(FileName:=strPathToFiles, ReadOnly:=True)  
 
Call ToutAfficher
 
For Each ws In Wb.Worksheets  
If ws.Visible = True Then  
onglet = ws.Name  
 
If onglet = "TestIndicateurs" Then  
 
' transfert vers table T_Import_Brut  
DoCmd.TransferSpreadsheet acImport, 8, "TImport", strPathToFiles, False, onglet & "!H2:L201"  
 
ElseIf onglet = "Transpose" Then  
 
' transfert vers table T_Import_IG  
DoCmd.TransferSpreadsheet acImport, 8, "TImport2", strPathToFiles, False, onglet & "!A1:F"  
 
End If  
End If  
Next ws  
 
Wb.Close False  
setwb = Nothing  
xlAppl.Quit  
Set xlAppl = Nothing  
 
Fichier = Dir  
Loop  
End Sub

mood
Publicité
Posté le 26-04-2006 à 17:42:54  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Pb Import excel

 

Sujets relatifs
Comment copier une feuille EXCEL sous ACCESS?afficher la date au mois précédent sous excel
[VBA] Suppression d'un graphique ExcelMise a jour feuille excel
[newb] Listes avec Excelprobleme d'execution de macros à l'ouverture d'excel
Copier/coller une feuille Excel avec ACCESfiltre excel avec un nombre de critères superieure à 2
créer un macro excel qui écrit une chaine de caractère dans DOSFormat date dans textbox malgrès différente version d'Excel
Plus de sujets relatifs à : Pb Import excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR