Bonjour,
J'ai des données qui sont structurées en fichier Excel. J'aimerais bien faire l'extraction des pourcentages qui sont dans une de mes colonnes.
Je vous donne un exemple du contenu dans ces cellules:
At 31-Dec-2008: Roberto (11.899%) Antonio (23.798%); Maria (11.899%) ; Jose (23.798%) ; Martin (23.798%) , Diego (4.808%)
J'ai trouvé un programme VBA pour l'extraction des pourcentages, qui est comme suit:
Ce programme fonctionne bien mais avec quelques imperfections:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Public Function wExtractPercent(sInput) As Double If IsNumeric(sInput) Then wExtractPercent = sInput Else end_position = InStr(sInput, "%") For i = end_position To 1 Step -1 If Mid(sInput, i, 1) = " " Then start_position = i Exit For End If Next If start_position = 0 Then wExtractPercent = Left(sInput, end_position - 1) / 100 Else wExtractPercent = Mid(sInput, start_position, end_position - start_position) / 100 End If End If End Function
Imperfection 01: Avant d'appliquer la fonction wExtractPercent, il faut nettoyer le contenu de la cellule des parenthèses "(" et ")"
Imperfection 02: Avant d'appliquer la fonction wExtractPercent, il faut remplacer le point du pourcentage "." par ","
Imperfection 03: Le programme ci-dessous, lit juste le premier pourcentage dans le contenu et ignore le reste des pourcentages.
Je vous donne ma démarche actuelle pour l'extraction des pourcentages:
Étape 01: Je convertis ma colonne en plusieurs afin d'obtenir un pourcentage dans chaque colonne et non pas plusieurs;
Étape 02: je remplace les parenthèses "(" et ")" par des espaces " ";
Étape 03: je remplace "." par "," ;
Étape 04: j'applique finallement la fonction wExtractPercent qui me donne le pourcentage qui se trouve dans chaque cellule.
Quatre étape ce n'est pas beaucoup pour quelques cellules, mais le problème c'est que j'ai des centaines de milliers de cellules à traiter, et cela devient fastidieux est aussi lourd pour excel.
Ma question est donc la suivante:
Pourriez-vous m'aider à améliorer mon programme/ma fonction VBA ci-dessus pour faire l'extraction en moins d'étapes et d'une façon plus conviviale. Cela me rendra grand service.
Merci d'avance
NB: Jutilise Excel 2016 FR
Partager