Fusion de colonnes avec condition IF

Résolu
Lils_Bis Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   -  
Lils_Bis Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à toutes et à tous !

Voilà j'ai un petit problème et n'arrivant pas à le résoudre par mes propres moyens, je me tourne vers vous !
Alors j'ai dans mon fichier EXCEL des colonnes que je souhaiterai fusionner selon une condition. A savoir que je souhaiterai que la fusion entre deux colonnes SI
- Dans ma cellule B1, j'ai la valeur "Niveau1" (en titre de colonne donc). Dans ce cas je souhaiterais que la colonne B fusionne avec la colonne C pour qu'elle ne forme plus qu'une seule et unique colonne. Aussi, en complément, si possible, il faudrait que la colonne C soit supprimé (car son contenu se retrouve dans la colonne B)

Merci par avance de l'aide que vous pourrez m'apporter !



A voir également:

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
Si j'ai bien compris
Sub FusionColonnes()
    Application.ScreenUpdating = False
    DerLig = Columns("B:C").Find("*", , , , xlByColumns, xlPrevious).Row
    If [B1] = "Niveau1" Then
        For i = 2 To DerLig
            Cells(i, 2) = Cells(i, 2) & " " & Cells(i, 3)
        Next i
        Range("C2:C" & DerLig).ClearContents
    End If
End Sub

Cdlt
0
Lils_Bis Messages postés 57 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Je te remercie de ta solution mais entre temps, j'en avais trouvé une moi-même, je la poste ici pour ceux que ça intéresse.

Derla = Range("A" & Rows.Count).End(xlUp).Row
Derlb = Range("B" & Rows.Count).End(xlUp).Row
If Derla > Derlb Then
derl = Derla
Else: derl = Derlb
End If

For i = 2 To derl
If Range("C1") = "Niveau1" Then
FusionFor = Range("C" & i) & Range("H" & i) & Range("M" & i) _
& Range("R" & i) & Range("S" & i) & Range("T" & i)
Range("C" & i) = FusionFor
End If

Next i
If Range("C1") = "Niveau1" Then
Range("H:H,M:M,R:R,S:S,T:T").Select
'Range("T1").Activate
Selection.Delete Shift:=xlToLeft
Range("C1") = "Niveau"
End If
0