VBA - extraire valeur numérique et copier la valeur sur une rangée de cellules

Résolu/Fermé
Yrmouf Messages postés 126 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 22 septembre 2020 - 13 mai 2020 à 16:08
Yrmouf Messages postés 126 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 22 septembre 2020 - 13 mai 2020 à 19:24
Bonjour à tous,

Je bloque sur un problème excel et je sollicite de l'aide sur ce forum en espérant recevoir les lumières qu'il me faut!!

Tout d'abord, voici si jamais le lien du fichier qui permettra de mieux éclairer la problématique:
https://www.cjoint.com/c/JEnobPnEEPK

J'ai une extraction de données qui est difficilement exploitable et je cherche à la "ranger" pour pouvoir en faire un TCD.

Pour ce faire j'ai besoin de pouvoir extraire le matricule (sans les espaces et le nom) des cellules en jaune colonne B et de pouvoir les dupliquer en colonne A jusqu'au prochain matricule.

L'objectif est de pouvoir obtenir l'information comme indiqué en colonne D.

Sur cet exemple, cela est réalisable à la main, mais dans un autre fichier il y a plus de 8000 lignes et cela est chronophage.

J'avais commencé par faire la formule =gauche() mais pareil, le matricule change de longueur donc pas pratique.

J'ai du mal à voir comment faire sans passer par du VBA ce que je ne maîtrise pas très bien sauf dans la compréhension de la lecture!!

Merci à quiconque s'intéressera au sujet ;)

Bonne journée




Configuration: Windows / Chrome 79.0.3945.130
A voir également:

4 réponses

via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
13 mai 2020 à 17:30
Ah oui j'avais mal compris !
Alors en A3 :
=GAUCHE(DECALER(B3;EQUIV("*-*";DECALER(B3;;;10);0)-1;);TROUVE("-";DECALER(B3;EQUIV("*-*";DECALER(B3;;;10);0)-1;))-2)

Cdlmnt
Via
1
Yrmouf Messages postés 126 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 22 septembre 2020 5
13 mai 2020 à 18:31
Merci Via bien pratique cette histoire de * pour prendre en compte n'importe quel type de caractère!

Je n'ai pas compris en revanche pourquoi 10 dans DECALER(B3;;;10)
Si tu as une petite explication simple ça ne me ferait pas de mal ;) (enfin si j'arrive à comprendre)

En tout cas thank you!! :)
0
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
13 mai 2020 à 18:35
Il faut rechercher dans les seules lignes en dessous la présence d'un matricule identifiable par le tiret donc on part de la cellule de la ligne courante B3 et on décale en hauteur de 10 pour chercher dans les 10 lignes en dessous
Bien sûr si10 n'est pas suffisant tu peux augmenter le nombre dans la formule
1
Yrmouf Messages postés 126 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 22 septembre 2020 5
13 mai 2020 à 19:24
C'est très clair merci!!
Bonne soirée à toi :)
0
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
13 mai 2020 à 16:20
Bonjour Ymouf

Comme chauqe matricule est suivi d'un tiret :
=GAUCHE(B10;TROUVE("-";B10)-2)

Cdlmnt
Via
0
Yrmouf Messages postés 126 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 22 septembre 2020 5
13 mai 2020 à 16:29
Bonjour via55 merci pour votre réponse
Savez vous également comment dupliquer le matricule en colonne A jusqu'au prochain matricule via formule ou vba?
0
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
13 mai 2020 à 16:47
En A10 :
=SIERREUR(SI(TROUVE("-";B10)>0;GAUCHE(B10;TROUVE("-";B10)-2);"");A9)
0
Yrmouf Messages postés 126 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 22 septembre 2020 5
13 mai 2020 à 17:09
Pas exactement, ce que je voulais dire c'est comment faire pour que les données apparaissent à l'instar de la colonne D.

En fait tout ce qui est entre les cellules jaunes matricules sont des informations liées au matricule.

C'est à dire que je cherche à rattacher B3 avec l'information 10001, idem pour B4 à B9.

Puis B11 à B15 l'information à récupérer de A11 à A15 est 100402
0