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
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
Jacky
Le #26395003
Bonjour
Pourtant dans ma colonne sur la feuille Excel j'ai tout paramétré au format
nombre


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 :
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
Jacky
Le #26395002
Bonjour,

"Standart"
"Standard" évidemment (ou le format "nombre" souhaité)

Salutations
JJ

Jacky a exposé le 09/04/2016 :
Bonjour
Pourtant dans ma colonne sur la feuille Excel j'ai tout paramétré au format
nombre


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 :
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
merguez07
Le #26395017
Merci JJ,
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 :
Bonjour,

"Standart"
"Standard" évidemment (ou le format "nombre" souhaité)

Salutations
JJ

Jacky a exposé le 09/04/2016 :
Bonjour
Pourtant dans ma colonne sur la feuille Excel j'ai tout paramétré au
format nombre


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 :
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








---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Publicité
Poster une réponse
Anonyme