VBA convertir des cellules texte en nombre

Bonjour à tous,

Je viens vers vous encore une fois pour m'aider en VBA car je n'y comprend vraiment pas grand chose malgré le temps que je passe à lire des sujets sur différents forum. Mon problème est le suivant, j'ai un grand nombre de fichier dans lesquels je me retrouve avec des cellules en format texte dans plusieurs colonnes alors que j'ai besoin qu'elle soient au format nombre. J'ai trouvé ce code qui fonctionne mais il convertit tous les chiffres de la feuille en nombre sans décimale alors que j'ai besoin de convertir uniquement ceux au format texte :

For Each r In Sheets("Sheet1").UsedRange.SpecialCells(xlCellTypeConstants)
    If IsNumeric(r) Then
       r.Value = CSng(r.Value)
       r.NumberFormat = "0"
    End If
Next

Comment modifier ce code pour arriver à les fins ?

Peut-être faut-il tout simplement faire autrement en sélectionnant seulement les colonnes de mon tableau concernées sachant qu'il s'agit toujours des mêmes colonnes dans tous mes fichiers ?

En tout cas, merci pour votre aide

Bonsoir Saslen208

Une chose à faire beaucoup plus simple, est la méthode du copier la valeur 1 pour un collage spécial par multiplication

Voici le code à essayer

Sub TexteEnChiffres()
  Dim Rng As Range
  Set Rng = Sheets("Sheet1").UsedRange.SpecialCells(xlCellTypeConstants)
  ' Inscrie la valeur 1 dans une cellule après la plage utilisée
  Cells(1, Rng.Columns.Count + 1).Value = 1
  Cells(1, Rng.Columns.Count + 1).Copy
  ' Collage spécial valeur par multiplication
  Rng.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End Sub

A+

Bonsoir BrunoM45 et merci beaucoup pour ta solution magique lol

C'est presque parfait mais pas de chance, j'ai des cellules comprenant des dates qui du coup se convertisse en nombre alors que je souhaiterais les garder telles quelles.

Aurais-tu une méthode pour garder le principe copier/coller par multiplication sans que cela s'applique aux cellules comprenant une date ?

info qui aura peut-être son importance, les dates se situent toutes dans les colonnes C de mes fichiers.

Merci

Re,

Il faut à ce moment là définir les colonnes à transformer, est-ce que leur nombre change d'un fichier à l'autre ?

Non, il s'agit toujours des mêmes colonnes mais il y en a beaucoup (F;G;L;M;U;W;Y;AA;AC;AE;AG;AI;AK;AM;AO;AQ;AS;AU;AW;AY;BA;BC;BE;BG;BI;BK;BM;BO;BQ;BQ;BU;BW;BY;CA;CC;CE) a partir de la colonne U, il s'agit en fait d'une colonne sur 2 jusqu'à la colonne CE incluse.

Par contre je ne sais pas pourquoi, j ai des fichiers où les colonnes sont au bon format alors que d'autres ont besoin d'être converties.

Rechercher des sujets similaires à "vba convertir texte nombre"