Format de donnée dans un tableau
Le
merguez07

bonjour à tous,
je m'arrache les cheveux sur un problème. J'ai sur la colonne d'une
feuille excel une serie de chiffre (un chiffre par ligne et toujours sur
la même colonne). Cette série peut contenir plusieurs milliers de
valeurs toutes différents (pas de doublons).
Je souhaitais rechercher en VBA sur quelle ligne se trouve un chiffre
précis. J'ai utilisé la fonction find mais :
1- je la trouve trop lente
2- pour une raison inconnue elle ne me trouvait parfois pas de valeurs
alors que le chiffre recherché était bien dans la colonne.
Bref j'ai changé de stratégie et décidé de passer par un tableau
dim tableau as variant
en lui affectant les données de la colonne et de faire une recherche par
application.match.
LastRow = Worksheets(NomFeuille).Cells(Rows.Count, 3).End(xlUp).Row
With Worksheets(NomFeuille)
tableau = .Range(.Cells(3, 3), .Cells(LastRow, 3)).Value
End With
Y = Val(Chiffrecherché)
X = Application.Match(Y, tableau, 0)
Là coté vitesse c'est super par contre la aussi il ne me trouvait pas
certaines valeurs contenues dans le tableau
J'ai enfin compris pourquoi il ne trouve pas certaines valeurs. pour une
raison inconnue certaine valeurs sont mise dans le tableau en format
texte et d'autre en format nombre. Pourtant dans ma colonne sur la
feuille Excel j'ai tout paramétré au format nombre
D’où ma question. Comment faire pour que mon tableau ne soit qu'au
format nombre?
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
je m'arrache les cheveux sur un problème. J'ai sur la colonne d'une
feuille excel une serie de chiffre (un chiffre par ligne et toujours sur
la même colonne). Cette série peut contenir plusieurs milliers de
valeurs toutes différents (pas de doublons).
Je souhaitais rechercher en VBA sur quelle ligne se trouve un chiffre
précis. J'ai utilisé la fonction find mais :
1- je la trouve trop lente
2- pour une raison inconnue elle ne me trouvait parfois pas de valeurs
alors que le chiffre recherché était bien dans la colonne.
Bref j'ai changé de stratégie et décidé de passer par un tableau
dim tableau as variant
en lui affectant les données de la colonne et de faire une recherche par
application.match.
LastRow = Worksheets(NomFeuille).Cells(Rows.Count, 3).End(xlUp).Row
With Worksheets(NomFeuille)
tableau = .Range(.Cells(3, 3), .Cells(LastRow, 3)).Value
End With
Y = Val(Chiffrecherché)
X = Application.Match(Y, tableau, 0)
Là coté vitesse c'est super par contre la aussi il ne me trouvait pas
certaines valeurs contenues dans le tableau
J'ai enfin compris pourquoi il ne trouve pas certaines valeurs. pour une
raison inconnue certaine valeurs sont mise dans le tableau en format
texte et d'autre en format nombre. Pourtant dans ma colonne sur la
feuille Excel j'ai tout paramétré au format nombre
D’où ma question. Comment faire pour que mon tableau ne soit qu'au
format nombre?
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Ceci ne suffit pas.
1- Soit passer au format nombre AVANT la saisie
2- Soit ressaisir le nombre après passage au format "Standart"
3- Ou excecuter cette petite macro
Concerne la plage nommée "Tableau"*
*Tableau peut être remplacé par LA PLAGE concernée
'--------------
Sub Numerique()
Dim c As Variant
[tableau].NumberFormat = "General"
For Each c In [tableau]
c.Value = c.Value
Next
End Sub
'--------------
Salutations
JJ
merguez07 a exposé le 09/04/2016 :
"Standart"
"Standard" évidemment (ou le format "nombre" souhaité)
Salutations
JJ
Jacky a exposé le 09/04/2016 :
je pensais naïvement qu'en appliquant un format à une cellule son
contenu changeait immédiatement de format (quand même bizarre le
fonctionnement d'Excel).
en appliquant ta méthode ça marche
Merci
Xavier
Le 09/04/2016 12:42, Jacky a écrit :
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com