XL 2010 Gestion d'un fichier csv

komarlehomard

XLDnaute Junior
Bonjour à tous, je viens vers vous car je suis dans le dur.
J'ai un fichier souche, et j'ouvre un fichier cvs avec les données à traiter.
Je voudrais qu'automatiquement ma macro ouvre ou copie la colonne A:A du fichier CVS et aille la coller après sur le fichier souche.
le fichier cvs n'a pas toujours le même nom et pas toujours le même adresse.
et je n'arrive pas à faire repartir automatiquement le reste de ma macro après le message. ou refaire partir la macro après le collage de la colonne en A1 sur le ficher souche.
je joint le fichier base en format xls car je n'arrive pas en cvs.
Auriez vous une solution ?
Merci beaucoup du temps que vous allez m'accorder.
 

Pièces jointes

  • suivi formation.xlsm
    134 KB · Affichages: 4
  • Historique des formations.xls
    116.5 KB · Affichages: 1
Solution
Bonjour,
pour respecter l'intégralité de votre demande :
VB:
Sub miseajour()
'
' miseajour Macro

 'gestion -ses-historique des formations
        
    Worksheets("- Ses - Historique des formatio").Select
    Cells.Clear
 
 'est il possible d'activer un fichier.cvs dont on ne connais ni le nom , ni l'adresse
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Title = "Recherche du fichier Csv"
        .InitialFileName = ThisWorkbook.Path & "\*.csv"
        .Filters.Clear: .Filters.Add "Bla bla Csv", "*.csv"
        If .Show Then
            Dim Wb As Workbook, F As Variant
            On Error Resume Next
            F = Split(.SelectedItems(1), Application.PathSeparator)
            Set Wb...

fanch55

XLDnaute Barbatruc
Bonjour,
pour respecter l'intégralité de votre demande :
VB:
Sub miseajour()
'
' miseajour Macro

 'gestion -ses-historique des formations
        
    Worksheets("- Ses - Historique des formatio").Select
    Cells.Clear
 
 'est il possible d'activer un fichier.cvs dont on ne connais ni le nom , ni l'adresse
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Title = "Recherche du fichier Csv"
        .InitialFileName = ThisWorkbook.Path & "\*.csv"
        .Filters.Clear: .Filters.Add "Bla bla Csv", "*.csv"
        If .Show Then
            Dim Wb As Workbook, F As Variant
            On Error Resume Next
            F = Split(.SelectedItems(1), Application.PathSeparator)
            Set Wb = Application.Workbooks(F(UBound(F)))
            If Not Wb Is Nothing Then  ' option 1 si il est ouvert
                Wb.Activate
            Else                        ' option 2 pas ouvert
                Workbooks.Open Filename:=.SelectedItems(1), ReadOnly:=True, local:=True
            End If
            Columns("A").Copy Destination:=ThisWorkbook.ActiveSheet.Columns("A")
            ActiveWorkbook.Close savechanges:=False
        End If
    End With
 
    ThisWorkbook.Activate
    [E1].FormulaR1C1 = "=""Merci beaucoupe de votre aide"""
    
End Sub

Cependant, il n'est pas nécessaire de tester si le csv est déjà ouvert à l'Open :
VB:
Sub miseajour2()
'
' miseajour Macro

 'gestion -ses-historique des formations
        
    Worksheets("- Ses - Historique des formatio").Select
    Cells.Clear
 
 'est il possible d'activer un fichier.cvs dont on ne connais ni le nom , ni l'adresse
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Title = "Recherche du fichier Csv"
        .InitialFileName = ThisWorkbook.Path & "\*.csv"
        .Filters.Clear: .Filters.Add "Bla bla Csv", "*.csv"
        If .Show Then
            Workbooks.Open Filename:=.SelectedItems(1), ReadOnly:=True, local:=True
            Columns("A").Copy Destination:=ThisWorkbook.ActiveSheet.Columns("A")
            ActiveWorkbook.Close savechanges:=False
        End If
    End With
 
    ThisWorkbook.Activate
    [E1].FormulaR1C1 = "=""Merci beaucoupe de votre aide"""
    
End Sub
 

Discussions similaires

Réponses
10
Affichages
312

Statistiques des forums

Discussions
312 206
Messages
2 086 226
Membres
103 159
dernier inscrit
FBallea