Seulement des chiffres
Le
JeanPasse
Bonjour
Je patauge avec des IF et des FOR alors qu'il doit exister de méthodes
simples
En VBA, Excel 97, Windows X
For photo = 1 To Range("C6").Value
tx = Range("A9").Offset(photo, 0).Value
separe1 = InStr(5, tx, "_")
Range("C9").Offset(photo, 0).Select
Selection.NumberFormat = "@"
Selection.Value = Mid(tx, 6, separe1 - 6)
Next
En C10 débute une colonne contenant parfois 4 chiffres, parfois des entrées
comme 1234-a1-18-3
Les 4 chiffres s'écrivent à droite, les autres à gauche comme du texte.
C6 contient le nombre de photos ou de ligne dans la colonne)
Ma question :
Je désire tester que les 4 caractères de gauche sont des chiffres - je
m'embrouille
Résultat : Oui, je continu. Non, ERREUR j'arrête pour une correction
manuelle.
Question secondaire : Comment formater à gauche directement dans une ligne
comme
Range("C9").Offset(photo, 0).Value = Mid(tx, 6, separe1 - 6)
Je pensais que Mid aurait défini une chaine de caractères même s'il s'agit
de 4 chiffres.
Merci pour vos conseils
René
Je patauge avec des IF et des FOR alors qu'il doit exister de méthodes
simples
En VBA, Excel 97, Windows X
For photo = 1 To Range("C6").Value
tx = Range("A9").Offset(photo, 0).Value
separe1 = InStr(5, tx, "_")
Range("C9").Offset(photo, 0).Select
Selection.NumberFormat = "@"
Selection.Value = Mid(tx, 6, separe1 - 6)
Next
En C10 débute une colonne contenant parfois 4 chiffres, parfois des entrées
comme 1234-a1-18-3
Les 4 chiffres s'écrivent à droite, les autres à gauche comme du texte.
C6 contient le nombre de photos ou de ligne dans la colonne)
Ma question :
Je désire tester que les 4 caractères de gauche sont des chiffres - je
m'embrouille
Résultat : Oui, je continu. Non, ERREUR j'arrête pour une correction
manuelle.
Question secondaire : Comment formater à gauche directement dans une ligne
comme
Range("C9").Offset(photo, 0).Value = Mid(tx, 6, separe1 - 6)
Je pensais que Mid aurait défini une chaine de caractères même s'il s'agit
de 4 chiffres.
Merci pour vos conseils
René

Poser une question


que veut tu récupérer de 1234-a1-18-3
1234
ou bien
1183
?
isabelle
je veux tester seulement les 4 de gauche 1234
Pour le moment j'ai trouvé ceci:
For i = 1 To 4
If (Mid(Selection.Value, i, 1) 1) > Chr(58)) Then GoTo trouvepasChiffre
Next
J'ai essayé avec
If Not (InStr("0123456789", Mid(Selection.Value, i, 1), 2)) Then GoTo
trouvepasChiffre
mais il y a quelque chose que je n'ai pas compris. Ca ne marche pas.
René
"isabelle" a écrit dans le message de news:
j'ai fait le tes avec,
1234-1-2-5-y
12k4-1-2-5-y
For i = 1 To 2
On Error Resume Next
x = Left(Range("A" & i), 4)
For y = 1 To 4
If IsNumeric(y) Then c = c + 1
Next
If c = 4 Then MsgBox "c'est un chiffre"
Next
isabelle
avec la chaine à tester en A1, ceci suffit :
IsNumeric(Left$(Range("A1").Value, 4))
Damien
IsNumeric
c'est vraiment plus simple. Je regarde ceal ce soir.
René
"Damien Kergosien"