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

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 :D
 

Pièces jointes

  • remplacer.xlsx
    9.3 KB · Affichages: 46
  • remplacer.xlsx
    9.3 KB · Affichages: 47
  • remplacer.xlsx
    9.3 KB · Affichages: 47
Dernière édition:

djodjodjo

XLDnaute Occasionnel
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 !
 

djodjodjo

XLDnaute Occasionnel
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
 

TempusFugit

XLDnaute Impliqué
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
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin