Excel 2003 VBA : convertir cells Txt en Num suite à import. OCR

Le
cris col
Bonjour à tous,

Dans un tableau de x col. et x lig. importé depuis un OCR
les cellules sont toutes au format Texte mais contiennent
soit du texte, soit des chiffres, soit sont vides.

Manuellement, si je passe les cellules une par une et que
je supp. l'apostrophe en début de chq. cellule, j'obtiens
un tableau dont les chiffres sont reconnus en tant que tels.
C'est ce que je souhaite obtenir.

La Macro ci-aprés de John Walkenbach (Excelabo) se propose
d'effectuer le travail:

Sub ZapPrefixes() 'J. Walkenbach, mpep
For Each cell In ActiveSheet.UsedRange
If cell.PrefixCharacter <> "" Then
cell.Formula = cell.Formula
End If
Next cell
End Sub

Sauf que sur mon poste elle ne produit aucun effet.
Elle se deroule normalement sans erreur mais les " ' "
de début de lig. sont toujours là et les chiffres en
format texte ne sont pas reconnus comme des chiffres.

Qq. a t-il une idée pour supp. ce PrefixCharacter ?.

Merci d'avance

Cc.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #17263731
Sub test()

''Nom de la propriété Feuil dans la
'fenêtre de l'éditeur de code

With Feuil1
'Indique la plage "continue" que tu désires
C = .Range("A1:G50")
.Range("A1:A2") = C
End With
End Sub




"cris col" 48d2451e$0$14077$
Bonjour à tous,

Dans un tableau de x col. et x lig. importé depuis un OCR
les cellules sont toutes au format Texte mais contiennent
soit du texte, soit des chiffres, soit sont vides.

Manuellement, si je passe les cellules une par une et que
je supp. l'apostrophe en début de chq. cellule, j'obtiens
un tableau dont les chiffres sont reconnus en tant que tels.
C'est ce que je souhaite obtenir.

La Macro ci-aprés de John Walkenbach (Excelabo) se propose
d'effectuer le travail:

Sub ZapPrefixes() 'J. Walkenbach, mpep
For Each cell In ActiveSheet.UsedRange
If cell.PrefixCharacter <> "" Then
cell.Formula = cell.Formula
End If
Next cell
End Sub

Sauf que sur mon poste elle ne produit aucun effet.
Elle se deroule normalement sans erreur mais les " ' "
de début de lig. sont toujours là et les chiffres en
format texte ne sont pas reconnus comme des chiffres.

Qq. a t-il une idée pour supp. ce PrefixCharacter ?.

Merci d'avance

Cc.
cris col
Le #17274531
Bonjour,
Merci pour coup de main mais le resultat est le même qu'avec
la macro d'Excelabo. Le job ne se fait pas.

L'OCR fournit un fichier avec des points pour separer les milliers,
une virgule pour les decimales et les chiffres entiers n'en ont pas.

La macro qui marche (remplacement, retraitement, re-format) fait
25 lignes. Je trouvais + elegant et plus simple la suppression
du PrefixCaractere. (comme à la main..)

En fait c'était juste pour ameliorer le code. Merci quand même.

Cc.


"michdenis" OTS$
Sub test()

''Nom de la propriété Feuil dans la
'fenêtre de l'éditeur de code

With Feuil1
'Indique la plage "continue" que tu désires
C = .Range("A1:G50")
.Range("A1:A2") = C
End With
End Sub




"cris col" 48d2451e$0$14077$
Bonjour à tous,

Dans un tableau de x col. et x lig. importé depuis un OCR
les cellules sont toutes au format Texte mais contiennent
soit du texte, soit des chiffres, soit sont vides.

Manuellement, si je passe les cellules une par une et que
je supp. l'apostrophe en début de chq. cellule, j'obtiens
un tableau dont les chiffres sont reconnus en tant que tels.
C'est ce que je souhaite obtenir.

La Macro ci-aprés de John Walkenbach (Excelabo) se propose
d'effectuer le travail:

Sub ZapPrefixes() 'J. Walkenbach, mpep
For Each cell In ActiveSheet.UsedRange
If cell.PrefixCharacter <> "" Then
cell.Formula = cell.Formula
End If
Next cell
End Sub

