Importer des données d'un csv dans une feuille
Bonjour à tous.
j'ai ce bout de code qui me permet d'importer des données depuis un fichier csv dans un ficher excel. Il fonctionne bien, sauf que mon problème est le suivant. à chaque fois que j'exécute la macro, les nouvelles données viennent se mettre à la suite du premier import effectué.
Je voudrais plutôt qu'à chaque fois que j'exécute la macro que le fichier import ou va atterir les données soit vidé si il y avait des données d'un précédent import.
quelqu'un peut il m'aider svp?
Merci
Sub Import()
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CA As String 'déclare la variable CA (Chemin d'Accès)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim DEST As Range 'déclare la variable DEST (Cellule de DESTInation)
Set CD = ThisWorkbook 'définit le classeur destination CD
Set OD = CD.Worksheets("Import") 'définit l'onglet destination OD
CA = "C:\Users\" 'définit le chemin d'accès CA
With Application.FileDialog(msoFileDialogOpen) 'prend en compte la boîte de dialogue d'ouverture de fichiers
.AllowMultiSelect = True 'n'autorise qu'un seul fichier
.Filters.Add "Fichier CSV", "*.csv" 'définit le filtre sur le type de fichiers
.InitialFileName = CA 'définit le dossier par défaut à l'ouverture de la boîte de dialogue
.Show 'affiche la boîte de dialogue
If .SelectedItems.Count = 1 Then .Execute 'si un élément est sélectionné, valide la boîte de dialogue
End With 'fin de la prise en compte de la bolîte de dialogue d'ouverture de fichiers
Set CS = ActiveWorkbook 'définit le classeur source CS
Set OS = CS.Worksheets(1) 'définit l'onglet source OS
'définit la cellule de destination DEST (A1 si A1 est vide, sinon la première cellule vide de la colonne A de l'onlet destination OD)
Set DEST = IIf(OD.Range("A1").Value = "", OD.Range("A1"), OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0))
OS.UsedRange.Copy DEST 'copye l'ensemble des cellules éditées de l'onglet source dans DEST
CS.Close False 'ferme le fichier sourse sans enregistrer
End Sub
Bonjour
Ajoute
OD.Range("A1").CurrentRegion.ClearContentsaprès Set OD
Merci à toi.
ça marche super bien