Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Mise ne forme des Date sur une plage variable

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Utilisateur_X

XLDnaute Occasionnel
Bonjour
J'avais un problème avec le format des dates.Suite à une extraction que je fait les date étais parfois sur la forme dd/mm/yyyy et parfois mm/dd/yyyy et parfois en anglais expl:12/AUG/2020. Pour rendre tout sur la même forme j'ai utiliser la macro suivante qui fonctionne très bien
Sub modifDate()

Dim F1 As Range

Dim i As Integer

Dim DernLigne As Long

DernLigne = Range("A" & Rows.Count).End(xlUp).Row

Set F1 = ActiveSheet.Range("A2:A" & DernLigne)

For i = 1 To F1.Rows.Count

F1(i, 3).Value = Format(F1(i, 3).Value, "dd/mm/yyyy")

Next i

Selection.NumberFormat = "dd/mm/yyyy"

Range("A1").Select

End Sub

Sauf que je veut appliquer cette macro sur des colonnes que je sélectionne. EXPL: je vais sélectionner une colonne H ou I ou autre et je veut appliquer cette macro dessus.
Est il possible ?

Merci à vous
 
Solution
Bonjour,
Pour mettre votre code utilisez la balise </>, c'est plus lisible.🙂
Avec ce code, vous sélectionnez une cellule puis lancez la macro :
VB:
Sub MiseEnForme()
    Dim DernLigne As Long, Colonne as Long, DerLig as Long, Plage as Range
    ' Cherche N° colonne de la cellule active
    Colonne = ActiveCell.Column
    ' Sélectionne cette colonne
    Set Plage = ActiveSheet.Range(Cells(1, Colonne), Cells(65000, Colonne))
    ' Recherche la dernière ligne occupée de cette colonne
    DernLigne = Plage.CurrentRegion.Count
    ' Selectionne la bonne plage
    Set Plage = ActiveSheet.Range(Cells(1, Colonne), Cells(DernLigne, Colonne))
    ' Applique le format
    Plage.NumberFormat = "dd/mm/yyyy"
    Range("A1").Select
End Sub
Bonjour,
Pour mettre votre code utilisez la balise </>, c'est plus lisible.🙂
Avec ce code, vous sélectionnez une cellule puis lancez la macro :
VB:
Sub MiseEnForme()
    Dim DernLigne As Long, Colonne as Long, DerLig as Long, Plage as Range
    ' Cherche N° colonne de la cellule active
    Colonne = ActiveCell.Column
    ' Sélectionne cette colonne
    Set Plage = ActiveSheet.Range(Cells(1, Colonne), Cells(65000, Colonne))
    ' Recherche la dernière ligne occupée de cette colonne
    DernLigne = Plage.CurrentRegion.Count
    ' Selectionne la bonne plage
    Set Plage = ActiveSheet.Range(Cells(1, Colonne), Cells(DernLigne, Colonne))
    ' Applique le format
    Plage.NumberFormat = "dd/mm/yyyy"
    Range("A1").Select
End Sub
 
Re Bonjour,
Au post #1 vous dites que votre macro marche très bien.
J'ai donc reconduit strictement votre mise en forme : Selection.NumberFormat = "dd/mm/yyyy"
Si votre Windows est en format français alors 04/AUG/2020 est un texte non une date. En français il afficherait : 04/août/2020 ou pour février 04/févr/2020.
 
VB:
Sub MiseEnForme()
    Dim DernLigne As Long, Colonne As Long, DerLig As Long, Plage As Range
    ' Cherche N° colonne de la cellule active
    Colonne = ActiveCell.Column
    ' Sélectionne cette colonne
    Set Plage = ActiveSheet.Range(Cells(1, Colonne), Cells(65000, Colonne))
    ' Recherche la dernière ligne occupée de cette colonne
    DernLigne = Plage.CurrentRegion.Count
    ' Selectionne la bonne plage
    Set Plage = ActiveSheet.Range(Cells(1, Colonne), Cells(DernLigne, Colonne))
    ' Applique le format
    Set F1 = ActiveSheet.Range("A2:A" & DernLigne)
    For i = 1 To F1.Rows.Count
        F1(i, Colonne).Value = Format(F1(i, Colonne).Value, "dd/mm/yyyy")
    Next i

    Plage.NumberFormat = "dd/mm/yyyy"
    Range("A1").Select
End Sub
 
Je ne comprends pas.
C'est cette ligne qui fait la mise en forme, pas besoin de boucle FOR :

Set Plage = ActiveSheet.Range(Cells(1, Colonne), Cells(DernLigne, Colonne)) ' Applique le format Plage.NumberFormat = "dd/mm/yyyy"

Testez cette PJ, il suffit de sélectionner une cellule puis d'appuyer sur GO. Toutes les nombres de la colonne prennent le bon format.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
409
Réponses
10
Affichages
487
Réponses
4
Affichages
726
  • Question Question
Réponses
1
Affichages
560
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…