Ne garder que les lettres
Raf
-
titeufdu89 Messages postés 387 Statut Membre -
titeufdu89 Messages postés 387 Statut Membre -
Bonjour,
Je dois procéder à l'analyse d'évaluations nationales de 6ème et malheureusement l'extraction se fait avec des nombres et des lettres pour l'identité des élèves dans les cellules.
ex : 52C0778490M21 [LAWIF Nautiss], 51C0772880M71 [MOULUCHI Farah], 53TZ772190M41 [FRISNOL--MARHIND Ema], 24C0002190M31 [MIGLA Youba].
N'étant pas expert d'excel, pouvez-vous me dire s'il existe une solution pour ne conserver que les lettres de leurs noms et prénoms et supprimer les chiffres et crochets?
Merci d'avance pour vos lumières
Je dois procéder à l'analyse d'évaluations nationales de 6ème et malheureusement l'extraction se fait avec des nombres et des lettres pour l'identité des élèves dans les cellules.
ex : 52C0778490M21 [LAWIF Nautiss], 51C0772880M71 [MOULUCHI Farah], 53TZ772190M41 [FRISNOL--MARHIND Ema], 24C0002190M31 [MIGLA Youba].
N'étant pas expert d'excel, pouvez-vous me dire s'il existe une solution pour ne conserver que les lettres de leurs noms et prénoms et supprimer les chiffres et crochets?
Merci d'avance pour vos lumières
A voir également:
- Excel supprimer lettre garder chiffre
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Supprimer rond bleu whatsapp - Guide
- Excel trier par ordre croissant chiffre - Guide
- Chiffre en lettre - Télécharger - Outils professionnels
- Liste déroulante excel - Guide
12 réponses
Bonsoir
Je ne vois pas le rapport avec la formule
Un peu d'explications serait bienvenues
Crdlt
Je ne vois pas le rapport avec la formule
Un peu d'explications serait bienvenues
Crdlt
Bonsoir,
Encore merci pour votre réponse.
Comme je vous l'ai indiqué, je ne suis pas expert avec Excel, cela veut dire en fait novice.
J'ai un fichier avec une extraction d'élèves qui sont en difficultés ou fragiles dans des domaines en français ou en mathématiques. L'extraction me donne le nom des élèves avec le nom et prénom mais aussi avec des numéros référents académiques. En fonction des domaines, il n'y a pas le même nombre d'élèves qui n'ont pas réussi leurs évaluations. Je souhaite supprimer le plus facilement les nombres et ne garder que leurs noms plutôt que de le faire manuellement.
Les données sont sensibles, ce sont des données scolaires, je ne peux les communiquer ici.
S'il vous est possible de m'accorder du temps, peut-être pouvons nous trouver un moyen de communiquer plus facilement afin de garantir l'anonymat de nos échanges.
Bien cordialement
Encore merci pour votre réponse.
Comme je vous l'ai indiqué, je ne suis pas expert avec Excel, cela veut dire en fait novice.
J'ai un fichier avec une extraction d'élèves qui sont en difficultés ou fragiles dans des domaines en français ou en mathématiques. L'extraction me donne le nom des élèves avec le nom et prénom mais aussi avec des numéros référents académiques. En fonction des domaines, il n'y a pas le même nombre d'élèves qui n'ont pas réussi leurs évaluations. Je souhaite supprimer le plus facilement les nombres et ne garder que leurs noms plutôt que de le faire manuellement.
Les données sont sensibles, ce sont des données scolaires, je ne peux les communiquer ici.
S'il vous est possible de m'accorder du temps, peut-être pouvons nous trouver un moyen de communiquer plus facilement afin de garantir l'anonymat de nos échanges.
Bien cordialement
Bonsoir,
Admettons que ta liste de caractère soit en A1, colle cette formule en B1 ou dans la prochaine colonne libre de la ligne 1, Cette formule extrait les caractères contenus entre [ ] :
=STXT(A1;TROUVE("[";A1)+1;TROUVE("]";A1)-TROUVE("[";A1)-1)
Puis duplique la formule aussi loin que besoin avec la poignée de recopie
NB : si ta liste de caractère est située dans une autre cellule que A1, remplace tous les A1 de la formule par l'adresse de la cellule en question
Bonne soirée
Jc
Admettons que ta liste de caractère soit en A1, colle cette formule en B1 ou dans la prochaine colonne libre de la ligne 1, Cette formule extrait les caractères contenus entre [ ] :
=STXT(A1;TROUVE("[";A1)+1;TROUVE("]";A1)-TROUVE("[";A1)-1)
Puis duplique la formule aussi loin que besoin avec la poignée de recopie
NB : si ta liste de caractère est située dans une autre cellule que A1, remplace tous les A1 de la formule par l'adresse de la cellule en question
Bonne soirée
Jc
Bonjour
Tu peux me l'envoyer en message perso
pour cela tu cliques sur mon pseudo et ensuite sur envoyer un message
en joignant ton fichier
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse..
Cordialement
Tu peux me l'envoyer en message perso
pour cela tu cliques sur mon pseudo et ensuite sur envoyer un message
en joignant ton fichier
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse..
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
J'ai envoyé le fichier à JCB40.
Dommage, car il y a une solution toue simple préparant ce que t'avais proposé JCB40
J'ai envoyé le fichier à JCB40.
Dommage, car il y a une solution toue simple préparant ce que t'avais proposé JCB40
re, michel
J'ai fait un essai impossible a mettre en place il y a des [ ] ,à chaque élève.
exemple dans une cellule
96C0772190M82 [Dupont marcel], 97C0772190M02 [Durand andré], 98C0772190M02 [Dubois jules]
toutes les cellules non pas le même nombre d'élève
j'ai volontairement changé les noms et prénoms
Crdlt
J'ai fait un essai impossible a mettre en place il y a des [ ] ,à chaque élève.
exemple dans une cellule
96C0772190M82 [Dupont marcel], 97C0772190M02 [Durand andré], 98C0772190M02 [Dubois jules]
toutes les cellules non pas le même nombre d'élève
j'ai volontairement changé les noms et prénoms
Crdlt
Bonjour Michel et JCB,
Et une macro qui anaylse les chaines de texte caractère par caractère et lorsqu'elle tombe sur" [" extrait tous les caractères suivant jusqu'au prochain "]" ?
du genre
Jc
Et une macro qui anaylse les chaines de texte caractère par caractère et lorsqu'elle tombe sur" [" extrait tous les caractères suivant jusqu'au prochain "]" ?
du genre
Sub extract()
col = 1 'colonne des cellule à analyser
res = 2 'colonne ou afficher les noms
For i = 1 To Cells(66536, col).End(xlUp).Row
st = Cells(i, col).Value
If st <> "" Then
For j = 1 To Len(st)
If Mid(st, j, 1) = "[" Then
deb = j + 1
nb = 1
Do While Mid(st, deb + nb, 1) <> "]"
nb = nb + 1
Loop
Cells(Cells(65536, res).End(xlUp).Row + 1, res) = Mid(st, deb, nb)
j = j + nb
End If
Next j
End If
Next i
End Sub
Jc
Bonjour,
Une solution en vba pour une cellule si cela commence toujours par un nombre. Il suffira ensuite de faire un boucle sur la colonne contenant les cellules avec cette macro:
https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-I
Une solution en vba pour une cellule si cela commence toujours par un nombre. Il suffira ensuite de faire un boucle sur la colonne contenant les cellules avec cette macro:
https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-I
Sub extractionMots()
Dim Tableau() As String
Dim i As Integer, j As Integer
Dim texte As String
Dim Ix As Integer
'on supprime les crochets on les remplace par #
texte = Replace(Range("A1"), "[", "#")
texte = Replace(texte, "]", "#")
Tableau = Split(texte, "#")
'boucle sur le tableau pour visualiser le résultat
For i = 0 To UBound(Tableau)
'Le résultat s'affiche dans la fenêtre d'execution de l'éditeur de macros
Debug.Print Tableau(i)
Ix = Ix + 1 'on compte les occurences
Next i
For j = 1 To Ix - 1 Step 2 'on ne prend que les impairs
Range("B1").Value = Range("B1").Value & Tableau(j) & ", " 'on ajoute une virgule entre les noms
Next
Range("B1").Value = Left(Range("B1").Value, Len(Range("B1").Value) - 2) 'supprime la dernière virgule et l'espace
End Sub
Bonjour titeuf
merci pour la solution que tu proposes qui fonctionne bien , mais il y a des hic...
Les cellules concernées sont de B3 à B8 et de B12 à B16
il faudrait retranscrire B3 à B8 à partir de B20 et B12 à B16 a partir de B50
La présentation de ce tableau est une vrai galère
Vois si tu peux faire quelque chose
Crdlt
merci pour la solution que tu proposes qui fonctionne bien , mais il y a des hic...
Les cellules concernées sont de B3 à B8 et de B12 à B16
il faudrait retranscrire B3 à B8 à partir de B20 et B12 à B16 a partir de B50
La présentation de ce tableau est une vrai galère
Vois si tu peux faire quelque chose
Crdlt
Je précise que le fichier vient de la avec le N°département en+
je viens de m'en apercevoir
Pour ma part je laisse tomber,je suppose qu'ils ont des informaticiens
et je ne veux pas leur piquer leur taf
Directions des services départementaux de l'éducation nationale
je viens de m'en apercevoir
Pour ma part je laisse tomber,je suppose qu'ils ont des informaticiens
et je ne veux pas leur piquer leur taf
Directions des services départementaux de l'éducation nationale
Voici un nouveau code qui devrait faire l'affaire...
Sub extract()
col = 2 'colonne des cellule à analyser
For i = 1 To Cells(66536, col).End(xlUp).Row
If (i >= 3 And i <= 8) Or (i >= 12 And i <= 16) Then
st = Cells(i, col).Value
If st <> "" Then
For j = 1 To Len(st)
If Mid(st, j, 1) = "[" Then
deb = j + 1
nb = 1
Do While Mid(st, deb + nb, 1) <> "]"
nb = nb + 1
Loop
Select Case i
Case Is <= 8
For k = 20 To 49
If Range("B" & k).Value = "" Then
lig = k
GoTo nex
End If
Next k
Case Is >= 12
For l = 50 To 65536
If Range("B" & l).Value = "" Then
lig = l
GoTo nex
End If
Next l
End Select
nex:
Cells(lig, col) = Mid(st, deb, nb)
j = j + nb
End If
Next j
End If
End If
Next i
End Sub
Un grand merci pour votre réponse et votre aide.
Malheureusement, il s'agit d'une extraction très importante et non régulière car il y a un nombre variable d'élèves selon le domaine et plusieurs classe.
Bonne soirée et encore merci