Public Type Polymere parametre As String valeurs(41) As String End Type Sub tableauPolymere() Dim tableau() As Polymere Dim p As Polymere Dim cpt, nbP As Integer cpt = 0 nbP = 0 Set cellule = Range("A1") While Not IsEmpty(cellule) If Mid(cellule, 1, 1) = ")" Then If nbP = 0 Then ReDim tableau(0) Else ReDim Preserve tableau(UBound(tableau) + 1) End If tableau(UBound(tableau)).parametre = Replace(cellule, ")", "") cpt = 0 nbP = nbP + 1 Else tableau(UBound(tableau)).valeurs(cpt) = cellule cpt = cpt + 1 End If Set cellule = cellule.Offset(1, 0) Wend For i = 0 To UBound(tableau) MsgBox UBound(tableau(0).valeurs) For j = 0 To UBound(tableau(i).valeurs) MsgBox "Polymere" & vbCrLf & "Parametre : " & tableau(i).parametre & vbCrLf & "Valeur : " & tableau(i).valeurs(j) Next j Next i End Sub
Public Type Polymere 'déclaration d'un nouveau type Polymere parametre As String valeurs() As String nbValeurs As Integer End Type Sub tableauPolymere() Dim tableau() As Polymere Dim cpt, nbP As Integer Dim reponse, message As String remplirTableau: 'initialisation des compteurs cpt = 0 nbP = 0 Set cellule = Range("A1") 'on boucle sur la colonne A, jusqu'à la première cellule vide While Not IsEmpty(cellule) 'si le premier caractère de la cellule est ) alors 'on redimensionne le tableau If Mid(cellule, 1, 1) = ")" Then If nbP = 0 Then ReDim tableau(0) Else ReDim Preserve tableau(UBound(tableau) + 1) End If 'on insère le parametre tableau(UBound(tableau)).parametre = Replace(cellule, ")", "") cpt = 0 nbP = nbP + 1 'sinon, on redimensionne le tableau pour les valeurs 'et on ajoute la valeur Else ReDim Preserve tableau(UBound(tableau)).valeurs(cpt) tableau(UBound(tableau)).valeurs(cpt) = cellule tableau(UBound(tableau)).nbValeurs = cpt + 1 cpt = cpt + 1 End If 'on descend d'une cellule Set cellule = cellule.Offset(1, 0) Wend 'on prépare le message à écrire message = "Voici les résultats : " 'on boucle sur les paramètres et on affiche pour chacun le nombre de valeurs For i = 0 To UBound(tableau) message = message & vbCrLf & tableau(i).parametre & ", nombre de valeurs : " & tableau(i).nbValeurs Next i message = message & vbCrLf & vbCrLf & "Voulez-vous les recommencer ?" 'on affiche le message et on récupère la valeur dans la variable reponse reponse = MsgBox(message, vbYesNo) 'si l'utilisateur clique sur oui, on retourne à remplirTableau If reponse = vbYes Then GoTo remplirTableau 'on boucle sur tout les éléments du tableau et on affiche 'For i = 0 To UBound(tableau) ' MsgBox "Polymere : " & tableau(i).parametre & ", nombre de valeurs : " & tableau(i).nbValeurs ' For j = 0 To UBound(tableau(i).valeurs) ' MsgBox "Polymere" & vbCrLf & "Parametre : " & tableau(i).parametre & vbCrLf & "Valeur : " & tableau(i).valeurs(j) ' Next j 'Next i End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question