XL 2019 Format nombre dans un tableau à colonne et ligne variable

babie971

XLDnaute Nouveau
Bonjour ,

j'utilise le code suivant pour appliquer un format nombre dans un tableau mais je souhaiterais l'appliquer à plusieurs tableaux de tailles différentes

Sub format()

Dim PL As Range
Dim CEL As Range


Set PL = Range(Range("E6"), Range("AM6").End(xlDown))
For Each CEL In PL
Select Case CEL.Value
Case Is >= 0.1: CEL.NumberFormat = "#,##0.00"
Case Else: CEL.NumberFormat = "0"
End Select
Next CEL
End sub

je souhaiterais que ce code puisse tenir compte de 2 contraintes :
  • nombre de colonnes (actuellement AM)et lignes du tableau variable
  • ne pas appliquer ce format à la colonne H
merci de votre aide 😊
 

Pièces jointes

  • Extraction.xlsm
    34.3 KB · Affichages: 3
Solution
Bonjour @Jacky67,

Merci pour ce rapide retour !
ton code est pas mal du tout, mais je dois également conserver l'application du "format" uniquement sur les cellule >0.1, comme dans le code initial.

De plus je réalise également que la colonne qui doit être exclu est la G (et pas la H) c'est du format texte désolée pour la coquille.
RE..
Ok, Alors
*Modifié
VB:
Sub format()
    Dim Col&, Lig&, C As Range
    With ActiveSheet
        Lig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
        Col = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
        .Range("E6", .Cells(Lig, Col)).NumberFormat = "0"
        For Each C In .Range("E6", .Cells(Lig, Col))
            If C.Value >= 0.1 Then C.NumberFormat =...

Jacky67

XLDnaute Barbatruc
je souhaiterais que ce code puisse tenir compte de 2 contraintes :
  • nombre de colonnes (actuellement AM)et lignes du tableau variable
  • ne pas appliquer ce format à la colonne H
merci de votre aide 😊
Bonjour
Quelque chose comme ceci peut-être
VB:
Sub format()
Dim Col&, Lig&
    With ActiveSheet
        Lig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
        Col = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
        .Range("E6", .Cells(Lig, Col)).NumberFormat = "#,##0.00"
        .Range("h6:h" & Lig).NumberFormat = "0"
    End With
End Sub
 

babie971

XLDnaute Nouveau
Sub format() Dim Col&, Lig& With ActiveSheet Lig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row Col = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column .Range("E6", .Cells(Lig, Col)).NumberFormat = "#,##0.00" .Range("h6:h" & Lig).NumberFormat = "0" End With End Sub

Bonjour @Jacky67,

Merci pour ce rapide retour !
ton code est pas mal du tout, mais je dois également conserver l'application du "format" uniquement sur les cellule >0.1, comme dans le code initial.

De plus je réalise également que la colonne qui doit être exclu est la G (et pas la H) c'est du format texte désolée pour la coquille.
 

Jacky67

XLDnaute Barbatruc
Bonjour @Jacky67,

Merci pour ce rapide retour !
ton code est pas mal du tout, mais je dois également conserver l'application du "format" uniquement sur les cellule >0.1, comme dans le code initial.

De plus je réalise également que la colonne qui doit être exclu est la G (et pas la H) c'est du format texte désolée pour la coquille.
RE..
Ok, Alors
*Modifié
VB:
Sub format()
    Dim Col&, Lig&, C As Range
    With ActiveSheet
        Lig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
        Col = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
        .Range("E6", .Cells(Lig, Col)).NumberFormat = "0"
        For Each C In .Range("E6", .Cells(Lig, Col))
            If C.Value >= 0.1 Then C.NumberFormat = "#,##0.00"
        Next
        .Range("g6:g" & Lig).NumberFormat = "@"
    End With
End Sub
 
Dernière édition:

babie971

XLDnaute Nouveau
RE..
Ok, Alors
*Modifié
VB:
Sub format()
    Dim Col&, Lig&, C As Range
    With ActiveSheet
        Lig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
        Col = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
        .Range("E6", .Cells(Lig, Col)).NumberFormat = "0"
        For Each C In .Range("E6", .Cells(Lig, Col))
            If C.Value >= 0.1 Then C.NumberFormat = "#,##0.00"
        Next
        .Range("g6:g" & Lig).NumberFormat = "@"
    End With
End Sub

@Jacky67 c'est juste parfait,

J'ai beaucoup cherché avant de solliciter de l'aide et je n'ai rien trouvé qui ressemble à cette proposition,

merci!!!
 

Jacky67

XLDnaute Barbatruc
@Jacky67 c'est juste parfait,

J'ai beaucoup cherché avant de solliciter de l'aide et je n'ai rien trouvé qui ressemble à cette proposition,

merci!!!
Re..
Sans boucle, mais sans la virgule 😌
VB:
Sub format()
    Dim Col&, Lig&, C As Range
    With ActiveSheet
        Lig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
        Col = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
        .Range("E6", .Cells(Lig, Col)).NumberFormat = "[>0]# ##0.00;0"
        .Range("g6:g" & Lig).NumberFormat = "@"
    End With
End Sub
 

babie971

XLDnaute Nouveau
Re..
Sans boucle, mais sans la virgule 😌
VB:
Sub format()
    Dim Col&, Lig&, C As Range
    With ActiveSheet
        Lig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
        Col = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
        .Range("E6", .Cells(Lig, Col)).NumberFormat = "[>0]# ##0.00;0"
        .Range("g6:g" & Lig).NumberFormat = "@"
    End With
End Sub
Bonjour @Jacky67
Je ne constate que maintenant ton message,
merci, merci c'est Top!
 

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 173
Membres
112 677
dernier inscrit
Justine11