Sauf que sur mon poste elle ne produit aucun effet.
Elle se deroule normalement sans erreur mais les " ' "
de début de lig. sont toujours là et les chiffres en
format texte ne sont pas reconnus comme des chiffres.

Qq. a t-il une idée pour supp. ce PrefixCharacter ?.

Merci d'avance

Cc.




michdenis
Le #17275861
Place à cette adresse "cjoint.com" un petit bout de ton classeur
et publie ici l'adresse où il se retrouvera.



"cris col" 48d3c581$0$11550$
Bonjour,
Merci pour coup de main mais le resultat est le même qu'avec
la macro d'Excelabo. Le job ne se fait pas.

L'OCR fournit un fichier avec des points pour separer les milliers,
une virgule pour les decimales et les chiffres entiers n'en ont pas.

La macro qui marche (remplacement, retraitement, re-format) fait
25 lignes. Je trouvais + elegant et plus simple la suppression
du PrefixCaractere. (comme à la main..)

En fait c'était juste pour ameliorer le code. Merci quand même.

Cc.


"michdenis" OTS$
Sub test()

''Nom de la propriété Feuil dans la
'fenêtre de l'éditeur de code

With Feuil1
'Indique la plage "continue" que tu désires
C = .Range("A1:G50")
.Range("A1:A2") = C
End With
End Sub




"cris col" 48d2451e$0$14077$
Bonjour à tous,

Dans un tableau de x col. et x lig. importé depuis un OCR
les cellules sont toutes au format Texte mais contiennent
soit du texte, soit des chiffres, soit sont vides.

Manuellement, si je passe les cellules une par une et que
je supp. l'apostrophe en début de chq. cellule, j'obtiens
un tableau dont les chiffres sont reconnus en tant que tels.
C'est ce que je souhaite obtenir.

La Macro ci-aprés de John Walkenbach (Excelabo) se propose
d'effectuer le travail:

Sub ZapPrefixes() 'J. Walkenbach, mpep
For Each cell In ActiveSheet.UsedRange
If cell.PrefixCharacter <> "" Then
cell.Formula = cell.Formula
End If
Next cell
End Sub

Sauf que sur mon poste elle ne produit aucun effet.
Elle se deroule normalement sans erreur mais les " ' "
de début de lig. sont toujours là et les chiffres en
format texte ne sont pas reconnus comme des chiffres.

Qq. a t-il une idée pour supp. ce PrefixCharacter ?.

Merci d'avance

Cc.




cris col
Le #17279681
Bonjour à tous,
ci-joint l'adresse d'un petit bout de fichier.
Il n'y a vraiment pas d'urgence.
C'était juste pour progresser un peu en VBA.

http://cjoint.com/?jujQraxbfL

Bon W.E

Cc.


"michdenis" %
Place à cette adresse "cjoint.com" un petit bout de ton classeur
et publie ici l'adresse où il se retrouvera.



"cris col" 48d3c581$0$11550$
Bonjour,
Merci pour coup de main mais le resultat est le même qu'avec
la macro d'Excelabo. Le job ne se fait pas.

L'OCR fournit un fichier avec des points pour separer les milliers,
une virgule pour les decimales et les chiffres entiers n'en ont pas.

La macro qui marche (remplacement, retraitement, re-format) fait
25 lignes. Je trouvais + elegant et plus simple la suppression
du PrefixCaractere. (comme à la main..)

En fait c'était juste pour ameliorer le code. Merci quand même.

Cc.


"michdenis" OTS$
Sub test()

''Nom de la propriété Feuil dans la
'fenêtre de l'éditeur de code

With Feuil1
'Indique la plage "continue" que tu désires
C = .Range("A1:G50")
.Range("A1:A2") = C
End With
End Sub




"cris col" 48d2451e$0$14077$
Bonjour à tous,

Dans un tableau de x col. et x lig. importé depuis un OCR
les cellules sont toutes au format Texte mais contiennent
soit du texte, soit des chiffres, soit sont vides.

Manuellement, si je passe les cellules une par une et que
je supp. l'apostrophe en début de chq. cellule, j'obtiens
un tableau dont les chiffres sont reconnus en tant que tels.
C'est ce que je souhaite obtenir.

