Extraction de valeur numérique d'une chaîne. [Résolu)

GCogaulois

XLDnaute Nouveau
Bonjour à tous et à toutes,

Je reviens vers vous après de longues recherches infructueuses.

Quelqu'un pourrait-il m'indiquer dans quel direction partir pour supprimer les trois derniers chiffres d'une chaîne numérique, et reprendre le reste entre parenthèses.
Exemple ligne 1 : dans une colonne "B" j'ai le nombre 65392, je souhaite le résultat (65) en colonne "E",
ou encore ligne 2 : en colonne "B" le nombre 4368, je souhaite le résultat (04) en colonne "E".

Mon but final est de concatener le résultat obtenu avec les valeurs de la colonne "A". Celle-si est un ensemble de valeur alphanumérique.
Exemple ligne 1 : colonne "A" blablabla, colonne "B" 65392, je souhaite le résultat : blablabla (65),
ou encore ligne 2 : colonne "A" blobloblo, colonne "B" 4368, je souhaite le résultat : blobloblo (04).

Le fichier sur lequel je travaille consiste en la mise en forme d'une base de données, comprenant 38000 lignes et 20 colonnes. Il est trop volumineux pour être posté, mais si nécessaire je peux en faire un extrait.

Merci d'avance pour votre aide.
GCogaulois.
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Extraction de valeur numérique d'une chaîne.

Bonjour GCogaulois, JHA,

Etant donné le nombre de cellules à traiter, j'ai élaboré une solution par macro.

Un clic sur le bouton Démo et le résultat s'affiche.

A +

Cordialement.
 

Pièces jointes

  • Exemple GCogaulois.xlsm
    20.4 KB · Affichages: 51

GCogaulois

XLDnaute Nouveau
Re : Extraction de valeur numérique d'une chaîne.

Bonjour Papou-net,

Un grand merci pour la réponse.

Mes connaissances en VBA ne m'aurait pas permis d'arriver jusque là. Pour que je puisse adapter ces lignes à mon fichier réel, sans vouloir abuser pourrait-tu commenter ce code s'il te plait ?

D'avance merci, cordialement.
GCogaulois.
 

GCogaulois

XLDnaute Nouveau
Re : Extraction de valeur numérique d'une chaîne.

Bonjour JHA,

Un grand merci pour ta réponse.

Toute mes excuses, je me suis arrêté au premier retour avant de voir la suite. Je garde ta formule en mémoire. Et promis la prochaine fois je lirais toutes les réponses avant de répondre en une fois à tous le monde.

Encore merci, cordialement.
GCoGaulois.
 

Papou-net

XLDnaute Barbatruc
Re : Extraction de valeur numérique d'une chaîne.

Bonjour à tous,

GCogaulois,

Pour répondre à ta demande, voici une copie du fichier avec le code commenté.

Bonne journée.

Cordialement.
 

Pièces jointes

  • Exemple commenté GCogaulois.xlsm
    21.8 KB · Affichages: 41
  • Exemple commenté GCogaulois.xlsm
    21.8 KB · Affichages: 44
  • Exemple commenté GCogaulois.xlsm
    21.8 KB · Affichages: 41

GCogaulois

XLDnaute Nouveau
Re : Extraction de valeur numérique d'une chaîne.

Bonjour,

Encore une fois un grand merci, je regarde et j'adapte ces lignes à mon fichier.
Le fichier, déjà joint, correspond exactement à ce que je souhaitais réaliser.

Cordialement.
GCogaulois.
 

Modeste geedee

XLDnaute Barbatruc
Re : Extraction de valeur numérique d'une chaîne.

Bonsour® à tous
Toute mes excuses, je me suis arrêté au premier retour avant de voir la suite. Je garde ta formule en mémoire. Et promis la prochaine fois je lirais toutes les réponses avant de répondre en une fois à tous le monde.

récap de mes excellents prédécesseurs :cool:
que faire lorsque la chaine numérique comporte moins de 4 chiffres ???

