GNT sans publicité, site mobile, fonctionnalitées exclusives...

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é
Lire les 6 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #2578361
bonjour René,

que veut tu récupérer de 1234-a1-18-3
1234
ou bien
1183
?

isabelle



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
1234-a1-18-3

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é




JeanPasse
Le #2578211
Merci de regarder mes questions

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:

bonjour René,

que veut tu récupérer de 1234-a1-18-3
1234
ou bien
1183
?

isabelle



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
1234-a1-18-3

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é





isabelle
Le #2566091
bonjour René,

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


Merci de regarder mes questions

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:


bonjour René,

que veut tu récupérer de 1234-a1-18-3
1234
ou bien
1183
?

isabelle




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


1234-a1-18-3

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é









Damien Kergosien
Le #2566071
Bonsoir JeanPasse

avec la chaine à tester en A1, ceci suffit :
IsNumeric(Left$(Range("A1").Value, 4))

Damien

Merci de regarder mes questions

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:

bonjour René,

que veut tu récupérer de 1234-a1-18-3
1234
ou bien
1183
?

isabelle



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
1234-a1-18-3

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é







JeanPasse
Le #2565841
Merci à vous deux

IsNumeric
c'est vraiment plus simple. Je regarde ceal ce soir.

René

"Damien Kergosien"
Bonsoir JeanPasse

avec la chaine à tester en A1, ceci suffit :
IsNumeric(Left$(Range("A1").Value, 4))

Damien

Merci de regarder mes questions

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) i, 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:

bonjour René,

que veut tu récupérer de 1234-a1-18-3
1234
ou bien
1183
?

isabelle



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
1234-a1-18-3

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é











Publicité
Suivre les réponses
Poster une réponse
Anonyme