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

  • Initiateur de la discussion Initiateur de la discussion babie971
  • Date de début Date de début

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 !

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

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 =...
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
 
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.
 
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:
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 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
 
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!
 
- 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
3
Affichages
449
Retour