Suppression de lignes automatique
Bonsoir,
Je suis en train de réaliser des tests sur mon site internet, et j'obtiens un nombre incalculable de lignes sur une seule et même colonne.
Elles commencent toutes de la même façon : le nom du test, les étapes du test, la valeur cherché, et un message de fin de test.
Je souhaite pour me simplifier les choses d'avoir uniquement le nom du test qui commence par "Running", la suppression des étapes (qui commence toute par un chiffre suivi d'un point), la récupération de la valeur cherché qui se trouve après le texte "echo: Texte extrait = ", puis la suppression de la dernière ligne.
Est-ce possible ? J'ai voulu le faire manuellement pour la partie de suppression des étapes via la coloration des cellules par la mise en forme conditionnelle et ensuite la suppression mais je n'y arrive pas.
Est-ce qu'il y a une possibilité ?
Vous trouverez en PJ le fichier source, et le fichier que j'aimerais avoir à la fin
Merci
Bonsoir Sylvain et bienvenu, bonsoir le forum,
Par formules je ne sais pas faire. Si une proposition VBA t'intéresse, le code ci-dessous devrait faire l'affaire :
Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim R As Range 'déclare la variable R (Recherche)
Set OS = Worksheets("Fichier Source") 'définit l'onglet OS (à adapter à ton cas si besoin)
Set OD = Worksheets("Fichier retravaillé") 'définit l'onglet OD (à adapter à ton cas si besoin)
OD.Range("A1").CurrentRegion.ClearContents 'efface d'éventuelles anciennes données
OD.Range("A1").Value = Split(OS.Range("A1").Value, "'")(1) 'renvoie dans A1 de l'onglet OD le texte entre les deux caractères "'"
Set R = OS.Columns(1).Find("echo", , xlValues, xlPart) 'définit la recherche R (recherche "echo" dans la colonne 12 de l'onglet source)
If Not R Is Nothing Then 'condition : s'il existe au moins une occurrence trouvée
OD.Range("A2").Value = Split(OS.Cells(R.Row, 1), " = ")(1) 'renvoie dans A2 de l'onglet OD le texte après les caractères " = "
End If 'fin de la condition
OD.Activate 'active l'onglet OD
End SubTon fichier modifié qui a pris l'extension xlsm à cause de la macro :
Bonjour,
Une proposition Power Query.
Cdlt.
let
Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
FilteredRows = Table.SelectRows(Source, each Text.StartsWith([Column1], "Running") or Text.StartsWith([Column1], "echo:")),
Title = Text.BetweenDelimiters(FilteredRows{0}[Column1],"'", "'", {0, RelativePosition.FromEnd}, {0, RelativePosition.FromEnd}),
Value = Text.AfterDelimiter(FilteredRows{1}[Column1],"= "),
CreateTable=Table.FromRecords(
{
[Résultat=Title],
[Résultat=Value]
}
)
in
CreateTableMerci énormément à vous deux pour vos réponses
J'ai une deuxième petite question (je m'en excuse), dans mon onglet source j'aurais un nombre important de lignes (dans l'exemple c'était uniquement 39 lignes, mais parfois je peux avoir jusqu'à plus de 2000 lignes). La structure est toujours la même, mais cela se suit, à la fin de la requête test 1, une deuxième requête test 2 est réalisée et ainsi de suite
Est-ce possible d'obtenir la même chose que sur un tableau à une requête, mais ici avoir l'ensemble des requêtes ?
Mille mercis pour votre aide
Re,
Une mise à jour.
Cdlt.
let
Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
FilteredRows = Table.SelectRows(Source, each Text.StartsWith([Column1], "Running") or Text.StartsWith([Column1], "echo:")),
AddedCustom = Table.AddColumn
(
FilteredRows,
"Résultat",
each if Text.StartsWith([Column1],"Running") then
Text.BetweenDelimiters([Column1],"'", "'", {0, RelativePosition.FromEnd}, {0, RelativePosition.FromEnd})
else
Text.AfterDelimiter([Column1],"= ")
),
RemovedColumns = Table.RemoveColumns(AddedCustom,{"Column1"})
in
RemovedColumnsMerci énormément de votre aide ! Je vais bien regarder en détail votre code pour essayer de le reproduire !
Je pense utiliser aussi mon compte formation pour obtenir une formation Excel pour réaliser ce type de code
Mille mercis à vous