[Résolu] Trouver une valeur dans une colonne puis remplacer toutes les suivantes

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

djodjodjo

XLDnaute Occasionnel
Bonjour à tout le forum !

Aujourd'hui j'essaie de faire une petite macro qui me permettrait ceci :

Tout se passe dans une seulle colonne, on commence par la 1ère cellule de la colonne. On va rechercher la première valeur d'une cellule, par exemple "a" et dès qu'on l'a trouvée quelquepart dans la colonne, il faut que toutes les cellules suivantes de la colonne qui contiennent la valeur "a" soient remplacées par la valeur "aX".

On fait de même pour la valeur "b": dès qu'on l'a trouvée quelquepart, toutes les suivantes sont remplacées par "bx". Et il faudrait le faire pour TOUTES les valeurs (et je ne les connais pas à l'avance!) que peut contenir la colonne ! En fait c'est une sorte de dédoublonnage de la valeur initiale sans suppression de ligne si on veut.. et franchement je vois pas du tout comment faire.

Je vous ai joint un petit classeur qui illustre très bien ce que je veux (c'est très basique mais c'est pour illustrer).

En espérant avoir des réponses je vous remercie d'avance 😀
 

Pièces jointes

Dernière édition:
Re : Trouver une valeur dans une colonne puis remplacer toutes les suivantes

Bonjour hoerwind,

je n'avais pas vu ta réponse, et oui effectivement j'ai utilisé cette formule dans la macro.. désolé de (peut-être) avoir fait chercher pour rien.
Résolu Merci !
 
Re : [Résolu] Trouver une valeur dans une colonne puis remplacer toutes les suivantes

Pour info la macro donne ça, si ça peut servir à quelqu'un:

Code:
For i = ActiveSheet.UsedRange.Columns.Count To 2 Step -1
    If Cells(1, i) Like Sheets("Projets").Range("B6") Then
        Columns(i).Select
        Selection.Copy
        Columns("F:F").Select
        ActiveSheet.Paste
    End If
    Next
    
    If Cells(1, 6) Like Sheets("Projets").Range("B6") Then
        k = ActiveSheet.UsedRange.Rows.Count
        
        Range("G1").Select
        ActiveCell.FormulaR1C1 = _
        "=IF(COUNTIF(R1C6:RC[-1],RC[-1])>1,RC[-1]&"" "",RC[-1])"
        Range("G1").Select
        Selection.AutoFill Destination:=Range("G1:G" & k), Type:=xlFillDefault
        Columns("G:G").Select
        Selection.Copy
        Columns("F:F").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False
        Columns("G:G").Delete
        End If
 
Re : [Résolu] Trouver une valeur dans une colonne puis remplacer toutes les suivantes

Bonjour


A titre d'information, peux alléger ton code en te passant des Select
Code:
For i = ActiveSheet.UsedRange.Columns.Count To 2 Step -1
    If Cells(1, i) Like Sheets("Projets").Range("B6") Then
        Columns(i).Copy
        Columns("F:F").Paste
    End If
    Next
    
    If Cells(1, 6) Like Sheets("Projets").Range("B6") Then
    k = ActiveSheet.UsedRange.Rows.Count
    Range("G1:G" & k).FormulaR1C1 = "=IF(COUNTIF(R1C6:RC[-1],RC[-1])>1,RC[-1]&"" "",RC[-1])"
    Columns("G:G").Copy
    Columns("F:F").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Columns("G:G").Delete
    End If
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour