manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008
-
29 janv. 2008 à 09:22
manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008
-
29 janv. 2008 à 13:57
bonjour je cherche à executer se genre de fonction (ci-dessous)mais cela ne fonctionne pas.
Je souhaite rechercher dans la chaine requete1 un chiffre qui peut etre compris entre 1 et 999, c'est sur cet argument que se porte le problème.
iLocateSecond = InStr(i, requete1, [1-999], 1)
Je ne sais pas si c'est comme cela qu'il faut exprimer cette condition.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 29 janv. 2008 à 12:09
Bon....
On va "tricoter" avec ce que tu m'as exposé (en espérant que tu as bien tout vu) ...
Vois ceci :
Private Sub Command1_Click()
Dim toto As String
toto = "2 ETG APP 42"
decortique toto
toto = "APP 1 ETG 1"
decortique toto
toto = "APP 18 4eme ETG"
decortique toto
toto = "Ap 518"
decortique toto
toto = "ETG 3 APT 56"
decortique toto
toto = "Appartement 3 2ème étage"
decortique toto
End Sub
Private Sub decortique(toto As String)
titi = Split(toto, " ")
For i = 0 To UBound(titi)
If LCase(Left(titi(i), 3)) Like "ap*" Then
If IsNumeric(titi(i + 1)) Then
apt = (titi(i + 1))
titi(i + 1) = ""
Exit For
End If
End If
Next
For i = 0 To UBound(titi)
If Val(titi(i)) > 0 Then
et = Val(titi(i))
Exit For
End If
Next
MsgBox "Appartement " & apt & vbCrLf & "Etage " & et
End Sub
manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008 29 janv. 2008 à 09:40
ok mes chaine sont de taille variable par exemple :
2 ETG APP 42
APP 1 ETG 1
APP 18 4eme ETG
APP 518
se que je veut dans ces différente donnée ces récupérer dans un premier temps le numéro de l'appartement et dans un second temps celui de l'Etage.
Jespere que c'est plus clair comme sa.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 29 janv. 2008 à 10:10
Je craignais ce genre de choses (différences de formes ....).
Bon :
If va donc te falloir procéder en 2 temps :
ainsi, par exemple :
Private Sub Command1_Click()
titi = "APP 18 4eme ETG "
toto = titi
Dim apt As Integer, et As Integer
For i = 1 To Len(toto)
If IsNumeric(Mid(toto, i, 1)) Then pos1 = i
If pos1 > 0 And Not IsNumeric(Mid(toto, i, 1)) Then
et = Val(Mid(toto, pos1 + 1, i))
toto = Left(titi, pos1)
Exit For
End If
Next
For i = 1 To Len(toto)
If IsNumeric(Mid(toto, i, 1)) Then
apt = Val(Mid(toto, i - 1))
End If
Next
MsgBox "étage " & et & " - appartement " & apt
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 29 janv. 2008 à 11:39
Ouias...
Un coup l'étage devant, un coup l'étage derrière, un coup 4ème étage, un coup ET 4, un coup ETG etc...
Voilà qui rend les choses plutôt difficiles (plus de raison certaine...)
Nous allons donc (j'ai un peu plus de temps ...) procéder autrement...pour nous donner les plus grandes chances d'aboutir.
Je reviens...
Mais toi, de ton côté, recense s'il te plait toutes les formes que tu as dans tes données pour désigner un appartement (ex App, Apt, Appartement, etc...) car je vais appuyer ma démarche sur cette forme là !!!! (pas moyen de faire autrement !!!)
manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008 29 janv. 2008 à 11:47
oui je suis d'accord avec toi c relou d'avoir plein de facon différente de nommée les données
ca fait une semaine que je cherche comment traiter ses données.
J'ai penser tout mettre en majuscule (ou minuscule) se qui permet de reduire le nombre d'occurence que j'ai ressencer je pense que c'est une bonne idée?
APPARTEMENT
APPART
AP
APPAT
APP
APPT
APT
APTE
rien que sa!!!
Je te dit le bordel.
merci de ton aide
-------
Manhino
-------
manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008 29 janv. 2008 à 13:42
j'ai un petit probleme car lorsque je veut excuter decortique toto cela me met un message d'erreur
"un appel de fonction dans la partie gauche de l'affectation doit renvoyer Variant ou object"