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...
 
- 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
301
  • Question Question
Microsoft 365 format date
Réponses
3
Affichages
107
  • Question Question
Power Query Power Query
Réponses
26
Affichages
576
Réponses
8
Affichages
495
Réponses
4
Affichages
217
Réponses
4
Affichages
507
Réponses
10
Affichages
558
Retour