OVH Cloud OVH Cloud

vba changer le format d'une colonne de dates

14 réponses
Avatar
ThainZ
Bonjour,

J'ai des fichiers qui contiennent dans la colonne A des dates au format date: jj/mm/aaaa hh:mm

Je souhaite sous vba modifier cette colonnes afin d'avoir au format "e;e;standard"e;e; (sans format) la même date sous la forme:
jj-mm-aaaa hh:mm:ss

J'ai réussi à changer en faisant:

Columns("A:A").Select
Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss"

Ensuite je voulais faire:
Selection.NumberFormat = "General"
pour changer le format, mais ça m'affiche des nombres au lieu de conserver la mise en forme de date.

Merci de votre aide

4 réponses

1 2
Avatar
thainz
Le mercredi 29 Juillet 2015 à 13:39 par ThainZ :
Bonjour,

J'ai des fichiers qui contiennent dans la colonne A des dates au format date:
jj/mm/aaaa hh:mm

Je souhaite sous vba modifier cette colonnes afin d'avoir au format
"e;e;standard"e;e; (sans format) la même date sous la forme:
jj-mm-aaaa hh:mm:ss

J'ai réussi à changer en faisant:

Columns("A:A").Select
Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss"

Ensuite je voulais faire:
Selection.NumberFormat = "General"
pour changer le format, mais ça m'affiche des nombres au lieu de
conserver la mise en forme de date.

Merci de votre aide


à toi ;)

Dim C As Range
For Each C In Selection
C.Value = Format(C.Value, "dd-mm-yyyy hh:mm:ss")
Next C
Selection.NumberFormat = "General"

Fonctionne bien, mais est très long.

Je suis entrain d'essayer de limiter la sélection avec Range("A2").End(xlDown).Select, mais ça ne selectionne que la toute dernière case
Avatar
DanielCo
à toi ;)

Dim C As Range
For Each C In Selection
C.Value = Format(C.Value, "dd-mm-yyyy hh:mm:ss")
Next C
Selection.NumberFormat = "General"

Fonctionne bien, mais est très long.

Je suis entrain d'essayer de limiter la sélection avec
Range("A2").End(xlDown).Select, mais ça ne selectionne que la toute dernière
case



Sub test()
Dim C As Range
Application.ScreenUpdating = False
For Each C In Range("A2", Cells(Rows.Count,
1).End(xlUp)).SpecialCells(xlCellTypeConstants)
C.Value = Format(C.Value, "dd-mm-yyyy hh:mm:ss")
Next C
Selection.NumberFormat = "General"
Application.ScreenUpdating = True
End Sub
Daniel
Avatar
thainz
Le lundi 03 Août 2015 à 17:42 par DanielCo :
à toi ;)

Dim C As Range
For Each C In Selection
C.Value = Format(C.Value, "dd-mm-yyyy hh:mm:ss")
Next C
Selection.NumberFormat = "General"

Fonctionne bien, mais est très long.

Je suis entrain d'essayer de limiter la sélection avec
Range("A2").End(xlDown).Select, mais ça ne selectionne que la
toute dernière
case




Sub test()
Dim C As Range
Application.ScreenUpdating = False
For Each C In Range("A2", Cells(Rows.Count,
1).End(xlUp)).SpecialCells(xlCellTypeConstants)
C.Value = Format(C.Value, "dd-mm-yyyy hh:mm:ss")
Next C
Selection.NumberFormat = "General"
Application.ScreenUpdating = True
End Sub
Daniel


Merci beaucoup,

J'ai légèrement modifié:

Dim C As Range
For Each C In Range("A2", Cells(Rows.Count, 1).End(xlUp))
C.Value = Format(C.Value, "dd-mm-yyyy hh:mm:ss")
C.NumberFormat = "General"
Next C

Car Selection.NumberFormat = "General" ne fonctionnait pas car les cellules n'étaient pas selectionnées avec cette méthode.

Pour le "screnupdating" à quoi est ce que ça sert? Dois je le laisser?
Avatar
Jacquouille
Bonjour

Sub test()
Application.ScreenUpdating = False
.......Longue macro
Application.ScreenUpdating = True
End Sub
-----------------
Pour les grandes manœuvres, pleines de calculs et autres joyeusetés, cette
procédure permet de bloquer l'affichage pendant le déroulement de la macro,
ce qui évite les clignotements de l'écran.
Les grands de ce monde utilisent ce "truc" pour les longues procédures pour
ne pas s'abimer les yeux. -))

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"thainz" a écrit dans le message de groupe de discussion :


Le lundi 03 Août 2015 à 17:42 par DanielCo :
à toi ;)

Dim C As Range
For Each C In Selection
C.Value = Format(C.Value, "dd-mm-yyyy hh:mm:ss")
Next C
Selection.NumberFormat = "General"

Fonctionne bien, mais est très long.

Je suis entrain d'essayer de limiter la sélection avec
Range("A2").End(xlDown).Select, mais ça ne selectionne que la
toute dernière
case




Sub test()
Dim C As Range
Application.ScreenUpdating = False
For Each C In Range("A2", Cells(Rows.Count,
1).End(xlUp)).SpecialCells(xlCellTypeConstants)
C.Value = Format(C.Value, "dd-mm-yyyy hh:mm:ss")
Next C
Selection.NumberFormat = "General"
Application.ScreenUpdating = True
End Sub
Daniel


Merci beaucoup,

J'ai légèrement modifié:

Dim C As Range
For Each C In Range("A2", Cells(Rows.Count, 1).End(xlUp))
C.Value = Format(C.Value, "dd-mm-yyyy hh:mm:ss")
C.NumberFormat = "General"
Next C

Car Selection.NumberFormat = "General" ne fonctionnait pas car les cellules
n'étaient pas selectionnées avec cette méthode.

Pour le "screnupdating" à quoi est ce que ça sert? Dois je le laisser?


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
1 2