Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Extraire un nombre entre paranthèse

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

I

ISOSKI

Guest
Bonjour à tous,

J'utilise une macro sur excel 2007 qui copie, classe et re-copie dans une autre feuille d'un document... et cela fonctionne très bien. Mon problème est que la macro ne copie que les cellules ayant des données. Y en a une ( cellule ) pour lequel j'aimerais trouver une façon d'extraire le nombre. La cellule a habituellement cette forme : ms (93 bpm). Moi je suis intéressé par le nombre 93.

voici la partie de la macro en question :

Sub s_810()
'S810
Dim loSheet As Excel.Worksheet
Dim lcLoc As String
Dim lrow As Long
Dim lcol As Long
Set loSheet = ActiveSheet
lrow = ActiveCell.Row
lcol = ActiveCell.Column
If Not SheetExists("tempPolar") Then
Workbooks(1).Sheets.Add
Workbooks(1).Sheets(1).Name = "tempPolar"
End If
Workbooks(1).Sheets("tempPolar").Activate
Workbooks(1).Sheets("tempPolar").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveSheet.Paste 'Dump le contenu du buffer copier du logiciel Polar.
Range("B2, B5:B22").Select
Selection.Copy 'Copier seulement les lignes qui contiennent du data
If Not SheetExists("tempPolar2") Then
Workbooks(1).Sheets.Add
Workbooks(1).Sheets(1).Name = "tempPolar2"
End If

*J'ai essayé de modifier la ligne " Range("B2, B5:B22").Select" en ajoutant la cellule en question et cela donne = "Range("B2, B5:B22, C8").Select" toutefois j'obtiens un message d'erreur car cette fonction ne copie que les data (je crois).

Merci d'avance pour les pistes de solution

Isoski
 
Re : Extraire un nombre entre paranthèse

Bonsoir le fil, ISOSKI

j'aimerais trouver une façon d'extraire le nombre. La cellule a habituellement cette forme : ms (93 bpm). Moi je suis intéressé par le nombre 93.
Si la cellule C8 = "ms (93 bpm)"
Code:
MaCelluleDestination = Val(Mid([C8], InStr([C8], "(") + 1))
- InStr([C8], "(") + 1 ' Renvoie la position du caractère "(" et ajoute 1 ==> 5
- Mid([C8], 5) ' Renvoie la chaine à partir du du 5ème élément ==> 93 bpm)
- Val("93 bpm)") ' Renvoie le nombre contenu dans la chaîne de caractère ==> 93

A plus
 
Re : Extraire un nombre entre paranthèse

Bien le Bonsoir Soenda,

et si la cellule est = ms (114 bpm) ?

J'ai testé la solution en copiant la ligne directement dans la macro sous "Range("B2, B5:B22").Select" mais cela ne me donne pas encore satisfaction. De plus la macro est en anglais, est-il possible qu'il y ait un missfit de langue ?!😕

Merci de vos efforts, je maintiens le cap en mode recherche active😉

Isoski
 
Re : Extraire un nombre entre paranthèse

Bien voila Soenda,

Le sommeil porte conseil et je crois en avoir de besoin. Je regarde cela demain ... frais et dispo car je n'y arrive pas maintenant.

Merci
A+
 
Re : Extraire un nombre entre paranthèse

Alors, la nuit doit avoir été mauvaise... je n'y arrive toujours pas. La désignation "MaCelluleDestination" doit elle être remplacée par le numéro de cellule destination ? si oui, j'ai essayé et j'obtiens toujours la même erreur. Il est possible que j'introduise la ligne à la mauvaise place et que cela en est la cause.

Sub s_810()
'S810
Dim loSheet As Excel.Worksheet
Dim lcLoc As String
Dim lrow As Long
Dim lcol As Long
Set loSheet = ActiveSheet
lrow = ActiveCell.Row
lcol = ActiveCell.Column
If Not SheetExists("tempPolar") Then
Workbooks(1).Sheets.Add
Workbooks(1).Sheets(1).Name = "tempPolar"
End If
Workbooks(1).Sheets("tempPolar").Activate
Workbooks(1).Sheets("tempPolar").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveSheet.Paste 'Dump le contenu du buffer copier du logiciel Polar.
Insertion de la ligne ici et modification de la sélection dans la ligne ci-après soit B5:B23
Range("B2, B5:B22").Select
Selection.Copy 'Copier seulement les lignes qui contiennent du data
If Not SheetExists("tempPolar2") Then
Workbooks(1).Sheets.Add
Workbooks(1).Sheets(1).Name = "tempPolar2"
End If

Si je suis dans la mauvaise direction, SVP, remettez moi en piste.

Merci d'avance

A+
 
Dernière modification par un modérateur:
Re : Extraire un nombre entre paranthèse

Re-bonjour a tous,

Premièrment Merci Soenda pour ton aide, La ligne fonctionne a merveille et j'ai ajouté ici et la dans la macro les modifs qui prennent en charge cette nouvelle valeur.

pourquoi cela ne fonctionnait pas...😡, j'avais oublié d'enlevé le ' avant la ligne, donc elle n'était pas prise en contre. J'y ai ajouté ceci :
Range("B24").Value = Val(Mid([C8], InStr([C8], "(") + 1)),

la section en gras désigne "MaCelluleDestination".

A+ et merci pour les efforts

Isoski
 
- 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

  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
1 K
Réponses
5
Affichages
936
LeSaintKebab
L
Réponses
12
Affichages
922
  • Question Question
Microsoft 365 Programme trop lent
Réponses
12
Affichages
1 K
B
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
970
bd.afaf
B
T
  • Question Question
XL pour MAC Recherche date
Réponses
5
Affichages
2 K
tdenis
T
S
Réponses
13
Affichages
2 K
Stedemart
S
T
  • Résolu(e)
XL pour MAC Target
Réponses
9
Affichages
2 K
tdenis
T
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…