ex : Blablabla 123
- solution JHA : blablabla ()
- solution Papou-net : plantage :(
- ma proposition : blablabla (00)
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    55.7 KB · Affichages: 93
  • Exemple commenté GCogaulois.xlsm
    39.7 KB · Affichages: 37
  • Capture.jpg
    Capture.jpg
    55.7 KB · Affichages: 91
  • Exemple commenté GCogaulois.xlsm
    39.7 KB · Affichages: 34
  • Capture.jpg
    Capture.jpg
    55.7 KB · Affichages: 81
  • Exemple commenté GCogaulois.xlsm
    39.7 KB · Affichages: 44

Papou-net

XLDnaute Barbatruc
Re : Extraction de valeur numérique d'une chaîne.

Bonsoir le fil,

Pas de plantage chez moi, juste affichage de deux parenthèses vides. Maintenant, s'il faut afficher les deux zéros, voici, pour info, comment récupérer mon code:

Code:
Sub MacroExemple()
' cette instruction désactive le rafraîchissement d'écran pour améliorer la rapidité d'exécution
Application.ScreenUpdating = False

' toutes les références de cellules précédées d'un point s'appliquent à Feuil1, ce qui évite de sélectionner la feuille
With Feuil1

  ' cette boucle lit toutes les cellules de la colonne A qui contiennent des valeurs (attention, les formules ne sont pas prises en compte)
  For Each cel In .Range("A:A").SpecialCells(xlCellTypeConstants)
    
    ' si la cellule n'est pas vide
    If cel <> "" Then
      ' la cellule située sur la 4ème colonne à droite (E) et sur la même ligne est égale à la concaténation
      ' de la cellule en A (cel) + les chiffres de gauche de la cellule en B, formatés avec zéro à gauche
      If Len(cel.Offset(0, 1)) < 4 Then n = 0 Else n = CInt(cel.Offset(0, 1) / 1000)
      cel.Offset(0, 4) = cel & " (" & Format(n, "00") & ")"
    End If
  Next
End With

' rétablit le rafraîchissement d'écran
Application.ScreenUpdating = True
End Sub
Cordialement.
 

Modeste geedee

XLDnaute Barbatruc
Re : Extraction de valeur numérique d'une chaîne.

Bonsour®
Bonsoir le fil,

Pas de plantage chez moi, .

:rolleyes:
chez moi l'option EXPLICIT est de rigueur ... ;)

je ne doute nullement des solutions proposées ...

ce qui n'est pas le cas de la demande envoyée par GCogaulois qui elle, est insuffisamment "Explicite" ...:rolleyes:
que faire lorsque la chaine numérique comporte moins de 4 chiffres ???
 

GCogaulois

XLDnaute Nouveau
Re : Extraction de valeur numérique d'une chaîne.

Bonjour tout le monde,

Franchement un grand merci à tous, sans vous je ne serai pas arrivé au bout.

Ce problème est résolu, tout a très bien fonctionné.

Le défi que je me suis lancé avec la réalisation de cette base de données me cause beaucoup de souci. Je ne sais toujours pas si je pourrais arriver au bout, mais vos lumières et votre aide m'y encourage.

Encore une fois un grand merci.
GCogaulois.

PS : Est à moi de déclarer ce problème comme [résolu] et si oui comment dois-je procéder afin de fermer cette discussion ?
 

Papou-net

XLDnaute Barbatruc
Re : Extraction de valeur numérique d'une chaîne.

Bonjour GCogaulois,

Est à moi de déclarer ce problème comme [résolu] et si oui comment dois-je procéder afin de fermer cette discussion ?
Effectivement, c'est à toi de noter ce fil comme résolu.

Il te suffit pour celà d'éditer tyon message d'origine et d'ajouter la mention dans le titre.

A +

Cordialement.
 

Modeste geedee

XLDnaute Barbatruc
Re : Extraction de valeur numérique d'une chaîne.

Bonsour® GCogaulois
Effectivement, c'est à toi de noter ce fil comme résolu.
Il te suffit pour celà d'éditer tyon message d'origine et d'ajouter la mention dans le titre.

:rolleyes:
éventuellement aussi préciser la solution retenue ...
que faire lorsque la chaine numérique comporte moins de 4 chiffres ???
les 2 frustrés restant ne seront plus dans l'expectative ...;)
 

GCogaulois

XLDnaute Nouveau
Re : Extraction de valeur numérique d'une chaîne.

Bonjour,

Pour répondre au commentaire de geedee
Ma série de chaîne numérique ne comporte que des nombres à 4 et 5 chiffres comme le montrait les deux exemples du premier message. Désolé, pas de commentaire à ajouter !
Les différentes réponses proposées sont amplement satisfaisantes pour moi, et si je peux me permettre une petite remarque Geedee, ne compte pas sur moi pour prendre parti pour les uns ou les autres. Néophyte en la matière, mes connaissances en VBA sont beaucoup trop faibles pour que je puisse me priver de l'aide de tous, y compris la tienne sans vouloir "frustrer !!!" ton esprit de compétition ,car j'espère qu'il ne s'agit que d'un jeu entre vous !!!

Sincèrement et très respectueusement encore merci au forum !!!
GCogaulois.
 

Modeste geedee

XLDnaute Barbatruc
Re : Extraction de valeur numérique d'une chaîne.

Bonsour®
Ma série de chaîne numérique ne comporte que des nombres à 4 et 5 chiffres comme le montrait les deux exemples du premier message. Désolé, pas de commentaire à ajouter !
:rolleyes:
dans tout problème, il convient d'en exprimer les limites ...
dire alors que les deux exemples étaient exhaustifs et préciser que la chaîne numérique comporte toujours des nombres à 4 ou 5 chiffres , eu été satisfaisant...
j'espère qu'il ne s'agit que d'un jeu entre vous !!!
Sincèrement et très respectueusement encore merci au forum !!!
GCogaulois.
;) tu l'aura alors remarqué, c'est souvent le cas ...
et c'est l'émulation qui fait que l'on prend plaisir à peaufiner une proposition, ou en comparer les avantages ou inconvénients.

Après des années... d'utilisation d'Excel, il m'arrive encore de découvrir des utilisations ou trucs étonnants aussi bien de la part de néophytes que d'experts.

@+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet