Ouvrir un fichier Excel sur internet avec une fonction VBA
Bonjour,
Je souhaite ouvrir un fichier Excel (Data) situé sur l'intranet de mon entreprise. Je souhaite prendre des données sur ce fichier (Data) pour les mettre sur un autre fichier Excel(Interface) qui se situe sur mon espace local et refermer le fichier (Data).
Aujourd'hui, je suis dans l'obligation de télécharger le fichier sur mon espace personnel à chaque fois qu'il a été modifier pour mettre à jour mon fichier (Interface).
Ci-dessous mon code permettant d'ouvrir mon fichier (Data) depuis mon espace perso :
Sub OuvrirDatatest()
' VARIABLE, chemin du fichier (rajouter le "\" à la fin)
Chemin = "\\public\dfs\donnees\metiers\TEID\400-TEID1_Production_Engineering\"
' VARIABLE, Nom du fichier (doit finir par .xlsx)
NomFichier = "N80_PdM_global_V9.5.xlsx"
' INDICATION VISUELLE, Chemin et/ou nom du fichier PDM (DATA) introuvable. Vérifier si tous les éléments sont présents ! "\" (Variable Chemin) et ".xlsx" (VAriable NomFichier)
If Dir(Chemin & NomFichier) = "" Then
MsgBox "Fichier introuvable !" & vbLf & vbLf & "Vérifiez la connexion au réseau.", vbCritical, "Procédure avortée"
Exit Sub
End If
' INDICATION VISUEL, lancement ou non de la macro
MsgBox "Le traitement des données peut prendre un moment merci de patienter", vbInformation, "Il est temps de prendre un café non ?"
' VARIABLE, Titres du fichier "PDM"
tSource = Array("Codification", "Equipment Level 1", "Equipment level 2", "Equipment level 3", "Equipment Level 4", "Equipment level 5", "Equipment level 6", "Equipment Definition file reference 2", "Rationale")
' VARIABLE, Titre du fichier "Interface"
tDest = Array("Codification", "Equipment Level 1", "Equipment Level 2", "Equipment Level 3", "Equipment Level 4", "Equipment Level 5", "Equipment Level 6", "Equipment Definition file reference 2", "Rationale")
' VARIABLE,wsDest = Fichier Interface
Set wsDest = ThisWorkbook.Worksheets("DATA") '
'!! DEBUT DU CODE !!
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
On Error GoTo fin
' Ouverture du fichier data en lecture seule et annulation du message de mise à jour (messages d'erreurs)
With Workbooks.Open(FILENAME:=Chemin & NomFichier, ReadOnly:=True, UpdateLinks:=0)
With .Worksheets("PdM") ' Data Base = PDM. Le "PdM" correspond au titre de la page. il doit obligatoirement s'écrire pareil (Majuscule comprise)!!
NBL = .Range("Tableau1").Rows.Count ' VARIABLE, Séléction du "Tableau1" qui correspond au tablau de la page PdM du fichier N80_PdM_global
For i = LBound(tDest) To UBound(tDest)
wsDest.Range("Tableau3[" & tDest(i) & "]").Resize(NBL, 1).Value = .Range("Tableau1[" & tSource(i) & "]").Value
Next i
End With
.Close False
End With
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
' !! FIN DU CODE !!
Exit Sub
' INDICATION VISUELLE,
fin:
MsgBox "Vérifiez que le fichier n'est pas ouvert avant d'exécuter la macro", vbCritical, "Procédure avortée"
End SubJe vous remercie d'avance pour votre temps et votre participation à la résolution de mon problème.
Bonne journée.
Bonjour, le chemin en vba ne sera pas correcte il me semble.
Le plus simple puisque votre fichier est sur un intranet c'est de créer une "Lettre de lecteur reseau" vers ce serveur interne.
Poste de travail / Connecter un lecteur réseau / vous choisissez une Lette non utilisée ( exemple Z: ) puis vous indiquer l'adresse sur le serveur.
Vous pourrez ensuite utiliser cette lettre dans vos codes vba pour les chemins ( comme vous le faites avec les adresses C:\users\..... )
Bonjour Xmenpl,
Finalement en touchant un peu a tout j'ai trouvé une solution. Elle fonctionne !!
En fait, le problème venais de cette partie du code :
' INDICATION VISUELLE, Chemin et/ou nom du fichier PDM (DATA) introuvable. Vérifier si tous les éléments sont présents ! "\" (Variable Chemin) et ".xlsx" (VAriable NomFichier)
If Dir(Chemin & NomFichier) = "" Then
MsgBox "Fichier introuvable !" & vbLf & vbLf & "Vérifiez la connexion au réseau.", vbCritical, "Procédure avortée"
Exit Sub
End IfJe l'ai simplement supprimée.
Mais merci pour votre aide :) !