Macro ou formule sur onglets "futurs"
Résoluf894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Mon but est d'extraire de 10 onglets des données situées de F19 à F51 sur chaque onglet et de les coller sur le premier onglet, en colonnes.
Ca parait "simple" mais ! :)
Les onglets en question sont générés par une macro (merci Pivert!) apd fichiers txt.
Donc il faudrait que sur la première feuille, j'enregistre une formule ou une macro sur des onglets que je n'ai pas encore! C'est ça le challenge
Ces onglets ont un numéro de type 150119-0094 (avec éventuellement qques lettres après, comme MNNM, a etc); mais je ne veux pas inclure les onglets de type 'Feuil14.
je veux coller ces infos dans J5:S37
Est-ce que qqu peut m'aider ???
Un gros gros merci d'avance
- Macro ou formule sur onglets "futurs"
- Formule si ou - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Formule somme excel ligne - Guide
8 réponses
Objectif: extraire F19:F51 de dix onglets générés par une macro et les coller en colonnes sur le premier onglet, dans la plage J5:S37, en excluant les feuilles nommées Feuil14.
Les réponses suggèrent d’intégrer cette opération dans la macro existante ou d’employer une routine Recup_import_total pour copier les données dans la feuille de synthèse.
Une approche consiste à faire balayer dix onglets par une macro (Cs_LePivert) et à coller les données en ordre de colonnes (par exemple G, puis H, puis J, puis K, sans en-tête).
Des précisions mentionnent des défis liés à des versions Excel et à l’import de fichiers TXT via une combobox, mais la solution retenue vise à adapter Recup_import_total pour acheminer F19:F51 dans J5:S37, une colonne par onglet.
Mon but est d'extraire de 10 onglets Que fait la macro de Cs_LePivert, elle balaie dix onglets ou ......
Merci de la réponse!
Il y a une combobox qui me propose d'importer tous les fichiers txt d'un dossier...
et bizarrement, quand je veux afficher la macro, je ne vois que
Option Explicit
Sub Sourire1_Clic()
UserForm1.Show
End Sub
Option Explicit
Dim onglet As Boolean
Dim Fichier
Dim Tableau() As String
Dim pos As Integer
Dim nomfichier As String
Dim myPath As String, myFile As String
Sub Recup_import()
'on recherche le fichier texte
Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If Fichier <> False Then
'on récupere le nom du fichier texte sans son extension
nomfichier = Mid(Fichier, InStrRev(Fichier, "\") + 1)
pos = InStr(1, nomfichier, ".", 1)
nomfichier = Left(nomfichier, pos - 1)
'on vérifie si il n'y a pas d'onglet portant le même nom
onglet = True
Doublons
If onglet = False Then Exit Sub
'on ajoute un onglet
Sheets.Add.Move After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = nomfichier
'on met le texte sur la feuille
Worksheets(nomfichier).QueryTables.Add("TEXT;" & Fichier, [B1]).Refresh 'à adapter le cellule de reception
Range("A1").Value = nomfichier
Else
MsgBox "Pour importer des données dans Excel, vous devez choisir un fichier texte!", vbExclamation, "Importer fichier texte"
End If
Sheets("Sommaire").Select
Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = nomfichier
End Sub
Sub Recup_import_total()
If myFile = "" Then Exit Sub
Fichier = ThisWorkbook.Path & "\" & myFile
'on récupere le nom du fichier texte sans son extension
nomfichier = Mid(Fichier, InStrRev(Fichier, "\") + 1)
pos = InStr(1, nomfichier, ".", 1)
nomfichier = Left(nomfichier, pos - 1)
'on vérifie si il n'y a pas d'onglet portant le même nom
onglet = True
Doublons
If onglet = False Then Exit Sub
'on ajoute un onglet
Sheets.Add.Move After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = nomfichier
'on met le texte sur la feuille
Worksheets(nomfichier).QueryTables.Add("TEXT;" & Fichier, [B1]).Refresh 'à adapter le cellule de reception
Range("A1").Value = nomfichier
Sheets("Sommaire").Select
Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = nomfichier
End Sub
Private Sub CommandButton2_Click()
Recup_import
End Sub
Private Sub CommandButton1_Click()
Dim Index As Integer
Range("A1").Value = "Sommaire"
Index = ComboBox1.ListIndex
Sheets(Index + 1).Select
End Sub
Private Sub CommandButton3_Click()
ParcourtFichier
End Sub
'http://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-F
Private Sub UserForm_Initialize()
Dim j As Integer
'Récupère les données de la colonne A...
For j = 1 To Range("A65536").End(xlUp).Row
ComboBox1 = Range("A" & j)
'...et filtre les doublons
If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Range("A" & j)
Next j
ComboBox1.ListIndex = 0
End Sub
'empecher de renommer onglet du même nom
Private Sub Doublons()
Dim ctr
For ctr = 1 To Sheets.Count
If Sheets(ctr).Name = nomfichier Then
MsgBox "Un onglet porte déjà ce nom!", vbExclamation, "Ajouter onglet"
onglet = False
End If
Next
End Sub
Sub ParcourtFichier()
myPath = ThisWorkbook.Path
' Fichier va contenir le nom du premier fichier rencontré dans F:\atelier
Fichier = Dir(myPath & "\*.txt*")
' Tant que Fichier est différent de vide (Tant qu'il y a un fichier à lire, simplement)
While Fichier <> ""
' On l'affiche dans la fenêtre d'exécution (Affichage/Fenêtre exécution)
myFile = Fichier
Recup_import_total
' Le fait de dire Fichier = Dir, sans préciser comme paramètre le nom du dossier,
' permet de lire le fichier suivant :
Fichier = Dir
' Et on revient dans la boucle en affichant le fichier qu'on vient de lire...
' S'il n'y avait qu'un seul fichier dans le dossier, il sortirait tout de suite maintenant.
Wend
End Sub
Le plus simple c'est de modifie le code Recup_import_total pour copier les infos que vous voulez dans l'onlget Sommaire (si j'ai bien compris)
voici mon fichier
xls http://www.cjoint.com/c/FAwpOYWlaaP
txt http://www.cjoint.com/c/FAwpRamWt7P
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionnuméro de type 150119-0094 (avec éventuellement qques lettres après, comme MNNM, a etc); Ah bon, parce que le fichier txt pas ca
Mon but est d'extraire de 10 onglets des données situées de F19 à F51 sur chaque onglet Ben y rien dans la colonne F voir image:

Infos a copier dans les colonnes saumon je suppose(docteur Watson) quand ce sera plus clair
plus simple après l'importation des fichiers txt au moyen de la macro décrite au-dessus: voir par exemple:
http://www.cjoint.com/c/FBfoWbUcmLP
le but est le suivant:
-aller sur l'onglet 140127-0001
-de F2 à F51: les données qui m'intéressent; elles sont séparées par un "/" qui devra être enlevé par la suite
- je veux qu'elles se collent sur la page "sommaire", en G5-G37 et H5-H37
en sommaire/G5, je retrouverai le premier chiffre de 140127-0001/F2
en sommaire/H5, je retrouverai le second chiffre de 140127-0001/F2
-et ainsi de suite jusqu'en G et H37
-et ainsi de suite pour les onglets suivants, dont les colonnes F doivent se coller de la même façon en sommaire/J-K,M-N, etc
-les colonnes "saumon" doivent contenir la somme des 2 colonnes avant elles (lignes 5 à 37)
Merci!
l'action que j'ai expliquée à 15.59 est à faire sur tous les onglets issus de l'importation des txt...quelque soit le nombre de fichiers txt importés
j'espère que ça vous aide, mais pas convaincue
Vous pouvez mettre un fichier TXT a dispo, car j'ai un changement de format a l'importation qui n'est pas normal avec les fichiers que j'ai crees en partant des imports
fichier modifie au niveau de l'import avec deux delimiteurs: Tab et "/"
https://www.cjoint.com/c/FBjkYSYwmGf
Fichier modifie: https://www.cjoint.com/c/FBjmRTR2Puf
Testez le dans tous les sens