(VBA) Nommer feuille automatiquement d'après nom de fichier

Iwana

XLDnaute Nouveau
Bonjour à tous,

J'ai parcouru le forum à la recherche d'une solution, sans succès.

Ma macro permet d'importer un fichier texte et d'afficher les données dans un nouvel onglet.
Quel code dois-je insérer pour qu'à chaque import de fichier la nouvelle feuille créée prenne le nom du fichier importé ?

Exemple : nom de fichier "pifpafpouf.txt"
Je souhaite que l'onglet prenne ce nom.

Merci d'avance ! :)

Iwana
 

Iwana

XLDnaute Nouveau
Re : (VBA) Nommer feuille automatiquement d'après nom de fichier

Bonjour Pierrot,

Malheureusement, les besoins relatifs à cette macro évoluent quasi quotidiennement, et effectivement ça me complique la tâche.

Voici le bout de code en question :
Code:
If Fichier <> "Faux" Then
        Set wk = Workbooks.Open(Fichier)
        With wk
            With .ActiveSheet.UsedRange
                pc = .Cells(1, 1).Address
                .Copy
            End With
            
            Set wk = ThisWorkbook
            Set ws = wk.Worksheets.Add(after:=wk.Worksheets(wk.Worksheets.Count))
            ws.Name = Mid(Fichier, InStrRev(Fichier, "\") + 1, Len(Mid(Fichier, InStrRev(Fichier, "\") + 1)) - 4)
            
            Set wk = ThisWorkbook
            wk.ActiveSheet.Range(pc).PasteSpecial xlValues
            Application.CutCopyMode = False
            .Close False
        End With
    End If

J'ai tenté d'insérer mon mot récurrent ("tableau" donc) au niveau du ws.Name, sans succès.
 

Iwana

XLDnaute Nouveau
Re : (VBA) Nommer feuille automatiquement d'après nom de fichier

Bonjour tout le monde !

Toujours dans la même macro :
J'ai deux sub, une qui permet d'importer des données d'un fichier texte, une deuxième qui met en page.
Ma première sub, afin de limiter les erreurs j'ai mis des "sécurités",
notamment au niveau du type de fichier (txt en l'occurrence) qui est imposé à l'utilisateur.
Seulement, dans mon type de fichier j'ai encore deux "sous-types" que l'on ne peut différencier que si l'on ouvre le fichier.
Est-il possible de demander "si le fichier contient le mot "plouf", alors supprime la feuille et retourne à la page d'accueil avec la boîte de dialogue pour le user choisisse un autre fichier." ?
Si oui, où cela doit-il être placé dans mon code ?

Voici mon bout de code, et en gras ma tentative :
Code:
 ' Import des données dans une nouvelle feuille
    If Fichier <> "Faux" Then
        Set wk = Workbooks.Open(Fichier)
        With wk
            With .ActiveSheet.UsedRange
                pc = .Cells(1, 1).Address
                .Copy
            End With
            
            Set wk = ThisWorkbook
            Set ws = wk.Worksheets.Add(after:=wk.Worksheets("Accueil"))
            ws.Name = "Worklist_" & Mid(Fichier, InStrRev(Fichier, "\") + 1, Len(Mid(Fichier, InStrRev(Fichier, "\") + 1)) - 4)
            
            Set wk = ThisWorkbook
            wk.ActiveSheet.Range(pc).PasteSpecial xlValues
            Application.CutCopyMode = False
            .Close False
        End With
    End If
    wk.ActiveSheet.Range("A1").Select
    Application.ScreenUpdating = True

   ' ci-dessous ce que j'ai ajouté
    Columns("A:A").Select
    For i = Range("A65536").End(xlUp).Row To 1 Step -1
            If UCase(Cells(i, 2).Value) Like UCase("*MRV*") Then ActiveSheet.Delete: GoTo choix
    Next i

fin:

End Sub

Merci d'avance !

Iwana
 

Discussions similaires

Statistiques des forums

Discussions
312 464
Messages
2 088 630
Membres
103 895
dernier inscrit
jrlauret