création liste automatique

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jiheme

XLDnaute Accro
Bonsoir,

Je voudrais créer automatiquement une liste de "mois-année" en fonction de valeurs contenues dans trois cellules, par les fonctions je n'arrive à maitriser le nombre de mois de la liste et j'ai tenté une macro, mais comme d'habitude elle ne fonctionne pas! je suis nul!!!

Le fichier joint vous en dira un peu plus.

Merci
 

Pièces jointes

Re : création liste automatique

Bonsoir Tous,

pour la macro, essaie le
Code:
Sub creer_période()
  Dim Li As Byte
  For Li = 1 To Sheets("Data").Range("B8").Value
    Range("B" & Li + 14).FormulaR1C1 = "=FIN.MOIS(VALUE(R4C2&R6C2),RC[1])"
  Next
End Sub
 
Re : création liste automatique

Bonsoit Tibo, Lii, le Forum

Tibo, ta formule me convient parfaitement, Lii la macro ne se mets pas vraiment à jour, je m'explique si l'on sélectionne 13 par exemple tout va bien mais si l'on décide de revenir à 9 les mois en trop ne s'effacent pas.

Mais j'ai un autre problème : j'ai une macro evennementielle (made in XLD bien sûr) qui doit me créer autant de feuille que de mois dans la liste établie par la formule de Tibo et nommer ces feuilles du mois du mois (abrégé) genre "Janv 08". La macro plante je pense que c'est parce que les valeurs de la liste sont des dates!

Y a t'il un moyen pour lui faire prendre le texte de la cellule formatée ou bien une astuce pour contourner le problème.

Je joins le fichier où j'ai ajouter la macro avec laquelle je lutte depuis 3 heures!!!
Merci
A+
 

Pièces jointes

Re : création liste automatique

bonsoir jiheme, Tibo, Lii et all the forumeurs!!

la macro bugge car la valeur contient des / que ne gère pas excel au niveau du nom du feuillet

donc il faut convertir la valeur en un autre format :

Code:
ActiveSheet.Name = Format(Sheets("Data").Range("b" & x), "mmm yy")

de plus quand la valeur est égale à "", ça plante aussi il faut donc placer la condition if Sheets("Data").Range("b" & x) <>"" then avant la copie du feuillet matrice, ce qui donne au final ce code:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' AjoutFeuille Macro
' le 26/08/2008 par Jihème
'
For x = 15 To Sheets("Data").Range("B65536").End(xlUp).Row
   For Each Ws In Worksheets
       If Ws.Name = Sheets("Data").Range("B" & x) Then GoTo fin
    Next
    If Sheets("Data").Range("b" & x) <> "" Then
    Sheets("Matrice").Copy after:=Sheets(Worksheets.Count)
    ActiveSheet.Name = Format(Sheets("Data").Range("B" & x), "mmm yy")
    End If
fin: Next

End Sub
en esperant que cela te convienne

a+
 
Dernière édition:
Re : création liste automatique

Re...

comme ceci c'est peut-être plus clair :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' AjoutFeuille Macro
' le 26/08/2008 par Jihème
'
With Sheets("Data")
     For x = 15 To .Range("B65536").End(xlUp).Row
        For Each Ws In Worksheets
            If Ws.Name = .Range("B" & x) Then GoTo fin
        Next
        If .Range("b" & x) <> "" Then
            Sheets("Matrice").Copy after:=Sheets(Worksheets.Count)
            ActiveSheet.Name = Format(.Range("B" & x), "mmm yy")
        End If
   fin: Next
End With
End Sub

Bonne soirée
 
Dernière édition:
Re : création liste automatique

Bonjour Ledzepfred, le forum

Merci cela fonctionne nickel et de plus tes explications sont très claires, c'est incroyable mais j'ai compris..........

Je reviendrais sûrement pour ce classeur car c'est loin d'être terminé.

A+
 
Re : création liste automatique

Bonjour Tous,

Pour la réinitialisation, il suffisait d’ajouter une ligne ( .ClearContents).

Avec cette dernière macro, il y a problème dés que l’on change de sélection ou quand on veut ne changer que le nombre de mois (erreur éventuelle à corriger par exemple).
La suppression d’onglets exigeant du doigté, il serait peut-être plus intéressant de ne créer les feuilles qu’en étant sûr donc sur ordre (autre bouton).
La procédure proposée peut quand même s’intégrer dans l’évènement Change déjà utilisé.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
381
Réponses
15
Affichages
482
Réponses
10
Affichages
499
Retour