Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
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 23/03/2007, 19h55   #1
Débutant
 
Inscription : novembre 2006
Messages : 1 036
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 1 036
Points : 166
Points : 166
Par défaut Code astucieux pour un String

Je chercher a récupérer les charactères qui se trouve après le deuxième $ d'un string du type $J$33. Dans cet exemple, cela donnerait 33.
Avez vous une idée astucieuse qui permet de faire cela, sans recourir aux boucles, ou aux trucs bourrains.
Merci
deubelte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 20h42   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Oui, si c'est une adresse, tu fais
Code :
No = Range("$J$33").row
Si c'est pour avoir autre chose, tu dis
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 20h46   #3
Membre éclairé
 
Inscription : octobre 2006
Messages : 390
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 390
Points : 396
Points : 396
Tu devrais pouvoir trouver ton bonheur avec Instr ou InstrRev...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
texte="11$J$33$aaa"
i = InStr(1, texte, "$", vbTextCompare)
If i > 0 Then
    i = InStr(i + 1, texte, "$", vbTextCompare)
    If i >0 Then
        MsgBox Right(texte, Len(texte) - i) ' Affiche : 33$aaa
    Else
        ' $ n'a pas été trouvé une seconde fois
    End If
Else
    ' $ n'a pas été trouvé
End If
dadavyvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 20h51   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Hello dadavyvy, y'a pas plus simple ?
Code :
1
2
3
4
5
6
7
8
Dim Texte, LeTableau()
texte="11$J$33$aaa"
LeTableau = Split(Texte,"$")
 
'Relecture
For i = 0 to Ubound(LeTableau)
     msgbox LeTableau(i)
Next
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 21h28   #5
Membre éclairé
 
Inscription : octobre 2006
Messages : 390
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 390
Points : 396
Points : 396
Oui si deubelte veut récupérer le texte entre le 2e $ et le 3e $, mais pas pour tous les caractères après le 2e $...
Mais y'a surement plus simple que ce que j'ai donné...
Ensuite, si son texte correspond a une address(True, True), ton 1er code est encore plus rapide...
dadavyvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 21h33   #6
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Non, j'ai testé et j'ai tout mais on doit déclarer
et non
Citation:
Dim Tableau()
Je mé trompé
ouskel'n'or 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 15h28.


 
 
 
 
Partenaires

Hébergement Web