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
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 SubA+
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.