La Macro ci-aprés de John Walkenbach (Excelabo) se propose
d'effectuer le travail:

Sub ZapPrefixes() 'J. Walkenbach, mpep
For Each cell In ActiveSheet.UsedRange
If cell.PrefixCharacter <> "" Then
cell.Formula = cell.Formula
End If
Next cell
End Sub

Sauf que sur mon poste elle ne produit aucun effet.
Elle se deroule normalement sans erreur mais les " ' "
de début de lig. sont toujours là et les chiffres en
format texte ne sont pas reconnus comme des chiffres.

Qq. a t-il une idée pour supp. ce PrefixCharacter ?.

Merci d'avance

Cc.








michdenis
Le #17282051
retour de ton fichier avec traitement : http://cjoint.com/?jun6dOJyK3



"cris col" 48d4aa52$0$23586$
Bonjour à tous,
ci-joint l'adresse d'un petit bout de fichier.
Il n'y a vraiment pas d'urgence.
C'était juste pour progresser un peu en VBA.

http://cjoint.com/?jujQraxbfL

Bon W.E

Cc.


"michdenis" %
Place à cette adresse "cjoint.com" un petit bout de ton classeur
et publie ici l'adresse où il se retrouvera.



"cris col" 48d3c581$0$11550$
Bonjour,
Merci pour coup de main mais le resultat est le même qu'avec
la macro d'Excelabo. Le job ne se fait pas.

L'OCR fournit un fichier avec des points pour separer les milliers,
une virgule pour les decimales et les chiffres entiers n'en ont pas.

La macro qui marche (remplacement, retraitement, re-format) fait
25 lignes. Je trouvais + elegant et plus simple la suppression
du PrefixCaractere. (comme à la main..)

En fait c'était juste pour ameliorer le code. Merci quand même.

Cc.


"michdenis" OTS$
Sub test()

''Nom de la propriété Feuil dans la
'fenêtre de l'éditeur de code

With Feuil1
'Indique la plage "continue" que tu désires
C = .Range("A1:G50")
.Range("A1:A2") = C
End With
End Sub




"cris col" 48d2451e$0$14077$
Bonjour à tous,

Dans un tableau de x col. et x lig. importé depuis un OCR
les cellules sont toutes au format Texte mais contiennent
soit du texte, soit des chiffres, soit sont vides.

Manuellement, si je passe les cellules une par une et que
je supp. l'apostrophe en début de chq. cellule, j'obtiens
un tableau dont les chiffres sont reconnus en tant que tels.
C'est ce que je souhaite obtenir.

La Macro ci-aprés de John Walkenbach (Excelabo) se propose
d'effectuer le travail:

Sub ZapPrefixes() 'J. Walkenbach, mpep
For Each cell In ActiveSheet.UsedRange
If cell.PrefixCharacter <> "" Then
cell.Formula = cell.Formula
End If
Next cell
End Sub

Sauf que sur mon poste elle ne produit aucun effet.
Elle se deroule normalement sans erreur mais les " ' "
de début de lig. sont toujours là et les chiffres en
format texte ne sont pas reconnus comme des chiffres.

Qq. a t-il une idée pour supp. ce PrefixCharacter ?.

Merci d'avance

Cc.








michdenis
Le #17283071
La procédure pourrait se résumer à ceci :

'-----------------------------
Sub TEST()
Dim C As Range
On Error Resume Next
With Feuil1
For Each C In .Range("B:C").Columns
With C
.TextToColumns Destination:=C.Cells(1, 1), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:úlse, _
Semicolon:úlse, Comma:úlse, Space:úlse, _
Other:úlse, FieldInfo:=Array(1, 1), _
ThousandsSeparator:=".", TrailingMinusNumbers:=True
With .SpecialCells(xlCellTypeConstants, xlNumbers)
.NumberFormat = "# ##0.00"
.HorizontalAlignment = xlRight
End With
End With
Next
End With
End Sub
'-----------------------------





"cris col" 48d4aa52$0$23586$
Bonjour à tous,
ci-joint l'adresse d'un petit bout de fichier.
Il n'y a vraiment pas d'urgence.
C'était juste pour progresser un peu en VBA.

