XL 2019 mise en forme conditionnelle, mais pas que...!!!

JPh2309

XLDnaute Junior
Bonjour,
J'ai cherché dans les différentes discussions mais les exemples trouvés bien qu'intéressants, ne collaient pas à mon cas.
À partir d'une macro de saisie dans la feuille 1, j'incrémente un tableau dans la feuille 2. Jusque là c'est rudimentaire pour vous mais je suis fier d'avoir réussi seul, ça fonctionne !
Là où ça se complique, c'est que je n'arrive pas à faire une mise en forme conditionnelle qui s'applique à un tableau qui évolue à chaque nouvelle entrée.
De plus, dans ce tableau j'ai une liste déroulante que je n'arrive pas à proposer aux nouvelles cellules ajoutées.
J'ai mis des commentaires dans mon fichier test pour vous aider à comprendre ma problématique.
Merci de votre aide !
 

Pièces jointes

  • saisie test.xlsm
    41.1 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Jph, Sousou,
Un essai en PJ avec :
VB:
Sub CopyPaste()
    N = [Tableau1].ListObject.ListRows.Count
    If N > 1 Or [Tableau1].Item(1, 1) <> "" Then
        [Tableau1].ListObject.ListRows.Add: N = N + 1
    End If
    [Tableau1].Item(N, 1) = [D5]: [Tableau1].Item(N, 2) = [E5]
    [D5:E5].ClearContents
End Sub
et comme le dit Sousou, un tableau structuré, ça simplifie la vie car cela propage formule et mise en forme automatiquement lorsque des lignes sont ajoutées.
 

Pièces jointes

  • saisie test (1).xlsm
    42.1 KB · Affichages: 5

JPh2309

XLDnaute Junior
Merci pour cette belle citation de Boileau mais j'ai fait ce petit fichier, juste pour l'exemple.
En pièce jointe, le fichier original dans lequel j'ai enlevé par dépit les listes déroulantes, je suis pas sûr que ça t'aide plus...
 

Pièces jointes

  • testJPG-2.xlsm
    135.6 KB · Affichages: 6

JPh2309

XLDnaute Junior
Bonjour Jph, Sousou,
Un essai en PJ avec :
VB:
Sub CopyPaste()
    N = [Tableau1].ListObject.ListRows.Count
    If N > 1 Or [Tableau1].Item(1, 1) <> "" Then
        [Tableau1].ListObject.ListRows.Add: N = N + 1
    End If
    [Tableau1].Item(N, 1) = [D5]: [Tableau1].Item(N, 2) = [E5]
    [D5:E5].ClearContents
End Sub
et comme le dit Sousou, un tableau structuré, ça simplifie la vie car cela propage formule et mise en forme automatiquement lorsque des lignes sont ajoutées.
Merci Sylvanu.
Je n'ai pas les compétences pour structurer de manière plus efficace mon tableau et je le regrette.
J'ai compris que ta macro remplace la mienne lors de la saisie. je vais tenter de la comprendre à froid pour la reproduire. Mais pour la mise en forme conditionnelle, tu peux m'aider stp ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je repose les questions :
1-
Est ce qu'au moins la solution du post #3 donne la solution attendue ?
2-
Dans le nouveau fichier il n'y a pas de case "oui".
Donc quelle est la nouvelle MFC ? Qui la déclenche ? Quelles colonnes doivent être barrées ?
Dans le nouveau fichier il n'y a pas de colonne F exploitable puisque fusionnée.
 

job75

XLDnaute Barbatruc
Bonjour,

Le format "barré" ne peut pas être appliqué par MFC.

Un tableau structuré n'apporte rien de plus ici, voyez le fichier joint et utilisez cette macro :
VB:
Sub saisie()
With Sheets("Feuil2").[C4:F4]
    .Insert xlDown, xlFormatFromRightOrBelow 'formats du dessous
    .Rows(0).Resize(, 2) = [D5:E5].Value
End With
End Sub
La liste de validation en colonne F est copiée.

Et pour créer le format "barré" cette macro dans le code de Feuil2 :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
With Range("F4:F" & Cells.SpecialCells(xlCellTypeLastCell).Row)
    If Intersect(Target, Cells) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    .Columns(-2).Resize(, 3).Font.Strikethrough = False 'RAZ
    For Each c In .Cells
        If LCase(c) = "oui" Then c(1, -2).Resize(, 3).Font.Strikethrough = True
    Next
End With
End Sub

A+
 

Pièces jointes

  • saisie test(1).xlsm
    43.9 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Job,
Le format "barré" ne peut pas être appliqué par MFC.
Ah bon ? Pas sur 2007 en tout cas.
1678898932402.png
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Tout comme le camarade sylvanu j'étais parti sur un TS, mais comme l'a magnifiquement montré job75 c'est effectivement sans grand intérêt (si ce n'est éventuellement pour avoir facilement une alternance de deux couleurs de lignes). :(

Du coup ça m'a donné quasiment le même résultat que sylvanu, mais vu que je l'ai fait, je le poste tout de même en pièce jointe.
 

Pièces jointes

  • testJPG-2_(TooFatBoy-v1).xlsm
    136.7 KB · Affichages: 4

Statistiques des forums

Discussions
312 094
Messages
2 085 238
Membres
102 831
dernier inscrit
ayal