[VBA] Affecter une couleur à une ligne insérée

Hello,

Grâce à l'aide d'un des forumeurs, que je remercie encore au passage, j'ai réussi à mettre en place un bel outil pour le travail.

J'ai une question liée à la partie insertion d'une ligne dans un tableau structuré.

Je souhaite que la ligne insérée soit d'une certaine couleur, hors au regard du code ci dessous (ligne en commentaire) tout mon tableau (évidemment puisque je fais appel au TS_spine qui est tout mon tableau structuré) se met dans la couleur choisie

Dim I As Long

With TS_lan
I = Application.Match(Me.sublan24, .ListColumns("Subnet IP").DataBodyRange, 0)
.ListColumns("Designation").DataBodyRange(I) = Me.descriplan
.ListColumns("VLAN").DataBodyRange(I) = Val(Me.vlanlan)
.ListColumns("Commentaire").DataBodyRange(I) = Me.commfinal3
End With

Dim Ligne_Inser
With TS_spine
Set Ligne_Inser = .ListRows.Add: I = Ligne_Inser.index
'TS_spine.DataBodyRange.Interior.ColorIndex = 8

.DataBodyRange(I, "A") = Me.vrflan
.DataBodyRange(I, "M") = Me.vlanlan
.DataBodyRange(I, "K") = Me.descriplan
.DataBodyRange(I, "O") = Me.descriplan
.DataBodyRange(I, "H") = Me.sublan24
.DataBodyRange(I, "E") = Me.commfinal3
.DataBodyRange(I, "C") = Me.vpninst
.DataBodyRange(I, "B") = "V" & Me.vrflan
.DataBodyRange(I, "G") = Me.commfinal3
.DataBodyRange(I, "N") = "0" & Me.vlanlan
.DataBodyRange(I, "L") = "undo shutdown"
End With

L'un de vous aurait-il une idée pour que seule ma ligne insérée soit colorée?

Merci à vous

Hi,

Cette ligne de code va mettre ta nouvelle ligne en bleu clair, mais ça le restera...

With TS_Spine
    Set Ligne_Inser = .ListRows.Add: I = Ligne_Inser.index
    Ligne_Inser.Range.Interior.ColorIndex = 8 ' celle-ci

Pour revenir à un aspect "normal" du TS, il faut exécuter ceci :

Range("Spines_L3").Interior.Pattern = xlNone

ou ceci, si tu le fais depuis l'USF :

TS_Spine.Interior.Pattern = xlNone

Bon courage

PS, pense à mettre ton code entre balises

image

PS2, on peut préciser dans la déclaration de la variable "Ligne_Inser" :

Dim Ligne_Inser As ListRow

Merci (encore) à toi

Ca fonctionne!!!

Bonjour, j'ai quasiment finaliser mon code, me manque juste pour ces lignes la la possibilité de mettre toute la ligne en couleur également lors de l'insertion...

Dim I As Long
With TS_fwp
    I = Application.Match(Me.subfwp, .ListColumns("Subnet IP").DataBodyRange, 0)
    .ListColumns("Designation").DataBodyRange(I) = Me.TextBox5
    .ListColumns("VLAN").DataBodyRange(I) = Val(Me.vlanfwpbox)
    .ListColumns("Commentaire").DataBodyRange(I) = Me.commfinal
End With

Le code couleur que je souhaite implémenter est le "43"

Merci à vous

Bonjour,

Sur le même principe...

Rajoute la dernière ligne

With TS_fwp
    I = Application.Match(Me.subfwp, .ListColumns("Subnet IP").DataBodyRange, 0)
    .ListRows(I).Range.Interior.ColorIndex = 43
.....
.....

PS, est-ce que la manip (TS -> Plage -> TS) t'a permis de supprimer les erreurs de formules?

Bonne journée

Hello, non, ce que j'ai fait pour corriger ces erreurs, j'ai recréé le tableau structuré dans une nouvelle feuille et j'y ai inséré les formules, puis copier les valeurs du TS qui me poser problème.

D'ailleurs Cousinhub, les formules entre tableau structuré fonctionnent de la même manière que les formules sur des tableaux classiques?

Je n'arrive pas à afficher le résultat attendu

=SI(ESTNA(EQUIV([@VRF];Spines_L3_new[@[vpn-instance]];0));[@VRF];"")

Je souhaite comparer la colonne VRF de mon "TS_TRAV" avec la colonne vpn-instance de mon TS "Spines_L3_new" et afficher les valeurs manquantes...et en retour j'ai juste la formule qui apparait.

Etrange

Re-,

Vérifie que tu n'es pas au format "Texte" dans la colonne comportant la formule..

Si c'est le cas, passe au format "Standard", clique dans la formule, et re-valide là...

Et bien si je suis en texte car les valeurs de mes celulles sont 001,002,003 etc...

Je vais modifier cela. Je te redis dès que je réssaie

Re-,

Ne change le format que dans la colonne comportant les formules...

Pour le reste, tu peux laisser

Bon maintenant la formule passe, mais ça ne m'affiche pas les valeurs manquantes présentes dans TS_TRAV mais pas dans TS "Spines_L3_new"

C'est bon ça fonctionne

Merci de ton aide encore

Re-,

Sous quelle forme sont les données dans la colonne "Spines_L3_new[@[vpn-instance]]"?

Le type pour VRG, c'est bien "V001"?

Je les ai mise en standard. Tout fonctionne désormais

image

Tu saurais me dire quelle formule mettre en place dans la colonne F pour que les données de la colonne E (obtenues par la formule =SI(ESTNA(EQUIV(D2;Spines_L3_new[vpn-instance];0));D2;"") ) apparaissent sans cellule vide ? J'en ai essayer plusieurs (DECALER, ou encore Unique avec filtre) en vain?

Re-,

Solution empirique (une formule regroupant les 2 doit forcément exister, mais pas le lundi dans ma tête....)

Dans la colonne F, tu mets :

=FILTRE(T_TRAV[VRF_DISPO_TRAV];T_TRAV[VRF_DISPO_TRAV]<>"")

Adapte avec tes vrais noms de TS et Colonnes??

Ca me retourne #EPARS (un peu ce que j'obtenais déjà)

Hi,

ça veut dire que la formule ne peut pas s'étendre vers le bas pour donner les résultats...

Donc, en une seule :

=FILTRE(T_TRAV[VRF];ESTNA(EQUIV(T_TRAV[VRF];Spines_L3_new[@[vpn-instance]];0)))

Peut-être?

Re-,

Peut-être aussi, ne pas mettre dans un TS, mais dans une colonne à droite (en mettant la formule au niveau de la 1ère donnée, soit ligne 2)

Re-,

Regarde le fichier joint..

Je confirme, la fonction Filtre ne semble pas du tout appréciée d'être intégrée à un TS...

8filtre-vrf.xlsx (13.00 Ko)
Rechercher des sujets similaires à "vba affecter couleur ligne inseree"