Recherche la position d'un caractère dans une chaine

  • Initiateur de la discussion Initiateur de la discussion Elhem
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Elhem

Guest
Bonjour à tous,

Je veut avoir la position de 1 dans une chaine de type >01001000001000010000000 et avoir chaque résultat dans une colonne. Sachant que je travaille sur Excel 2003.

Merci.
Elhem
 
Re : Recherche la position d'un caractère dans une chaine

Bonjour,

La fonction personnalisée suivante doit convenir :
Code:
Function Extract(MaChaine As String)
    Application.Volatile
    Lg = Len(MaChaine)
    For i = 1 To Lg
        If Mid(MaChaine, i, 1) = 1 Then
            Position = Position & i & "-"
        Else
        End If
    Next i
    If Len(Position) > 0 Then Position = (Left(Position, Len(Position) - 1))
    Extract = Position
End Function
 
Re : Recherche la position d'un caractère dans une chaine

Bonjour,
J'ai amélioré la fonction afin de pouvoir donner le caractère à rechercher.
Tu fais ALT+F11 pour ouvrir l'éditeur VBE puis Insertion module
Tu colles le code joint dans ce module.
Dans la feuille de calcul tu fais Insèrer une fonction (le Sigma) et tu recherches dans Fonctions personnalisées et tu trouves la fonction Extract.
Cela fonctionne comme n'importe quelle fonction.
Code:
Function Extract(MaChaine As String, Caractère As String)
    Application.Volatile
    Lg = Len(MaChaine)
    For i = 1 To Lg
        If Mid(MaChaine, i, 1) = Caractère Then
            Position = Position & i & "-"
        Else
        End If
    Next i
    If Len(Position) > 0 Then Position = (Left(Position, Len(Position) - 1))
    Extract = Position
End Function
 
Re : Recherche la position d'un caractère dans une chaine

bonjour

il faut que tu la places dans un module VBA.

a partir de la fonction de RENAUDER (merci^^) meme chose mais en matriciel à valider par CTRL+SHIFT+ENTREE

Code:
Function Extractmat(MaChaine As String)
Dim i As Byte, x As Byte
Dim tablo()
    Application.Volatile
    For i = 1 To Len(MaChaine)
        If Mid(MaChaine, i, 1) = 1 Then
            ReDim Preserve tablo(x)
            tablo(x) = i: x = x + 1
        End If
    Next i
    Extractmat = tablo
End Function

salut
 
Re : Recherche la position d'un caractère dans une chaine

ca marche merci beaucoup pour vos aides.
une derniére question comment je peux avoir ma résultat sur plusieurs colonnes (selon le nombre de position ex : 10-11-14-20 =>4 colonnes 1ère colonne 10/ 2ème colonne 11.. )

Merci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
689
  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
498
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
222
Réponses
18
Affichages
526
Réponses
18
Affichages
597
D
  • Question Question
Réponses
5
Affichages
249
Didierpasdoué
D
Retour