Si différence entre 2 cellules, décaler seconde cellule d'une ligne

Bonjour à toutes et tous.

Je rédige un listing karaoké tout simple : colonne A = Titre; colonne B = Artiste !

J'encode tout en vrac et à l'issue de plusieurs milliers de lignes, je ferai un tri alphabétique par artistes.

J'aimerais que lors de chaque changement d'artiste, une ligne soit insérée.

Donc, je crée une règle de mise en forme conditionnelle (par exemple) : =SI(B6<>B5;DECALER(A5:A6;1;0);"")

1°) première question : rien ne se passe

2°) comment appliquer cette condition à chaque cellule de ma colonne B ?

Je joins le fichier en cours d'encodage en annexe.

Merci d'avance pour votre aide, cordialement !

Marc

10karaoke-perso.xlsx (19.90 Ko)

Salut Marcus,

voilà ta macro : déclenchement via un double-clic en [A1].

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tData1, tData2()
Cancel = True
'
If Not Intersect(Target, Range("A1")) Is Nothing Then
    For x = 1 To 2
        iRow = Range("A" & Rows.Count).End(xlUp).Row
        If x = 1 Then
            iRow1 = Range("A5").End(xlDown).Row
            If iRow1 < iRow Then Range("A5:A" & iRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        Else
            Range("A5:B" & iRow).Sort key1:=Range("B5"), order1:=xlAscending, Orientation:=xlTopToBottom
            tData1 = Range("A4:B" & iRow).Value
            For y = 2 To UBound(tData1, 1)
                iFlag = IIf(tData1(y, 2) = tData1(y - 1, 2) Or y = 2, 1, 2)
                For Z = 1 To iFlag
                    iIdx = iIdx + 1
                    ReDim Preserve tData2(2, iIdx)
                    tData2(0, iIdx - 1) = IIf(iFlag = 2, IIf(Z = 1, "", tData1(y, 1)), tData1(y, 1))
                    tData2(1, iIdx - 1) = IIf(iFlag = 2, IIf(Z = 1, "", tData1(y, 2)), tData1(y, 2))
                Next
            Next
        End If
    Next
    Range("A5:B" & iRow).ClearContents
    Range("A5").Resize(UBound(tData2, 2), 2) = WorksheetFunction.Transpose(tData2)
End If
'
End Sub

A+

8karaoke-perso.xlsm (29.45 Ko)

Bonjour "Curulis57" !

Tout d'abord je te remercie infiniment d'avoir pris la peine de me lire, d'analyser et de plancher durant la nuit sur mon "GROS" problème, MDR.

En fait, j'étais loin d'imaginer que cela soit aussi complexe, car je n'y connais rien en macro !

Cependant, je dispose des supports me permettant d'écrire cette macro et de la tester, mais je n'ai aucun doute puisque tu disposais du fichier !

Donc, encore une fois, 1000 mercis et je te souhaite une excellente journée, ainsi que pour les jours festifs à venir !!!

Très cordialement !

Marc.

Rechercher des sujets similaires à "difference entre decaler seconde ligne"