Extraire caractères VBA
Résolu/Fermé
moumousn
Messages postés
4
Date d'inscription
samedi 8 janvier 2022
Statut
Membre
Dernière intervention
10 janvier 2022
-
Modifié le 8 janv. 2022 à 10:52
via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 - 10 janv. 2022 à 11:59
via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 - 10 janv. 2022 à 11:59
A voir également:
- Extraire caractères VBA
- Caractères ascii - Guide
- Extraire une video youtube - Guide
- Caractères spéciaux clavier azerty - Guide
- Extraire son video - Guide
- Caractères spéciaux - Guide
5 réponses
DjiDji59430
Messages postés
4136
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
29 octobre 2024
677
8 janv. 2022 à 11:16
8 janv. 2022 à 11:16
Bonjour à tous,
Un debut de piste en formule !
mets le fichier, pas une photo !!!
https://www.cjoint.com/c/LAikqm4pyVY
Crdlmt
Un debut de piste en formule !
mets le fichier, pas une photo !!!
https://www.cjoint.com/c/LAikqm4pyVY
Crdlmt
via55
Messages postés
14494
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
26 octobre 2024
2 734
9 janv. 2022 à 00:11
9 janv. 2022 à 00:11
Bonjour
Oui fournir le fichier aurait été plus utile, ainsi que de préciser où et sous quelle présentation extraire les nombres
Quoiqu'il en soit un exemple de code à adapter :
https://www.cjoint.com/c/LAixlHMSWUg
Cdlmnt
Via
Oui fournir le fichier aurait été plus utile, ainsi que de préciser où et sous quelle présentation extraire les nombres
Quoiqu'il en soit un exemple de code à adapter :
https://www.cjoint.com/c/LAixlHMSWUg
Cdlmnt
Via
moumousn
Messages postés
4
Date d'inscription
samedi 8 janvier 2022
Statut
Membre
Dernière intervention
10 janvier 2022
10 janv. 2022 à 10:08
10 janv. 2022 à 10:08
Super merci beaucoup j'ai adapté et ça fonctionne
J'ai juste un petit souci. Il ne faut pas que je relève le nombre si il est présent sur une autre ligne de la plage (si le nombre 17 est présent sur la 2eme ligne je ne dois pas le relever)
J'arrive pas à ajouter ce paramètre
J'ai juste un petit souci. Il ne faut pas que je relève le nombre si il est présent sur une autre ligne de la plage (si le nombre 17 est présent sur la 2eme ligne je ne dois pas le relever)
J'arrive pas à ajouter ce paramètre
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
9 janv. 2022 à 10:55
9 janv. 2022 à 10:55
Bonjour à tous
la solution par VBA sera différente suivant le nombre de lignes
donc, merci de nous le dire: 10? 1000? 10000 ?
la solution par VBA sera différente suivant le nombre de lignes
donc, merci de nous le dire: 10? 1000? 10000 ?
moumousn
Messages postés
4
Date d'inscription
samedi 8 janvier 2022
Statut
Membre
Dernière intervention
10 janvier 2022
10 janv. 2022 à 10:09
10 janv. 2022 à 10:09
Bonjour
Il y a à peu près 300 lignes
J'ai pu adapter le code de via55
Merci :)
Il y a à peu près 300 lignes
J'ai pu adapter le code de via55
Merci :)
moumousn
Messages postés
4
Date d'inscription
samedi 8 janvier 2022
Statut
Membre
Dernière intervention
10 janvier 2022
10 janv. 2022 à 10:53
10 janv. 2022 à 10:53
Super merci beaucoup à tout le monde
via55 j'ai adapté et ça fonctionne super merci
J'ai juste un petit souci. Il ne faut pas que je relève le nombre si il est présent sur une autre ligne de la plage (si le nombre 17 est présent sur la 2eme ligne je ne dois pas le relever)
Je n'arrive pas à ajouter ce paramètre
via55 j'ai adapté et ça fonctionne super merci
J'ai juste un petit souci. Il ne faut pas que je relève le nombre si il est présent sur une autre ligne de la plage (si le nombre 17 est présent sur la 2eme ligne je ne dois pas le relever)
Je n'arrive pas à ajouter ce paramètre
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
via55
Messages postés
14494
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
26 octobre 2024
2 734
10 janv. 2022 à 11:59
10 janv. 2022 à 11:59
Il faut nettement modifier le code :
Cdlmnt
Via
Sub extraction() 'dernière ligne remplie en col A ligne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row 'boucle sur les lignes For n = 1 To ligne 'si la valeur en col B se retrouve en col A (lorsque NB.SI(A:A;"*" & B1 & "*") = 1) If WorksheetFunction.CountIf(Range("A:A"), "*" & Range("B" & n) & "*") = 1 Then 'dernière colonne remplie de la ligne en question Col = Rows(n).Find("*", , , , xlByRows, xlPrevious).Column 'boucle sur les colonnes de la 5eme à la dernière remplie For g = 5 To Col ' chaine inscrite dans la cellule cel = Cells(n, g).Value 'Boucle sur les caractères de la chaine depuis le 2nd jusqu'au dernier For t = 1 To Len(cel) 'si le caractère est ( on recherche la position du ) qui suit If Mid(cel, t, 1) = "(" Then np = InStr(t, cel, ")") 'on extrait alors le nombre avec ses parenthèses nombre = Mid(cel, t, np - t + 1) 's'il n'existe qu'en un seul exemplaire dans la plage E:K (A ADAPTER) alors on supprime le ( et on remplace le ) par une , et on ajoute à la chaine extraite If WorksheetFunction.CountIf(Range("E1" & ": K" & ligne), "*" & nombre & "*") = 1 Then aj = WorksheetFunction.Substitute(WorksheetFunction.Substitute(nombre, "(", ""), ")", ",") ext = ext & aj End If End If Next t Next g 'on inscrit en col D la chaine extraite moins son denier caractère (la dernière ,) Range("D" & n) = Left(ext, Len(ext) - 1) ' la chaine extraite est remise à vide pour la prochaine ligne ext = "" End If Next End Sub
Cdlmnt
Via