Optimisation VBA copie csv vers Excel

bonjour

je débute en VBA et j'ai besoin d'aide pour optimiser mon code et le parfaire.

Voici le projet :

1 fichier Excel "Tension" avec 2 feuilles ("ES" et "resultats").

1 Csv à aller chercher et à insérer dans "ES"

(70 000 lignes et 300 calculs par ligne...)

1 - stopper les calculs Excel pour aller plus vite

2 - aller chercher le .csv dans un dossier via une boite de dialogue. Son nom est NOMFICH

3 - sectionner la feuille "ES" et efface les colonnes A à Z

4 - ouvrir le fichier NOMFICH.csv

5 - copier les données de A1 à Y "dernière ligne" (varie d'un fichier à l'autre)

6 - ouvrir la feuille "ES" de "Tension"

7 - coller en A4

8 - revenir sur la page "résultats"

9 - fermer le NOMFICH.csv

10 - redemarrer les calculs d'Excel

mes problemes persistants :

  • à l'ouverture du .csv, il me dit qu'Excel à détecté un fichier SYLK, mais qu'il ne peut pas le charger, il essaye de l'ouvrir dans un format différent. je dois cliquer OK et ça marche. Est-ce possible de passer ce "ok".
  • je n'arrive pas à fermer le .csv
  • est-ce optimisable ??? Peux mieux faire ???

merci

Sub essai_import()

Dim w As Worksheet
For Each w In ThisWorkbook.Worksheets
w.EnableCalculation = False
Next

ChDir "C:\Users\GCS_URGENCES\Documents\TENSION\donné es"
NOMFICH = Application.GetOpenFilename("Fichier csv (*.csv),*.csv")
If NOMFICH = False Then Exit Sub

Dim A$ ' Efface le traitement precedent
Sheets("ES").Select
Range("A:Z").Select: Selection.ClearContents 'les effacer

Workbooks.Open Filename:=NOMFICH, Local:=True
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
A = "A1:Y" & Trim(DernLigne): Range(A).Select: Selection.Copy 'copie les donnees

Windows("Tension.xlsm").Activate
Sheets("ES").Select

Cells(4, 1).Select: ActiveSheet.Paste 'les colle
Sheets("Résultats").Select

For Each w In ThisWorkbook.Worksheets
w.EnableCalculation = True
Next

MsgBox "opération effectuée"
End Sub
Rechercher des sujets similaires à "optimisation vba copie csv"