et comment est déterminé la ou les colonnes à masquer ?sachant que les colonnes ne sont pas toujours les mêmes.
If InStr(0,Sheets("Feuil1").Range("A1").value, "Total") > 0 Then
Columns("B:C").EntireColumn.Hidden = True
End if
If Sheets("Feuil1").Range("A1").Value Like "*Total*" Then
Dim fin_Col as integer
fin_Col = ActiveSheet.Range("IV4").end(xltoleft).column
Dim pcs_col as integer
'parcours des colonnes
for pcs_col = 1 to fin_col
'si le texte "Total" est trouvé dans la cellule
if InStr(0,Activesheet.cells(4,pcs_col).value, "Total") > 0 then
Dim col as string
'Si l'index de la colonne est inférieur ou égal à 26
if pcs_col <= 26 then
'On ne récupère qu'une seule lettre
col = right(left(Activesheet.cells(4,pcs_col).address,2),1)
else
'Sinon, on en récupère 2
col = right(left(Activesheet.cells(4,pcs_col).address,3),2)
end if
'On masque la colonne
Columns(col).EntireColumn.Hidden = True
end if
next pcs_col
Option Explicit
Sub test()
Dim c As Range
With Sheets("Base").Cells
Set c = .Find("Total", , xlValues, xlPart, , , False)
If Not c Is Nothing Then
Do
c.EntireColumn.Hidden = True
Set c = .FindNext(c)
Loop While Not c Is Nothing
End If
End With
End Sub
Merci beaucoup !! Y'a un petit bug mais je vais regarder moi-même !!
Bonne journée à vous !!