Convertir le format de données

Bonjour à tous,

J'ai un tableau qui contient plusieurs colonnes. Quand j'essaie d'appliquer une fomrule sur une cellule d'une colonne, la formule ne s'exécute pas. Pour résoudre ce souci, dans l'onglet Données, je fais conversion (Suivant, suivant) et ça marche.

Ne y'a-t-il pas une autre méthode pour que cela s'applique sur tout le tableau directement sans perdre le temps ?

Surtout, est-il possible d'enregistrer une macro pour faire cette manipulation ? ou les macro ne peuvent toucher à cela ? car justement quand j'essaie ça marche pas du tout.

Bonjour Startinov.

C'est possible.

Sans fichier nous ne pouvons pas t'aide.

Bonjour,

Comment veux-tu que l'on t'aide ?

Pas d'exemple, pas de fichier, pas d'image

Aide nous à t'aider ! Sa doit être une histoire de format texte à convertir en nombre.

Cdlt,

Bonjour à tous,

Voici mon fichier Excel.

Les colonnes concernées sont les suivantes : Q, R, S

Ce que je souhaite faire c'est convertir les dates de ces colonnes en numéro de semaines.

Par exemple convertir 14/07/2017 en semaine soit Semaine 29..

Je voudrais que ceci soit automatique, c'est à dire j'ouvre le fichier je lanche une macro et ops et ça se fait.

Mais j'ai deux souci d'abord la fomrule ne s'exécute pas et deuxièmement je dois convertir à chaque fois moi même la colonne en date ( la colonne S est en text) et après appliquer la formule ce qui ne se fait pas non plus car il faut convertir la colonne encore une fois pour que cela s'exécute.

10startiov.xlsx (62.01 Ko)

Une première solution avec ce code :

Sub numSemaine()
Dim i&, j As Byte
With Sheets("ii").ListObjects(1).DataBodyRange
    For i = 1 To .Rows.Count
        For j = 17 To 19
            If Not .Item(i, j).Value = "" Then .Item(i, j).Value = WorksheetFunction.WeekNum(CDate(.Item(i, j).Value), 2)
        Next j, i
End With
End Sub
thebenoit59 a écrit :

Une première solution avec ce code :

Sub numSemaine()
Dim i&, j As Byte
With Sheets("ii").ListObjects(1).DataBodyRange
    For i = 1 To .Rows.Count
        For j = 17 To 19
            If Not .Item(i, j).Value = "" Then .Item(i, j).Value = WorksheetFunction.WeekNum(CDate(.Item(i, j).Value), 2)
        Next j, i
End With
End Sub

Je vous remercie beaucoup. Mince la conversion n'est pas correctement faite ça donne des chiffre comme 4235 :/

Bon, puis-je convertir directement les celluls en numéro de semaine ?

en faisant un truc comme cela :

Sub numSemaine()
Dim i&, j As Byte
With Sheets("ii").ListObjects(1).DataBodyRange
    For i = 1 To .Rows.Count
        For j = 17 To 19
        [b]    If Not .Item(i, j).Value = "" Then .Item(i, j).Value = ENT(MOD(ENT(Not .Item(i, j).Value)-2)/7)+0,6;52+5/28))+1[/b]
)
        Next j, i
End With
End Sub

[/quote]

En fait, ce qui permet de convertir une date en numéro de semaine est la formule suivante :

=ENT(MOD(ENT(CELLULE-2)/7)+0,6;52+5/28))+1

Le code proposé donne directement le numéro de semaine en utilisant la fonction NO.SEMAINE d'Excel.

Le 4235 doit venir d'une donnée n'étant pas une date originellement.

thebenoit59 a écrit :

Le code proposé donne directement le numéro de semaine en utilisant la fonction NO.SEMAINE d'Excel.

Le 4235 doit venir d'une donnée n'étant pas une date originellement.

Merci mon ami, c'est effecteivement cela !

Mais c'est bizzare pour quoi ça marche pour la colonne Q et R et pourtant sont en format dates ?

ça marche pourtant correctement pour la colonne S ..

Edit : Voilà, je trouve elle étaient en format standar .. zut !

6startiov12.xlsx (60.42 Ko)

Tout est bon pour toi ?

Rechercher des sujets similaires à "convertir format donnees"