Fonction vba de reconnaissance de caractères
Fermé
adam.pierson
Messages postés
23
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
17 janvier 2007
-
27 févr. 2006 à 13:15
blackrock - 27 déc. 2008 à 13:26
blackrock - 27 déc. 2008 à 13:26
A voir également:
- Fonction vba de reconnaissance de caractères
- Fonction si et - Guide
- Caractères ascii - Guide
- Caractères spéciaux clavier azerty - Guide
- Reconnaissance musique en ligne sans télécharger - Guide
- Exemple de mot de passe à 8 caractères - Guide
5 réponses
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
27 févr. 2006 à 13:25
27 févr. 2006 à 13:25
J'ai cherché sans succès un moyen de savoir si une chaine de caractère est numérique...
Je pense que le plus simple est d'utiliser une condition du type:
If Left(Tonchamp,4)>O Then
TonChamp=TonChamp
Else
TonChamp = "0000"& Right(TonChamp),Len(TonChamp)-4)
End If
Je pense que le plus simple est d'utiliser une condition du type:
If Left(Tonchamp,4)>O Then
TonChamp=TonChamp
Else
TonChamp = "0000"& Right(TonChamp),Len(TonChamp)-4)
End If
Armojax
Messages postés
1860
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
2 octobre 2024
1 528
27 févr. 2006 à 13:48
27 févr. 2006 à 13:48
Hello,
Je suppose que si ta chaine commence par moins de 4 caractères numériques il faut s'arranger pour qu'il y en ait au moins 4, en ajoutant les zéros nécessaires.
Tu peux essayer cette fonction :
Je suppose que si ta chaine commence par moins de 4 caractères numériques il faut s'arranger pour qu'il y en ait au moins 4, en ajoutant les zéros nécessaires.
Tu peux essayer cette fonction :
Function INSNUM(Chaine) INSNUM = Chaine If Not IsNumeric(Left(Chaine, 1)) Then INSNUM = "0000" & Chaine ElseIf Not IsNumeric(Left(Chaine, 2)) Then INSNUM = "000" & Chaine ElseIf Not IsNumeric(Left(Chaine, 3)) Then INSNUM = "00" & Chaine ElseIf Not IsNumeric(Left(Chaine, 4)) Then INSNUM = "0" & Chaine End If End Function
adam.pierson
Messages postés
23
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
17 janvier 2007
7
27 févr. 2006 à 14:14
27 févr. 2006 à 14:14
Excuse moi de te déranger.
Voilà la macro que j'ai faite à partir de ton code.
Sub test()
Chaine = ActiveCell.FormulaR1C1
MsgBox Chaine
ActiveCell.Offset(0, 1).Select
Call INSNUM(Chaine)
End Sub
Function INSNUM(Chaine)
INSNUM = ActiveCell.FormulaR1C1
If Not IsNumeric(Left(Chaine, 1)) Then
INSNUM = "0000" & Chaine
ElseIf Not IsNumeric(Left(Chaine, 2)) Then
INSNUM = "000" & Chaine
ElseIf Not IsNumeric(Left(Chaine, 3)) Then
INSNUM = "00" & Chaine
ElseIf Not IsNumeric(Left(Chaine, 4)) Then
INSNUM = "0" & Chaine
ActiveCell.FormulaR1C1 = INSNUM
End If
End Function
Mais ça ne marche pas. Je suis désolé mais je suis pas un pro du VBA. Peux tu me la corriger STP. D'avance merci
Voilà la macro que j'ai faite à partir de ton code.
Sub test()
Chaine = ActiveCell.FormulaR1C1
MsgBox Chaine
ActiveCell.Offset(0, 1).Select
Call INSNUM(Chaine)
End Sub
Function INSNUM(Chaine)
INSNUM = ActiveCell.FormulaR1C1
If Not IsNumeric(Left(Chaine, 1)) Then
INSNUM = "0000" & Chaine
ElseIf Not IsNumeric(Left(Chaine, 2)) Then
INSNUM = "000" & Chaine
ElseIf Not IsNumeric(Left(Chaine, 3)) Then
INSNUM = "00" & Chaine
ElseIf Not IsNumeric(Left(Chaine, 4)) Then
INSNUM = "0" & Chaine
ActiveCell.FormulaR1C1 = INSNUM
End If
End Function
Mais ça ne marche pas. Je suis désolé mais je suis pas un pro du VBA. Peux tu me la corriger STP. D'avance merci
Armojax
Messages postés
1860
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
2 octobre 2024
1 528
>
adam.pierson
Messages postés
23
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
17 janvier 2007
27 févr. 2006 à 14:20
27 févr. 2006 à 14:20
Non, non, plus simple...
Tu copies la macro Function telle quelle dans un module VBA de ton classeur.
Ensuite tu l'utilises comme une fonction Excel standard.
Par exemple, si tu as ta chaine en A1, tu peux écrire dans une autre cellule :
=INSNUM(A1)
qui te donnera le résultat.
Tu copies la macro Function telle quelle dans un module VBA de ton classeur.
Ensuite tu l'utilises comme une fonction Excel standard.
Par exemple, si tu as ta chaine en A1, tu peux écrire dans une autre cellule :
=INSNUM(A1)
qui te donnera le résultat.
adam.pierson
Messages postés
23
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
17 janvier 2007
7
27 févr. 2006 à 13:57
27 févr. 2006 à 13:57
C'est sympa de m'avoir répondu.
Je vais tester les fonctions et je vous dit ce qu'il en est.
En tous cas merci
Je vais tester les fonctions et je vous dit ce qu'il en est.
En tous cas merci
adam.pierson
Messages postés
23
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
17 janvier 2007
7
27 févr. 2006 à 15:00
27 févr. 2006 à 15:00
C'est génial. Merci beaucoup
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question