Pb de paramètres VBA depuis la création de nouvelles colonnes

Bonjour,

Sur les semaines impaires de mes tableaux, j'ai un problème de paramétrage de mes croix (cellules barrées). C'est à dire que sur les emplacements indiqués ci-dessous, je ne devrais pas avoir ces croix car j'avais indiqué "0" dans la colonne G (pré-barrage) de la feuille "Paramètres".

Ces erreurs apparaissent depuis que j'ai inséré, dans le tableau, 2 colonnes supplémentaires par demi-journée.
J'ai essayé d'adapter les paramètres du code VBA de BsAlv mais visiblement sans réussite totale.
Mes modifications :
- En passant à 10 colonnes au lieu de 6 par jour ==> j1 = Application.Max(1, (Date - Lundi) * 10 + 1)
- En indiquant 50 colonnes au lieu de 30 pour le nombre total de colonnes sur mes tableaux ==> bDiagonal = (TBL(j - bImPair * 50, 6) = 1)

C'est peut-être que le paramètre "ID" n'est pas reconnu mais je ne sais pas pourquoi

image

___________________________________________________

Code VBA dans le module1 du classeur ==>

Sub M_PreBarrage(Optional SH As Worksheet)
     '*************************************************************************************************
     'chaque cellule a une propriété "ID" qui selon MS sert pour "identifying labels for webpages, blabla ..."
     'bon, inappropriate use, je l'utilise pour sauvegarder le statut du "Croix" de la cellule, c'est plus pratique et plus rapide que les "comments"
     'les statuts: 0 = sans croix, 1 = croix rouge, 2 : croix noir
     'le temps pour lire ou écrire l'ID est négliable
     '*****************************************************************************************************
     ' Procédure réagissant au Paramètre 1 ou autre en J2 de l'onglet Paramètres :
     ' 1 = mettre une croix
     ' Autre : enlever la croix
     '*************************************************************************************************

     Dim c, Arr, TBL, bPM, bImPair, i, j, j1, iWeekday, r, aBorders, bPrebarrage, Lundi, bDiagonal
     t = Timer
     If SH Is Nothing Then Set SH = ActiveSheet     'si on ne sait pas la feuille, c'est la feuille actuelle
     If SH.Name Like "*## *##" Then          'nom de la feuille ressemble à cela
          Application.ScreenUpdating = False
          bPrebarrage = (Range("pre_barrage").Value = 1)     ' on demande "pré-barrage"
          TBL = Range("t_Semaine").Value2    'TS avec les propriétés des tâches
          With SH
               Set c = .Range("C2:AZ41")     'votre plage
               Arr = c.Value2                'lire vers matrice
               For i = 3 To UBound(Arr) Step 4     'les lignes avec les tâches
                    Lundi = Arr(i - 1, 1)    'première cellule de la ligne dessus = lundi
                    If Lundi > Date And Len(Lundi) Then
                         bImPair = (WorksheetFunction.IsoWeekNum(Lundi) Mod 2 = 1)     'semaine impaire ?
                         j1 = Application.Max(1, (Date - Lundi) * 10 + 1)     'on ne touche pas aux colonnes d'une date dans le passé (10 colonnes par jour)
                         For j = 1 To UBound(Arr, 2)     'boucler horizontal
                              Debug.Print c.Cells(i, j).Address
                              bDiagonal = (TBL(j - bImPair * 50, 6) = 1)     'on veut le diagonal et le pré-barrage
                              If bDiagonal And c.Cells(i, j).ID = "" Then c.Cells(i, j).ID = "2"     'quand l'ID n'est pas connu, on commence avec un croix noir
                              M_Bordures c.Cells(i, j), Array(-bPrebarrage * Val(c.Cells(i, j).ID), xlNone, 0, c.Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlNone)     'matrice avec la valeur de l'ID, linestyle "xlnone" et couleur "noir" du bordure
                         Next
                    End If
               Next
          End With
     End If
     bHS_NouvelleFeuille = False             'RAZ ce drapeau
End Sub

____________________________________

Merci pour vous être penché sur ce sujet

Bon dimanche...

Bonjour,

juste pour info, le fichier téléchargé n'a pas de croix chez moi :

image

@ bientôt

LouReeD

Bonjour LouReeD et merci beaucoup

Etrange Tout est bon chez toi !!!

Car je viens de ré-ouvrir la feuille téléchargée et j'ai ça chez moi ==>

Ca peut venir de la mémoire cache ou autres ? Si oui, comment m'y prendre stp ?

image

En tout cas merci de t'intéresser à mon pb

Bonne journée

Rechercher des sujets similaires à "parametres vba creation nouvelles colonnes"