Je travail sur la réalisation d'un planning dynamique (un peu comme un gantt au final) pour un fichier de suivi / planification pour un jeu en ligne. Ca me permet en même temps de travailler mon code vba, donc j'aime bien travailler un peu sur ce genre de fichier pour enrichir mes compétences.
Pour décrire rapidement mon soucis, je souhaite d'abord poser les bases de ce sur quoi je travail, à savoir un planning dynamique dans lequel 1 semaine réel correspond à un mois. Dans la mise en forme j'ai opter pour une fusion de cellule pour les 7 cellules qui correspondent au mois ce qui me bloque quand après je veux trouver la position du jour souhaité. j'ai donc découvert que je devais enlever mes fusions de cellules pour exécuter mon code et c'est là que mon soucis arrive.
J'ai donc créer deux fonctions dans un module, une pour supprimer la fusion et l'autre pour refusionner. Le 2 fonctions fonctionnent très bien lorsque je les exécutes depuis virtual basic. en revanche une fois que j'appelle la fonction pour supprimer la fusion depuis l'userform (via le bouton valider dans l'userform "UserForm_plannifier") j'ai une erreur qui s'affiche et en débuggant je me rend compte que le nombre de colonne calculé reste à 13 au lieu de 169 ... et là je ne trouve pas l'explication...
Si quelqu'un aurais une explication sur mon problème svp .
Bonjour Flav,
J'ai fait quelques tests en manuel.
Dans Refusionner Dercol vaut 169 ... ou 13. Tout dépend de la feuille active. ( 169 sur Planning_culture et 13 sur Planning)
Il faut préciser dans quelle feuille vous travaillez pour évaluer Dercol. Je pense que ça va résoudre le problème :
VB:
Sub refusionner()
Dim cel As Range
Dim dercol As Integer
Set cel = Sheets("Planning_culture").Cells(2, 2)
dercol = Sheets("Planning_culture").Cells(3, Columns.Count).End(xlToLeft).Column
Juste un point parce que ça pique les yeux. Dans Module_planning_planification, vous avez un superbe arbre de IF , c'est vrai que l'IF est un bel arbre ! Mais on doit pouvoir simplifier :
Bonjour Flav,
J'ai fait quelques tests en manuel.
Dans Refusionner Dercol vaut 169 ... ou 13. Tout dépend de la feuille active. ( 169 sur Planning_culture et 13 sur Planning)
Il faut préciser dans quelle feuille vous travaillez pour évaluer Dercol. Je pense que ça va résoudre le problème :
VB:
Sub refusionner()
Dim cel As Range
Dim dercol As Integer
Set cel = Sheets("Planning_culture").Cells(2, 2)
dercol = Sheets("Planning_culture").Cells(3, Columns.Count).End(xlToLeft).Column
Juste un point parce que ça pique les yeux. Dans Module_planning_planification, vous avez un superbe arbre de IF , c'est vrai que l'IF est un bel arbre ! Mais on doit pouvoir simplifier :
Code:
For i = 0 To UBound(Tableau)
If Tableau(i) >= 1 And Tableau(i) <= 12 Then
Colonne = 1 + Tableau(i)
Sheets("Planning").Cells(2, Colonne).Value = "1"
End If
Next i
Merci pour votre aide, je n'avais pas pensé à ce point là effectivement.
Merci pour l'astuce pour supprimer mon arbre if, c'est vrai que ce n'était pas très esthétique et long en même temps !!! je tacherais de m'en souvenir pour la prochaine fois que je rencontrerais ce type de besoin.
Bonjour,
Pour éviter de multiples IF on peut aussi utiliser le sélect case qui permet de simplifier les choses.
Mais dans votre cas une simple boucle était suffisant.