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

9fichierbd.xlsx (10.61 Ko)

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 Sub

Ton fichier modifié qui a pris l'extension xlsm à cause de la macro :

8sylvain-ep-01.xlsm (21.62 Ko)

Bonjour,

Une proposition Power Query.

Cdlt.

6fichierbd.xlsx (20.48 Ko)
capture d ecran 2021 02 19 052100
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
    CreateTable

Merci énormément à vous deux pour vos réponses , c'est vraiment impressionnant ce que nous pouvons réaliser avec Excel !

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

6fichierdemo.xlsm (23.94 Ko)

Re,

Une mise à jour.

Cdlt.

12fichierbd.xlsx (21.17 Ko)
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
    RemovedColumns

Merci é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

Rechercher des sujets similaires à "suppression lignes automatique"