Oui on peut faire comme ça aussi.
Tien le code complet tu comprendras peut-être mieux pourquoi j'ai fais ça (enfin on m'a pas mal aidé pour le code)
Sub OuvrirDatatest()
' VARIABLE, chemin du fichier (rajouter le "\" à la fin)
Chemin = "M:\donnees\metiers\TEID\400-TEID1_Production_Engineering\050-ALM\Maintenance\Projet PFE\"
' VARIABLE, Nom du fichier (doit finir par .xlsx)
NomFichier = "N80_PdM_global_V9.4.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 Sub