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 20/12/2011, 15h30   #1
Invité régulier
 
Inscription : juillet 2005
Messages : 32
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 32
Points : 9
Points : 9
Par défaut PB : Extraction chaine de caractères

Bonjour à tous,

Voici mon problème:
J'ai une formule ( ex: SOMME(X:Y) ) que j'ai récupéré dans le code

Code :
formule = Cells(row,col).FormulaLocal
Est-il possible d'extraire la partie ":Y" juste après le 'X' et avant ')' ? sachant qu'on ne connait pas la longueur entre le ':' et le ')' , on ne connait pas la longueur de X

Faut-il passer par les fonctions Mid,etc.... ? Ou y a t il un moyen plus effice avec les expresssions reg ?

Merci de vos suggestions ,liens,etc...

Chaser_T


PS: Etant que fonctionel métier, je ne comprend rien à VB. Cela fait 2 jours que j'apprends VB et que je galère
chaser_T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 15h34   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Tu peux t'en sortir avec du Mid et du InStr. Regarde la doc dessus et reviens si tu as un problème de compréhension.

Par contre par curiosité, pourquoi tu dois faire ça ? Ça me parait super bizarre j'avoue. Normalement, tu maîtrises ce que tu avais mis dans ta formule non ?
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 15h50   #3
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Pour ta formule donnée en exemple (=SOMME(X:Y))
Code :
1
2
3
4
5
6
Dim Formule As String, Y As String
 
Formule = "=SOMME(AB125:AC1256)"
Y = Split(Formule, ":")(1)
Y = Left(Y, InStr(Y, ")") - 1)
MsgBox Y
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/12/2011, 16h43   #4
Invité régulier
 
Inscription : juillet 2005
Messages : 32
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 32
Points : 9
Points : 9
Merci pour vos réponse.

ZebreLoup

La formule sera généré par une fonction et sera en fonction de la ligne. Car en faite, j'essaye de réécrire la méthode insertion d'une ligne mais personnalisé ( des cellules avec des valeurs, formules par défaut qui doit prendre en compte à quel niveau la ligne a été inséré "arborescence" et mettre à jour les formules des lignes de niveau supérieur)

Merci Mercator, je vais tester ton code.
chaser_T 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 +2. Il est actuellement 20h35.


 
 
 
 
Partenaires

Hébergement Web