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

Autres Remplacer un nombre par variable dans un trie

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 !

FOUQUET Yves

XLDnaute Occasionnel
Bonjour à toutes et tous et Bonne année 2020,

Dans cette procédure, je voudrai pouvoir remplacer le J 405 du trie par J dernier ligne non vide que je récupère dans DLig

Private Sub CommandButton1_Click()

' --------- trier par date ----------
Dim DLig As Long

With Sheets("En cours")
DLig = Range("D8").End(xlDown).Row
TextBox2 = DLig

Columns("A:A").NumberFormat = "dd/mm/yyyy" 'transforme la colonne en DATE jj/mm/aaaa
Columns("B: D").NumberFormat = "@" 'transforme la colonne en TEXTE
Columns("E:E").NumberFormat = "General" 'transforme la colonne en NOMBRE
Columns("F:J").NumberFormat = "@" 'transforme la colonne en TEXTE

.[A8:J405].Sort .[A8], xlAscending, Header:=xlYes
' --- comment remplacer le 405 par DLig qui le N° de la dernière ligne non vide ----

Columns("E:E").NumberFormat = "# ##0.00 €" 'transforme la colonne en MONETAIRE
End With
End Sub

Je ne trouve pas le bon code.
Merci de votre aide...
Yves
 
Bonsoir @FOUQUET Yves,

Essayez :
VB:
Private Sub CommandButton1_Click()
Dim DLig As Long
   With Sheets("En cours")
      DLig = .Range("D8").End(xlDown).Row
      .Columns("A:A").NumberFormat = "dd/mm/yyyy"
      .Columns("B:D").NumberFormat = "@"
      .Columns("E:E").NumberFormat = "General"
      .Columns("F:J").NumberFormat = "@"
      .Range("a8:j" & DLig).Sort key1:=.Range("a8"), order1:=xlAscending, Header:=xlYes
      .Columns("E:E").NumberFormat = "# ##0.00 €"
   End With
End Sub

nota: quand vous utilisez la balise code, ne formatez pas le texte du code. C'est inutile, ça pollue et c'est formaté d'office 🙂 (voir le code ci-dessus)
rem 1: quand vous utilisez With ... , il faut ensuite préfixer par un point les éléments s'y rapportant.
 
Merci beaucoup de votre réponse et de sa rapidité.
Dans l'instruction . Columns, je ne voudrai formater qu'un morceau de la colonne,
Eviter les lignes de 1 à 7 et audelà de 569.
Pouvez-vous m'aider sur la syntaxe?

En fait je ne veux FORMATER que les lignes de 8 à 569 et les colonnes de A à J.

Un truc du style:

.Columns("A8:A569").NumberFormat = "dd/mm/yyyy"

mais évidemment cela ne fonctionne pas...
 
Re,

ou bien:
pour la colonne A: Range("a8:j569").Columns("a:a").NumberFormat = "dd/mm/yyyy"
pour la colonne E: Range("a8:j569").Columns("e:e").NumberFormat = "dd/mm/yyyy"
 
- 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
5
Affichages
327
  • Question Question
Microsoft 365 format date
Réponses
3
Affichages
108
  • Question Question
Power Query Power Query
Réponses
26
Affichages
577
Réponses
8
Affichages
496
Réponses
4
Affichages
235
Réponses
4
Affichages
508
Réponses
10
Affichages
559
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…