Exécuter un code sur tous les onglets(Appliquer même code plusieurs feuille

Bonjour a tous,
J'ai un code (Extraction des données à partir d'un fichier text ) qui marche bien pour un de mes onglets nommé "sheet1(Groupe1)", je souhaite appliquer Mon code pour mes autres onglets en même temps

VBA : Exécuter un code sur tous les onglets (Appliquer un même code sur plusieurs feuilles)

21data.txt (2.38 Ko)

Bonjour,

Sub Application_Sur_Tous_les_Onglets()
    Application.ScreenUpdating = False
    For i = 1 To Sheets.Count
        Sheets(i).Select
        'Mettre ici le nom de votre macro
    Next i
End Sub

La ligne "Sheets(i).Select" pourrait être supprimée, mais comme je ne connais pas le code que vous utilisez, je la laisse.

Cdlt

bonjour,

C'est un peu scabreux : Comme il faudra à chaque fois ouvrir un fichier différent, la macro select successivement toutes les feuilles à mettre à jour.

A partir de cette sélection vous devrez bien faire attention à sélectionner le fichier .txt correspondant...

Voyez d'après le fichier corrigé.

A+

Merci.

Mais Moi, je ne veux pas ouvrir le fichier (Data.txt) à chaque onglet

car les données que je veux extraire est existantes dans un seul fichier .

Je veux juste le distribuer à 3 feuille (group1,..2...3) sans avoir à regrouper dans un seul feuille ou de créer un nouveau (xlsm ) pour chacun sheet.

bonjour,

Il est de bon ton ton ici de préciser la question et les règles du jeu...

La macro corrigée :

Sub ImportAllData()
    Dim myFile As String, text As String, i%
    Dim rw As Long, cl As Long
       myFile = Application.GetOpenFilename()
For i = 1 To 3
   With Worksheets(i)
       rw = 2 ' first row for data
       cl = 0 ' first column for data
       Open myFile For Input As #1
           While Not EOF(1)
               Line Input #1, text
               If Left(text, 3) = i & "00" Then
                   .Cells(rw, cl + 1) = Mid(text, 4, 1)
                   .Cells(rw, cl + 2) = Format(Mid(text, 15, 4), "0000.00")
                   .Cells(rw, cl + 3) = Mid(text, 15, 3)
                   .Cells(rw, cl + 4) = Mid(text, 20, 2)
                   .Cells(rw, cl + 5) = Mid(text, 40, 12)
                   rw = rw + 1
                   cl = cl + 0
                   End If
           Wend
       Close #1
   End With
Next
End Sub

A+

Bonjour,

Une proposition qui allie Power Query et VBA.

Cdlt.

18contador-v1.xlsm (36.35 Ko)
Option Explicit
Option Private Module

Public Sub ImportTXT()
Dim fileExplorer As FileDialog, ws As Worksheet, lo As ListObject
    On Error GoTo errHandler
    Set fileExplorer = Application.FileDialog(msoFileDialogFilePicker)
    fileExplorer.AllowMultiSelect = False
    With fileExplorer
        If .Show = -1 Then
            [Sélection_fichier] = .SelectedItems.Item(1)
            ThisWorkbook.RefreshAll
        Else
            MsgBox "Vous avez annulé l'importation du fichier txt !...", 64, "Information"
            [Sélection_fichier] = vbNullString
            For Each ws In ThisWorkbook.Worksheets
                Select Case ws.Name
                    Case "Paramètres":
                    Case Else: ws.ListObjects(1).DataBodyRange.Delete
                End Select
            Next ws
        End If
    End With

errHandler:
    Exit Sub
End Sub

Merci de votre collaboration @Jean-Eric

J'ai essayé, mais Je n'ai rien un résultat.
Je n'ai jamais utilisé Power Query.
Par exemple Comment appliquer code ci-dessus sur Sheet 1 (Groupe_1)

rw = 2 ' first row for data
cl  = 0 ' first column for data

    Open myFile For Input As #1
        While Not EOF(1)
            Line Input #1, text
            If Left(text, 3) = "100" Then
                Cells(rw, cl + 1) = Mid(text, 4, 1)
                Cells(rw, cl + 2) = Format(Mid(text, 15, 4), "0000.00")
                Cells(rw, cl + 3) = Mid(text, 15, 3)
                Cells(rw, cl + 4) = Mid(text, 20, 2)
                Cells(rw, cl + 5) = Mid(text, 40, 12)
                rw = rw + 1
                cl = cl + 0
                End If
        Wend
    Close #1

Bonjour,

Quand tu cliques sur le bouton et que tu sélectionnes ton fichier txt, tu dois avoir ce résultat pour Groupe_1.

Cdlt.

14contador-v1.xlsm (39.54 Ko)
capture d ecran 2021 06 13 185144

@Jean-Eric Ah, oui j'ai oublié d'activation Power Query.

Solution ça marche, Mais la seule faille dans Cette Solution si le PC Contient ancienne version EXCEL < 2010 ou ne disposent pas add-in Pwr Query ..

Mais C'est Bon, et Merci à vous pour cette solution

Bonjour tout le monde. Une chose m'échappe :
- d'un côté la macro corrigée par Galopin fonctionne parfaitement,
- d'autre part elle fonctionne avec les vieilles versions d'Excel, donc sans PQ.

Questions : que vous faut-il de plus ?
A titre de rappel :

Rechercher des sujets similaires à "executer code tous onglets appliquer meme feuille"