XL pour MAC Boucle VBA Matrice

Makovitch

XLDnaute Nouveau
Hello !
Voila je suis débutant en VBA et j'ai besoin d'un petit coup de pouce car je bloque sur mon code :(
J'aimerai réaliser une boucle qui me permettrai de réaliser une succession d'actions, voici mon code:
Capture d’écran 2020-07-15 à 22.14.47.png


le code ci-dessus remplit correctement les cases sur Excel mais sans boucle, mon code risquerait d'être très très long lol
Savez-vous comment je pourrai optimiser cela ?
Merci d'avance de votre aide !



Capture d’écran 2020-07-15 à 22.15.57.png
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @Makovitch Welcome to XLD ! , @sylvanu , le Forum

J'ai pris la liberté de simuler un fichier, je pense que c'est ce que veut notre ami Makovvitch (mais c'est vrai qu'avec un p'ti fichier exemple ce serait plus simple...)
Deux macros en Loop, une basic et une plus approfondie ...

Bonne Journée
@+Thierry
 

Pièces jointes

  • XLD_Makovitch_Matrix_2_Dimensions.xlsm
    21 KB · Affichages: 11

sylvanu

XLDnaute Barbatruc
Supporter XLD
Une MFC est automatique et ce se remet à jour en permanence.
Dans le fichier de Thierry, mettez 1 en E10 la cellule se colore automatiquement.
Pour modifier la couleur vous cliquez une cellule puis faites Acceuil/Mise en Forme Conditionnelle/gérer les règles/Modifier la règle/Format.

Sinon en VBA vous remplacez la ligne du fichier de Thierry
VB:
WSSource.Cells(SR, SC).Value = CellSourceR.Offset(0, -1).Value
par
Code:
            WSSource.Cells(SR, SC).Value = CellSourceR.Offset(0, -1).Value ' Valeur'
            WSSource.Cells(SR, SC).Interior.Color = RGB(255, 0, 0)         ' Fond rouge'
            WSSource.Cells(SR, SC).Font.Color = RGB(0, 0, 0)               ' Police noire'
            WSSource.Cells(SR, SC).Font.Bold = True                        ' En gras'
 

Makovitch

XLDnaute Nouveau
j'ai pu résoudre ce problème mais je bloque sur un autre désormais lol..

j'aimerais mettre en rouge les cellules dont les valeurs sont supérieurs à 0 au dessus de la diagonale et en vert celles qui sont supérieurs à 0 mais situés en dessous de la diagonale, voici mon code :

i = 4

j = Range("C3:R19").Rows.Count

For i = 4 To j

If Cells(i, i - 1).Value > "0" Then

Cells(i, i - 1).Interior.Color = vbGreen

End If

Next I

Mon code fonctionne bien mais il ne prend pas en compte la cellule active ci-dessous
EFD67772-4542-4C7D-8E70-B79B7B265FDE.png
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour @Makovitch , @sylvanu, le Forum

Pas besoin de faire un autre loop, il y a tous les éléments déjà incorporés pour faire ceci in "one shot" dans les codes proposés précédemment.

Voici une version complémemtaire.

Bon aprèm
@+Thierry
 

Pièces jointes

  • XLD_Makovitch_Matrix_2_Dimensions_With_Color_GreenRed.xlsm
    24.8 KB · Affichages: 3

Discussions similaires

Réponses
18
Affichages
843

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 086
Messages
2 085 197
Membres
102 814
dernier inscrit
JLGalley