Extraction de données

  • Initiateur de la discussion Initiateur de la discussion petipeton
  • 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 !

P

petipeton

Guest
Bonjour, le forum ! 😉

Voici mon petit souci du jour : dans une colonne, j'ai des données extraites d'une requête SQL. Je voudrais faire deux extractions systématiquement :

- N° 1 dans la colonne D : extraire les 5 derniers caractères (numériques) quelle qu'en soit leur position (variable).

- N°2 dans la colonne B : extraire les 5 caractères numériques qui suivent la mention PER_ID.= quelle qu'en soit sa position, collée ou non à du texte (variable, ce qui est fixe, c'est que les 5 caractères numériques suivent forcément cette mention). Cette mention peut être collée à du texte sans espace avant.
Exemples de contenu de cette colonne :
PFI.PFI_ID =894 ARC.ARC_ID =999999 PER.PER_ID =61012
PER_ID =5920 PPH_NOM =TOTO PPH_PRENOM =Cutugno


Merci de votre aide, chui pas encore suffisamment au point sur VBA pour m'en sortir seule... :whistle:

A plus tard !!!
 
Bonjour le Forum,
Bonjour petipeton,

Alors pour la question 1 je n'ai pas vraiment compris si tu pouvais donner un exemple précis.

pour la question 2 si les données sont en A1 formule a essayer :

=CNUM(REMPLACER(A1;1;NBCAR(A1);STXT(A1;CHERCHE('PER_ID';A1;1)+8;5)))

Jocelyn

Message édité par: Jocelyn, à: 10/04/2006 11:45
 
Yessssssssssss !!!!

Et selon mon habitude : des bisous à vous deux !!!!

Mais je n'ai pas tout compris.

Ce code a marché, mais peux tu me le détailler :

derlin = Range('D65536').End(xlUp).Row
For Each cel In Range('D' & 1, 'D' & derlin)
x = InStr(1, cel, 'PER_ID =')
cel.Offset(0, 1) = Mid(cel, x + 8, 5)
Next cel


Merci... c'est ainsi que je progresserai...
 
re petipeton

recherche de la derniere ligne de la colonne D
derlin = Range('D65536').End(xlUp).Row

pour chaque cellule de la plage definie:
D1 à Dderniereligne
For Each cel In Range('D' & 1, 'D' & derlin)
numero dans cel du debut du mot 'Per...'
x = InStr(1, cel, 'PER_ID =')
mettre dans la cellule voisine de cel (0 ligne de decalage,1 colonne de decalage ( a droite puisqe positif))
la tranche de cel commencant 8 lettres apres le debut de 'PER..' soit tout de suite apres ,et long de 5 lettres
cel.Offset(0, 1) = Mid(cel, x + 8, 5)

passer a la cellule suivante
Next cel

J'espere avoir été clair

Message édité par: pierrejean, à: 10/04/2006 13:12
 
- 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

B
Réponses
2
Affichages
2 K
bastienb
B
L
Réponses
11
Affichages
5 K
L
H
Réponses
2
Affichages
7 K
H
S
Réponses
3
Affichages
2 K
Sebadoo
S
B
Réponses
3
Affichages
1 K
Retour