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
Membre du Club
 
Inscription : février 2005
Messages : 356
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 356
Points : 61
Points : 61
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.
__________________
Zeb'...
Zebulon777 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2010, 12h16   #2
Membre Expert
 
Avatar de Fvandermeulen
 
Frédéric Vandermeulen
Inscription : juillet 2007
Messages : 1 716
Détails du profil
Informations personnelles :
Nom : Frédéric Vandermeulen
Âge : 36
Localisation : Belgique

Informations forums :
Inscription : juillet 2007
Messages : 1 716
Points : 2 108
Points : 2 108
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 00
Vieux 03/02/2010, 13h57   #3
Membre du Club
 
Inscription : février 2005
Messages : 356
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 356
Points : 61
Points : 61
Envoyer un message via MSN à Zebulon777
Merci de ta réponse, mais effectivement, je cherche une solution en VBA.
__________________
Zeb'...
Zebulon777 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2010, 14h07   #4
Membre Expert
 
Avatar de Fvandermeulen
 
Frédéric Vandermeulen
Inscription : juillet 2007
Messages : 1 716
Détails du profil
Informations personnelles :
Nom : Frédéric Vandermeulen
Âge : 36
Localisation : Belgique

Informations forums :
Inscription : juillet 2007
Messages : 1 716
Points : 2 108
Points : 2 108
Dans ce cas, voici un code d'une discussion récente adapté à ton cas,

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 00
Vieux 03/02/2010, 14h12   #5
Membre du Club
 
Inscription : février 2005
Messages : 356
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 356
Points : 61
Points : 61
Envoyer un message via MSN à Zebulon777
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.

?
__________________
Zeb'...
Zebulon777 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2010, 14h26   #6
Membre Expert
 
Avatar de Fvandermeulen
 
Frédéric Vandermeulen
Inscription : juillet 2007
Messages : 1 716
Détails du profil
Informations personnelles :
Nom : Frédéric Vandermeulen
Âge : 36
Localisation : Belgique

Informations forums :
Inscription : juillet 2007
Messages : 1 716
Points : 2 108
Points : 2 108
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 00
Vieux 03/02/2010, 15h38   #7
Membre du Club
 
Inscription : février 2005
Messages : 356
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 356
Points : 61
Points : 61
Envoyer un message via MSN à Zebulon777
Super, ça marche impec.
Merci beaucoup.
__________________
Zeb'...
Zebulon777 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 14h54.


 
 
 
 
Partenaires

Hébergement Web