Tableau
V
Bonjour à tous
Je suis étudiant et j'ai un petit problème :
Je souhaite éclater une formule et crée un tableau avec les termes que j'ai éclater :
En gros j'ai une formule ( A ET B ) OU ( A ET C )
j'aimerai crée un tableau avec abc en colonnes et placer une croix dans le tableau à chaque ligne qui correspond a mon expression
Exemple :
NA NA A B C
ligne 1 X X NA
ligne 2 X NA X
Sub TestV2()
'variable qui stock la cellule diversité organico fonctionnel
Dim str_temp As String
'tableau qui stock chaque ligne de ma cellule diversité organico fonctionnel
Dim ligne_DCi As Integer
Dim tab_str_temp() As String
Dim Nb_ligne_Dci As Integer
Dim ligne As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim nb_groupe_EC As Integer 'représente un groupe d'EC entre parenthèse séparé par des ET
Dim groupe_EC As Integer
Dim nb_EC_par_groupe As Integer
Dim nb_EC_par_groupe_max As Integer
Dim EC_trouve As Boolean
Dim iColonneDiversiteOrganicoFonctionnelle As Integer
Dim iColonneDiversiteOrganicoFonctionnelleGenere As Integer 'colonne généré par une macro
For i = 1 To Application.WorksheetFunction.CountA(Rows(2))
If Cells(2, i) = "Diversité Organico Fonctionnelle" Then
iColonneDiversiteOrganicoFonctionnelle = i
End If
If Cells(2, i) = "Diversité Organico Fonctionnelle Générée" Then
iColonneDiversiteOrganicoFonctionnelleGenere = i
End If
Next i
Nb_ligne_Dci = Application.WorksheetFunction.CountA(Columns(2)) - 1
For ligne_DCi = 1 To Range("Q" & Rows.Count).End(xlUp).Row
Worksheets("DCi").Activate
'On vérifie que la cellule constituant et Réseau son bien en accord avec notre filtre
If iColonneDiversiteOrganicoFonctionnelleGenere = 0 Then
str_temp = Cells(ligne_DCi + 3, iColonneDiversiteOrganicoFonctionnelle)
Else
str_temp = Cells(ligne_DCi + 3, iColonneDiversiteOrganicoFonctionnelleGenere)
End If
'Initialisation des variables
nb_groupe_EC = 0
groupe_EC = 0
nb_EC_par_groupe = 0
nb_EC_par_groupe_max = 0
dernier_groupe_EC_max = 1
numero_EC = 0
EC = ""
'fonction qui découpe la cellule en plusieur ligne
tab_str_temp = Split(str_temp, Chr(10))
'---------------------------------------------------------------------------------------------------------
'On compte le nombre d'EC max par groupe dans une case diversité organico fonctionnel pour créer le tableau EC
For i = 0 To UBound(tab_str_temp)
If (tab_str_temp(i) = "(") Then 'on regarde si une parenthèse ouverte est présente ( on compte 1 groupe
nb_groupe_EC = nb_groupe_EC + 1
groupe_EC_en_cours = True
ElseIf (tab_str_temp(i) = ")") Then 'on regarde si une parenthèse fermé est présente ( on peu passer au second groupe
If (nb_EC_par_groupe > nb_EC_par_groupe_max) Then
nb_EC_par_groupe_max = nb_EC_par_groupe
End If
nb_EC_par_groupe = 0
groupe_EC_en_cours = False
Else 'on est dans le cas ou on compte le nombre d'EC_max
If tab_str_temp(i) <> "" Then
'il y a un seul groupe_EC dans la cellule et on a donc pas vu de (
If nb_groupe_EC = 0 Then
nb_groupe_EC = 1
groupe_EC_en_cours = True
nb_EC_par_groupe = nb_EC_par_groupe + 1
Else
If ((tab_str_temp(i - 1) = "OU") Or (tab_str_temp(i - 1) = "ET") Or (tab_str_temp(i - 1) = "(")) Then
If (groupe_EC_en_cours = True) Then
EC = tab_str_temp(i)
Worksheets("tableau3").Activate
Cells(i + 1, 1) = EC
Worksheets("DCi").Activate
nb_EC_par_groupe = nb_EC_par_groupe + 1
End If
End If
End If
End If
End If
Next
Next ligne_DCi
End SubVoilà un début de code que j'ai fait, les EC sont les lettre de mon expression détectéé