Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

9 réponses
Avatar
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.

9 réponses

Avatar
michdenis
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" a écrit dans le message de news:
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.
Avatar
cris col
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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.




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



"cris col" a écrit dans le message de news:
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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.




Avatar
cris col
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" a écrit dans le message de news:
%
Place à cette adresse "cjoint.com" un petit bout de ton classeur
et publie ici l'adresse où il se retrouvera.



"cris col" a écrit dans le message de news:
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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.








Avatar
michdenis
retour de ton fichier avec traitement : http://cjoint.com/?jun6dOJyK3



"cris col" a écrit dans le message de news:
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" a écrit dans le message de news:
%
Place à cette adresse "cjoint.com" un petit bout de ton classeur
et publie ici l'adresse où il se retrouvera.



"cris col" a écrit dans le message de news:
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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.








Avatar
michdenis
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" a écrit dans le message de news:
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" a écrit dans le message de news:
%
Place à cette adresse "cjoint.com" un petit bout de ton classeur
et publie ici l'adresse où il se retrouvera.



"cris col" a écrit dans le message de news:
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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.








Avatar
cris col
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.
Avatar
michdenis
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" a écrit dans le message de news:
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.
Avatar
cris col
Merci pour tout.
Cc.