Compter le nombre d'occurence d'un caractere dans une cellule
jbb0306
Messages postés15Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention28 octobre 2008
-
24 oct. 2008 à 19:23
jbb0306
Messages postés15Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention28 octobre 2008
-
24 oct. 2008 à 23:10
Bonjour,
Je débute sous VBA et je souhaiterai ouvrir un fichier texte avec séparateur ';' sous excel.
Il faudrait que j'arrive à compter le nombre d'occurrence du caractère ';' dans la cellule A1 afin de me pouvoir faire un convertir de toute la colonne A en utilisant le caractere ';' comme separateur.
jbb0306
Messages postés15Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention28 octobre 2008 24 oct. 2008 à 21:07
Merci beaucoup pour votre réactivite ;)
J'arrive donc maintenant a récuperer le nombre de ';' qui correspond au nombre de colonne.
Maintenant, ce que je souhaite, c'est convertir les donnes de la colonne A en 7 colone (avec le ; comme separateur).
Je pensais utiliser le "morceau" de programme suivant obtenu avec l'enregistreur de macro :
jbb0306
Messages postés15Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention28 octobre 2008 24 oct. 2008 à 21:20
Ok
split renvoie un tableau, c'est pour cela que j'ai stocké la valeur (a = UBound(occurence) )
pour ensuite la réutilisée, mais je ne parvient pas a faire ce que je veux
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 24 oct. 2008 à 21:34
Bonsoir,
Il me semble que :
- tu as obtenu la réponse à ta question, telle qu'elle était posée...
- tu poses maintenant une nouvelle question ===>> nouvelle question ? discussion distincte, s'il te plait !
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 24 oct. 2008 à 21:43
Bonjour jbb0306
Sur la forme : je sais qu'il est impoli de s'immiscer dans une conversation, mais mon manque d'éducation est notoire et a fait, en son temps, le désespoir de ma famille et de mes professeurs
Sur le fond : pour éclater le contenu de la cellule A1 en n colonnes, la boucle proposée par PCPT est bien adaptée :
Public Function Count(ByRef vsInput As String, ByRef vsPattern As String, Optional ByVal veCompare As VbCompareMethod = vbBinaryCompare) As Integer
Dim i As Long, j As Long
i = InStr(1, vsInput, vsPattern, veCompare)
j = 1
Do While i
Count = Count + 1
Cells(1, Count).Value = Mid(vsInput, j, i - j)
j = i + 1
i = InStr(i + 1, vsInput & vsPattern , vsPattern, veCompare)
Loop
Count = Count - 1 ' ma boucle fait un cycle de plus que celle de PCPT End Function
jbb0306
Messages postés15Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention28 octobre 2008 24 oct. 2008 à 22:11
Merci orohena,
le pb c'est que je ne connais pas VBA et je ne sais pas comment appeler cette fonction tout en disant que je veut que toutes les lignes de la colonne A soient eclatées sur les colonnes A1:Ax avec x le nombre de separateur.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 24 oct. 2008 à 23:01
Ou j'ai pas tout compris à la question, mais pourquoi faire une telle usine à gaz pour ouvrir un fichier avec séparateur ; (fichier csv) alors qu'Excel sait très bien le faire tout seul.
Si tu dois le faire par le code utilise la fonction WorkBook.open
jbb0306
Messages postés15Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention28 octobre 2008 24 oct. 2008 à 23:10
effectivement,
avec cette methode j'arive a ouvrir un fichier texte avec separateur ';' mais le pb c'est que j'ai des colonnes avec des chiffre et certaines cellules commencent par des 0 que je dois garder, ce qui n'est pas le cas lorsque j'utilise cette méthode.
En utilisant Données--> convertir depuis excel, il est possible de preciser qu'il faut lire les données au format texte, ce qui permet de garder les 0 a gauche.