http://cjoint.com/?jujQraxbfL

Bon W.E

Cc.


"michdenis" %
Place à cette adresse "cjoint.com" un petit bout de ton classeur
et publie ici l'adresse où il se retrouvera.



"cris col" 48d3c581$0$11550$
Bonjour,
Merci pour coup de main mais le resultat est le même qu'avec
la macro d'Excelabo. Le job ne se fait pas.

L'OCR fournit un fichier avec des points pour separer les milliers,
une virgule pour les decimales et les chiffres entiers n'en ont pas.

La macro qui marche (remplacement, retraitement, re-format) fait
25 lignes. Je trouvais + elegant et plus simple la suppression
du PrefixCaractere. (comme à la main..)

En fait c'était juste pour ameliorer le code. Merci quand même.

Cc.


"michdenis" OTS$
Sub test()

''Nom de la propriété Feuil dans la
'fenêtre de l'éditeur de code

With Feuil1
'Indique la plage "continue" que tu désires
C = .Range("A1:G50")
.Range("A1:A2") = C
End With
End Sub




"cris col" 48d2451e$0$14077$
Bonjour à tous,

Dans un tableau de x col. et x lig. importé depuis un OCR
les cellules sont toutes au format Texte mais contiennent
soit du texte, soit des chiffres, soit sont vides.

Manuellement, si je passe les cellules une par une et que
je supp. l'apostrophe en début de chq. cellule, j'obtiens
un tableau dont les chiffres sont reconnus en tant que tels.
C'est ce que je souhaite obtenir.

La Macro ci-aprés de John Walkenbach (Excelabo) se propose
d'effectuer le travail:

Sub ZapPrefixes() 'J. Walkenbach, mpep
For Each cell In ActiveSheet.UsedRange
If cell.PrefixCharacter <> "" Then
cell.Formula = cell.Formula
End If
Next cell
End Sub

Sauf que sur mon poste elle ne produit aucun effet.
Elle se deroule normalement sans erreur mais les " ' "
de début de lig. sont toujours là et les chiffres en
format texte ne sont pas reconnus comme des chiffres.

Qq. a t-il une idée pour supp. ce PrefixCharacter ?.

Merci d'avance

Cc.








cris col
Le #17299101
Bonjour,

Belle et profitable leçon sur les 'formats' qui n'est pas encore
vraiment assimilée. Je n'est pas compris tous les arguments de la
fonction 'TextToColumns'. La doc. Excel est peu explicite.

Le scanner que j'utilise est une grosse machine automatique d'archivage
(à laquelle je n'ai accès qu'en tant qu'utilisateur) n'est pas trés
constante ds sa façon de -régurgiter- les données.
Ou peut être l'OCR...

Je n'ai pas réussi a adapter le code au fichier ci-joint.

http://cjoint.com/?jwmvyopkxn

Merci encore.
michdenis
Le #17300601
Si le travail se fait à l'aide d'une "machine" dont tu n'as pas
le contrôle et qui n'est pas constante lors du transfer de data
il devient très difficile de faire une procédure qui pourrait
traité tous les cas....

Pour ton fichier exemple, ceci serait suffisant :

'------------------------
Sub test()
Range("B8:C21").Replace ",", ""
End Sub
'------------------------

Pour moi, c'était ma dernière intervention sur ce fil.




"cris col" 48d77246$0$6976$
Bonjour,

Belle et profitable leçon sur les 'formats' qui n'est pas encore
vraiment assimilée. Je n'est pas compris tous les arguments de la
fonction 'TextToColumns'. La doc. Excel est peu explicite.

Le scanner que j'utilise est une grosse machine automatique d'archivage
(à laquelle je n'ai accès qu'en tant qu'utilisateur) n'est pas trés
constante ds sa façon de -régurgiter- les données.
Ou peut être l'OCR...

Je n'ai pas réussi a adapter le code au fichier ci-joint.

http://cjoint.com/?jwmvyopkxn

Merci encore.
cris col
Le #17300571
Merci pour tout.
Cc.
Publicité
Poster une réponse
Anonyme