Fonction vba de reconnaissance de caractères
adam.pierson
Messages postés
23
Statut
Membre
-
blackrock -
blackrock -
Bonjour à tous
J'ai besoin de gros pros comme vous pour une fonction simple.
Je recherche une fonction excel ou vba !
J'ai une liste de références en colonne A. Je voudrais une fonction qui fasse que si les 4 premiers caractères ne sont pas des nombres, il insère des 0 pour que les 4 premiers caractères soient des nombres.
Quelqu'un a t il une idée SVP ?
Merci d'avance
J'ai besoin de gros pros comme vous pour une fonction simple.
Je recherche une fonction excel ou vba !
J'ai une liste de références en colonne A. Je voudrais une fonction qui fasse que si les 4 premiers caractères ne sont pas des nombres, il insère des 0 pour que les 4 premiers caractères soient des nombres.
Quelqu'un a t il une idée SVP ?
Merci d'avance
5 réponses
-
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 -
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 :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
-
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
-
-
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 -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
j'ai une colonne dans laquelle je voudrais qu'une fonction vba sous excel reconnaissance les termes similaires ( des mots ) en comparant les 4 premiers caractères de chaque mots, pour ensuite appliquer à la colonne d'à côté un nombre identique pour chaque terme similaire.
Merci.