XL 2013 Optimisation VBA copie csv vers excel

pkerga

XLDnaute Nouveau
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
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 193
Messages
2 086 059
Membres
103 110
dernier inscrit
Privé