[VBA] Mettre en forme une partie d'une cellule

Mettre en forme une partie d'une cellule [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 29-11-2017 à 17:54:54    

Bonjour,
 
Je cherche à faire une fonction qui me permet de construire une synthèse bi-dimensionnelle d'une liste.
Je m'explique : j'ai un onglet avec une liste de "Fonctionnalités", chacune d'entre elles étant associées à une Version.
http://reho.st/medium/self/5f8ed6fb01adf71c03c66eb39a3a51c84dd7eaa2.png
Je cherche ensuite à proposer une vision bièdimensionnelle qui me propose la liste des Modules en ligne, en colonne, le contenu de chaque version
http://reho.st/medium/self/c9fbe616219c68a41b933619153e9b7ddd96a1af.png
 
Cherchant à faire simple, j'ai créé une fonction "Module_Version"  prenant en paramètre la fonction et la version et qui va chercher la liste des fonctionnalités, que j'appelle pour chaque croisement de mon tableau

Code :
  1. =Version_Fonction($A3;$C$2)

le résultat étant la copie d'écran ci-dessus.
Je cherche désormais à avoir un formatage conditionnel de la fonction suivant son état de Dev (disons, que soient en gras ce qui a été développé). J'ai vu les caractéristiques ".Font.Bold" par exemple, mais cela s'applique sur une cellule. Or, je me base sur une variable, donc comment faire pour que je puisse effectuer cette mise en forme dans cette procédure ?
 

Code :
  1. Function Version_Fonction(fonction As String, Version As String)
  2.    
  3.     Dim temp_lib As String
  4.     Dim lig_fonction, lig_version As String
  5.     Dim wsExcel As Excel.Worksheet 'Feuille Excel
  6.     Dim i, idxCol, NiveauVisu, lig_niveau As Integer
  7.    
  8.     'wsExcel correspond à la l'onglet à retraiter (corps)
  9.     Set wsExcel = Sheets("Backlog" )
  10.     temp_lib = ""
  11.     idxCol = 3
  12.     rc = vbCrLf
  13.        
  14.     For i = 1 To 500 Step 1
  15.       lig_fonction = wsExcel.Cells(i, 2)
  16.       lig_version = wsExcel.Cells(i, 9)
  17.       'lig_niveau = wsExcel.Cells(i, 5)
  18.       If lig_fonction = fonction And lig_version = Version And NiveauVisu >= lig_niveau Then
  19.         temp_lib = temp_lib & wsExcel.Cells(i, idxCol) & rc
  20.       End If
  21.       Next i
  22.   Version_Fonction = temp_lib
  23. End Function


 
Merci de votre aide
 
PS : Ce n'est certainement pas le plus optimisé, mais c'est un outil de reporting interne basique
 

Reply

Marsh Posté le 29-11-2017 à 17:54:54   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed