Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 03/02/2010, 11h37   #1 (permalink)
Membre Confirmé
 
Date d'inscription: février 2005
Messages: 209
Envoyer un message via MSN à Zebulon777
Par défaut Récupérer les valeurs numériques d'une cellule

Bonjour tout le monde.

J'ai beau chercher, impossible de trouver ce que je veux faire.
Je m'explique.

Dans des cellules, j'ai "NB : n Cause..." et je voudrai récupérer la valeur située juste avec le "Nb :" qui peut être sur un ou plusieurs caractères, afin de pouvoir les additionner.

Merci de votre aide.
__________________
Le site Mobigeeks.FR est toujours à la recherche d'AUTEURS -> Contactez-nous.
Zebulon777 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 12h16   #2 (permalink)
Membre Expert
 
Avatar de Fvandermeulen
 
Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
Par défaut

Salut,
Une formule dans la feuille fait l'affaire, mais étant dans la zone VBA, je ne sais pas si ça va te convenir...

Voici la formule en imaginant ton exemple en A1
Code :
=MID(A1;6;SEARCH("Cause";A1)-6)*1
Si tu veux absolument du VBA, dis le on peut facilement transposer ceci en code et faire la somme...

A+
__________________
N'oubliez pas le si votre problème est solutionné.
Fvandermeulen est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 13h57   #3 (permalink)
Membre Confirmé
 
Date d'inscription: février 2005
Messages: 209
Envoyer un message via MSN à Zebulon777
Par défaut

Merci de ta réponse, mais effectivement, je cherche une solution en VBA.
__________________
Le site Mobigeeks.FR est toujours à la recherche d'AUTEURS -> Contactez-nous.
Zebulon777 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 14h07   #4 (permalink)
Membre Expert
 
Avatar de Fvandermeulen
 
Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
Par défaut

Dans ce cas, voici un code d'une discussion récente adapté à ton cas,

Code :
Sub ExtratNb()
 
Dim derLig As Long, r As Long, s As Long, LeTotal As Long
Dim Inter As Long
 
derLig = Sheets("TaFeuil").Cells(Columns(1).Cells.Count, 1).End(xlUp).Row 'Récupère le N° de la dernière ligne remplie sur base de la colonne A
 
For r = 2 To derLig 'Boucle sur toutes les lignes remplies, à partir de 2 car j'imagine qu'il y des titres
    For s = 6 To Len(Cells(r, 1)) 'boucle sur chaque caractère contenu dans la cellule, à partir du 6 ème car commence toujours par "NB : " soit 5 caractères
        If IsNumeric(Mid(Cells(r, 1), s, 1)) Then 'Vérifie si la caractère est numérique
            Inter = Inter & Mid(Cells(r, 1), s, 1) 'Concatène les caractères numérique pour extraire le nombre
        Else 'Si n'est pas numérique alors "court-circuite" la boucle sur les caractères
            LeTotal = LeTotal + Inter
            Inter = 0 'réinitialisation de la variable
            GoTo sc:
        End If
    Next s 'Passe au caractère suivant
sc:
Next r 'Passe à la ligne suivante
 
MsgBox "Le total est: " & LeTotal
 
End Sub
__________________
N'oubliez pas le si votre problème est solutionné.
Fvandermeulen est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 14h12   #5 (permalink)
Membre Confirmé
 
Date d'inscription: février 2005
Messages: 209
Envoyer un message via MSN à Zebulon777
Par défaut

Ouais, super.
Merci.

Par contre, il faut que je ne récupère QUE les nombre situé entre "Nb : " et "CAUSE" ; il ne faut surtout pas que je récupère les éventuels autres nombres contenus dans la cellule.

?
__________________
Le site Mobigeeks.FR est toujours à la recherche d'AUTEURS -> Contactez-nous.
Zebulon777 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 14h26   #6 (permalink)
Membre Expert
 
Avatar de Fvandermeulen
 
Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
Par défaut

C'est bien ce que j'avais compris, c'est pourquoi je "court-circuite" la boucle sur les caractères dès qu'il ne trouve plus de "numéric".

Tu dois juste t'assurer que le nombre commence TOUJOURS à la 6ème place.

A+
__________________
N'oubliez pas le si votre problème est solutionné.
Fvandermeulen est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 15h38   #7 (permalink)
Membre Confirmé
 
Date d'inscription: février 2005
Messages: 209
Envoyer un message via MSN à Zebulon777
Par défaut

Super, ça marche impec.
Merci beaucoup.
__________________
Le site Mobigeeks.FR est toujours à la recherche d'AUTEURS -> Contactez-nous.
Zebulon777 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 20h20.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.