Autres Remplacer un nombre par variable dans un trie

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
 

mapomme

XLDnaute Barbatruc
Supporter XLD
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.
 

FOUQUET Yves

XLDnaute Occasionnel
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...
 

Discussions similaires

Réponses
4
Affichages
205
Réponses
0
Affichages
147

Statistiques des forums

Discussions
312 176
Messages
2 085 963
Membres
103 068
dernier inscrit
Strogoff