Mise en forme conditionnelle par MACRO d'un classeur externe

Bonjour,

Je débute en VBA et je souhaiterais savoir s'il est possible de coloriser, grâce à VBA, les onglets d'un classeur excel.

Cas particulier :

Ma macro est contenue dans un classeur Excel "de config" qui a pour but de regrouper 3 classeurs excel en 1 seul nouveau (avec 3 onglets)

Le regroupement à déjà était effectué, il me faut maintenant coloriser mon nouveau classeur et ces onglets à partir de ma macro et selon des conditions.

De manière plus imagé : Mon classeur "Macro" doit dire au "New_Classeur", pour ces trois onglets, de colorer toute les lignes d'une certaine couleur selon si le resultat de la colonne "P" est '1' ou '0' (1 ou 0 sont des valeurs de type texte)

Les tableaux dans les trois onglets auront toujours le meme nombre de colonne mais pourront avoir plus ou moins de ligne.

Voici mon code actuel qui n'inclut rien concernant la mise en forme conditionnelle du nouveau classeur :

Option Explicit

Public Const colsep As String = ","
Public Const rowsep As String = vbCrLf

Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
-------------------------------------------------------
Sub load_csv_to_worksheet()

On Error GoTo labelerror

Dim ws As Worksheet
Dim Error_message As String

'1 Chargement du fichier csv en mémoire

Dim file_content() As String
Dim file_content2() As String
Dim file_content3() As String

 'Fichier 1
    Dim csvfpath As String
    Dim csvfname As String
    Dim outsheetname As String

    csvfpath = Sheets("ACE_Input_Data_1").Cells(2, 2).Value
    csvfname = Sheets("ACE_Input_Data_1").Cells(2, 3).Value
    outsheetname = Sheets("ACE_Input_Data_1").Cells(2, 4).Value

 'Fichier 2
    Dim csvfpath2 As String
    Dim csvfname2 As String
    Dim outsheetname2 As String

    csvfpath2 = Sheets("ACE_Input_Data_1").Cells(3, 2).Value
    csvfname2 = Sheets("ACE_Input_Data_1").Cells(3, 3).Value
    outsheetname2 = Sheets("ACE_Input_Data_1").Cells(3, 4).Value

 'Fichier 3
    Dim csvfpath3 As String
    Dim csvfname3 As String
    Dim outsheetname3 As String

    csvfpath3 = Sheets("ACE_Input_Data_1").Cells(4, 2).Value
    csvfname3 = Sheets("ACE_Input_Data_1").Cells(4, 3).Value
    outsheetname3 = Sheets("ACE_Input_Data_1").Cells(4, 4).Value

Error_message = File_To_STRTable(file_content, csvfpath, csvfname)
Error_message = File_To_STRTable(file_content2, csvfpath2, csvfname2)
Error_message = File_To_STRTable(file_content3, csvfpath3, csvfname3)

If Len(Error_message) <> 0 Then
  MsgBox Error_message
  Exit Sub
End If

'2 Creation d'un nouveau fichier

Dim FichierExport As String
FichierExport = "c:\New_Classeur.xlsx"

Call Create_Workbook(FichierExport)

'3 Creation d'une feuille excel de destination, copie du csv dans cette feuille, Export output to new workbook

 'Fichier1
   Call Add_Worksheet(outsheetname, ws)
   ws.Range("A1:" & DecToB26(UBound(file_content, 2)) & UBound(file_content, 1)).Value = file_content
   Call Export_Worksheet(ws, FichierExport, Error_message, 1)

 'Fichier2
   Call Add_Worksheet(outsheetname2, ws)
   ws.Range("A1:" & DecToB26(UBound(file_content2, 2)) & UBound(file_content2, 1)).Value = file_content2
   Call Export_Worksheet(ws, FichierExport, Error_message, 2)

 'Fichier3
   Call Add_Worksheet(outsheetname3, ws)
   ws.Range("A1:" & DecToB26(UBound(file_content3, 2)) & UBound(file_content3, 1)).Value = file_content3
   Call Export_Worksheet(ws, FichierExport, Error_message, 3)

If Len(Error_message) <> 0 Then
  MsgBox Error_message
  Exit Sub
End If

Exit Sub

labelerror:
MsgBox Err.Description

End Sub
------------------------------------------------------------------------------------
' Fonction de création d'un classeur
Sub Create_Workbook(write_path As String)

Application.DisplayAlerts = False
If Len(Dir(write_path)) <> 0 Then
  DeleteFile write_path
End If

Dim NewBook As Workbook
Set NewBook = Workbooks.Add

NewBook.SaveAs FileName:=write_path
NewBook.Close True

End Sub
-------------------------------------------------------------------------------------------------------
' Copie d'une feuille vers un classeur existant
Sub Export_Worksheet(ws As Worksheet, path As String, Err_Msg As String, nb As Integer)

On Error GoTo lblerr

Application.DisplayAlerts = False
Application.ScreenUpdating = False

Dim wb As Workbook
Set wb = Workbooks.Open(path)

ws.Copy Before:=wb.Sheets(nb)

Application.DisplayAlerts = True

wb.Close True

Exit Sub
lblerr:
Err_Msg = Err.Description

End Sub

Merci par avance pour vos retours et réponses

Rechercher des sujets similaires à "mise forme conditionnelle macro classeur externe"