J'aimerais rajouter à la macro ci-dessous:
- une deuxième couleur en plus de la couleur violette
- et également cloisonner la recherche des cellules aux colonnes A à AW au lieu de scanner l'ensemble de la feuille.
Sub Tuyautage()
Dim Cellule As Range
Dim NouveauClasseur As Workbook
'Pour chaque cellule utilisée dans la feuille idée
For Each Cellule In Worksheets("idée").UsedRange
'Si l'intérieur de la cellule utilisée est de couleur violette
If Cellule.Interior.Color = 13082801 Then
'Remplacer la valeur de cette cellule par sa valeur actuelle
Cellule.Value = Cellule.Value
'Retourner à un format de cellule sans remplissage
Cellule.Interior.Pattern = xlNone
attention, la feuille n'est peut être pas la bonne... elle doit être active pour que cela fonctionne... mais c'était un exemple, rarement utilies les "select" en vba...
Ca bloque maintenant sur If Cellule.Interior.Color.
Erreur d'execution '91'
Variable objet ou variable de bloc with non definie
Sub Tuyautage()
Dim Cellule As Range
Dim c As Range
Dim NouveauClasseur As Workbook
'Pour chaque cellule des colonnes A à AW utilisée dans la feuille idée
For Each c In ThisWorkbook.Worksheets("idée").Range("A1:AW1").EntireColumn.Cells
c.Select
'Si l'intérieur de la cellule utilisée est de couleur violette
If Cellule.Interior.Color = 13082801 Then
'Remplacer la valeur de cette cellule par sa valeur actuelle
Cellule.Value = Cellule.Value
'Retourner à un format de cellule sans remplissage
Cellule.Interior.Pattern = xlNone
enlève "Cellule" partout dans ton code, c'est "c" qui est utilisé comme variable... tu peux enlever aussi le c.select qui n'était là que pour l'exemple....
Je voudrais maintenant rajouter usedRange afin de scanner que les celulles contenant une donnée. Pour éviter de scanner toute les cellules vide pouvant être contenu dans les colonnes A à AW
J'ai essayé de la rajouter avant range ("A1;AW1"), mais malheureusement ca ne marche pas
Sub Tuyautage()
Dim Cellule As Range
Dim NouveauClasseur As Workbook
'Pour chaque cellule des colonnes A à AW utilisée dans la feuille idée
For Each Cellule In ThisWorkbook.Worksheets("idée").Range("A1:AW1").EntireColumn.Cells
'Si l'intérieur de la cellule utilisée est de couleur violette
If Cellule.Interior.Color = 13082801 Then
'Remplacer la valeur de cette cellule par sa valeur actuelle
Cellule.Value = Cellule.Value
'Retourner à un format de cellule sans remplissage
Cellule.Interior.Pattern = xlNone
Y'a encore un petit problème. La macro s'arrête sur la première colonne ou il des cellules contenant la couleur violette.
Mais la macro ne passe pas ensuite au colonne suivante.
bah... sans voir le code utilisé ni les données traitées... pas facile de te répondre... regarde put être si les cellules ne contiennent pas en fait des formules...