Chiffre en format texte

Fab117

XLDnaute Impliqué
Salut,
J'ai encore une question sur l'extraction de donnée.

Ma macro doit rechercher un chiffre dans une base de donnée. Une fois trouvé, elle doit faire une action.

If NumeroAProduire = NumeroDeVrac Then

Le problème est que aussi bien dans le fichier initial que dans la base de donné, le nombre peut être en format nombre ou en format texte => pour lui

1000 en format texte n'est pas égal à 1000 en format nombre.

Quelqu'un sait-il quelle ligne de code je pourrais utiliser initialement (au tout début de ma macro) pour qu'il me formatte tous les chiffre du fichier initial et de la base de donnée en format chiffre ?

Merci.

Fab
 

Tibo

XLDnaute Barbatruc
Re : Chiffre en format texte

Bonjour à tous,

Peut-être un problème de séparateur des milliers avec un espace insécable.

Dans ce cas, remplacer les espaces ayant un code 160 par rien.

Par formule, je sais faire, par macro... je ne sais pas

La formule : =SUBSTITUE(A1;CAR(160);"")*1

@+
 

Fab117

XLDnaute Impliqué
Re : Chiffre en format texte

Resalut,
Merci pour vos réponses.
La fonction =val(macellule) à l'air de fonctionner.

Toutefois, le résultat de ma macro lui n'est pas probant.

En fait, le but est de vérifier si certains articles d'interets vont être fabriqués sur des lignes de production.
Le planning des lignes de production est généré automatiquement en format Excel.
Le numéro du produit fabriqué se trouve dans la colonne J.
Dans mon fichier initial, j'ai la liste de tous les produits pouvant être fabriqués (chaque numéro de produit se trouve dans la colonne A).
Régulièrement, j'ai besoin de savoir si certains de ces produits vont être fabriqués.
Donc dans la colonne C de mon fichier initial, je tape "a commander".

Le but de la macro est donc que dans le fichier initial, il repère les produits dont j'ai besoin et qu'ensuite, il aille consulter la feuille du planning pour voir si leur production est prévue. Et si c'est le cas, qu'il me ramène l'information dans le fichier initial.

Volia mon code, mais ça ne marche pas. Apparement, il décroche dès qu'il a trouvé un et un seul produit qui va être fabriqué.

Sub ControleDuPlanningDUneLigne()

Dim NumeroDeVrac, NumeroAProduire, LigneDInteretDuPlanning
Dim i, j, k
Dim l, m
Dim Contenu

' *****************************************************************************************
' Conversion du format des numéros pour avoir le même format que dans le fichier initial
Windows("Worksheet in Basis (1)").Activate
Sheets("Sheet1").Select

For l = 1 To 200
Range("J" & l).Select
Contenu = Range("J" & l)
Contenu = Val(Contenu)
Range("J" & l) = Contenu
Next l
' *****************************************************************************************

' *****************************************************************************************
' Conversion du format des numéros pour avoir le même format que dans la base de donné

Windows("Controle hebdomadaire des lignes.xls").Activate
Sheets("vrac").Select

For m = 2 To 200
Range("A" & m).Select
Contenu = Range("A" & m)
Contenu = Val(Contenu)
Range("A" & m) = Contenu
Next m
' *****************************************************************************************

' Va chercher dans le fichier initial les numéros qui n'ont pas encore été commandés
' For i = 2 To 100 ' à changer quand la macro fonctionnera
For i = 2 To 5
If Range("C" & i) = "a commander" Then ' condition pour qu'il recherche CE numéro
NumeroDeVrac = Range("A" & i)
Windows("Worksheet in Basis (1)").Activate ' part dans la base de donné voir si ce numéro sera produit
Sheets("Sheet1").Select
' For j = 2 To 300 ' à changer quand la macro fonctionnera
For j = 2 To 20 ' Scanne la colonne J de la base de donné pour voir s'il y retrouve LE numéro d'intéret
NumeroAProduire = Range("J" & j)
If NumeroAProduire = NumeroDeVrac Then ' S'il a trouvé que Le numéro d'intéret allait être produit
LigneDInteretDuPlanning = Range("A" & j & ":" & "L" & j) ' il copie la ligne
Windows("Controle hebdomadaire des lignes.xls").Activate 'il revient dansle fichier initial
Sheets("Resultat").Select

For k = 2 To 200 'il cherche une ligne de vide dans la fichier initial
If Range("A" & k) = "" Then
Range("A" & k & ":" & "L" & k) = LigneDInteretDuPlanning
k = 200
End If
Next k
End If
Next j
End If
Next i
End Sub
 

solonath

XLDnaute Nouveau
Re : Chiffre en format texte

Bonjour à tous,

Peut-être un problème de séparateur des milliers avec un espace insécable.

Dans ce cas, remplacer les espaces ayant un code 160 par rien.

Par formule, je sais faire, par macro... je ne sais pas

La formule : =SUBSTITUE(A1;CAR(160);"")*1

@+

Bonjour, et merci beaucoup pour ce tuyau, c'est EXACTEMENT ce dont j'avais besoin !
Je ne parvenais pas à identifier l'espace insécable, donc pas moyen de le supprimer ou le neutraliser pour transformer les chiffres importés en format texte. :)
 

Discussions similaires

Réponses
11
Affichages
268
Réponses
8
Affichages
431

Statistiques des forums

Discussions
312 496
Messages
2 088 974
Membres
103 995
dernier inscrit
Flodk