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

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
217
Réponses
0
Affichages
156
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…