Pas de probleme,
Sans fichier je suis parti sur le dernier fourni en supprimant le CF en ligne 43
Pour info :
Si je défini commence par C*, il y aura également "Compte" qui sera pris en compte donc je cherche CF / CD / CP
Est il possible du coup de remplir les cellule jusqu'à la prochaine référence (pour information elle comment toutes par C* soit CF...,CD...,CP...)
Sub AjoutCentralisateur()
Columns("B:B").Insert
For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row
'Colonne A
If Cells(i, 1).Value Like "*Centralisateur*" Then Code = Cells(i, 1).Value: i = i + 1
If Trim(Cells(i, 1).Value) = "" Then Cells(i, 1).Value = Code
'Colonne B
If Cells(i, 3).Value Like "*CF*" Or Cells(i, 3).Value Like "*CD*" Or Cells(i, 3).Value Like "*CP*" Then Code2 = Trim(Cells(i, 3).Value)
If Trim(Cells(i, 3).Value) = "" Then Cells(i, 2).Value = ""
If Trim(Cells(i, 2).Value) = "" And IsDate(Trim(Cells(i, 3).Value)) Then Cells(i, 2).Value = Code2
If Trim(Cells(i, 2).Value) = Trim(Cells(i, 3).Value) Then Cells(i, 2).Value = ""
Next i
Columns("B:B").EntireColumn.AutoFit
End Sub
Je ne reinitialise plus le "Code2" quand il y a une cellule vide,
Je veux seulement que le "Code2" apparaisse quand la cellule a coté est une date.
___________________________________________________________________________________________________________________
EDIT : (Le code au dessus ne correspond pas a ton image)
Pour copier les CF sur toutes les colonnes :
Sub AjoutCentralisateur()
Columns("B:B").Insert
For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row
'Colonne A
If Cells(i, 1).Value Like "*Centralisateur*" Then Code = Cells(i, 1).Value: i = i + 1
If Trim(Cells(i, 1).Value) = "" Then Cells(i, 1).Value = Code
'Colonne B
If Cells(i, 3).Value Like "*CF*" Or Cells(i, 3).Value Like "*CD*" Or Cells(i, 3).Value Like "*CP*" Then Code2 = Trim(Cells(i, 3).Value)
Cells(i, 2).Value = Code2
Next i
Columns("B:B").EntireColumn.AutoFit
End Sub
A+