[Résolu] Déplacer une feuille selon listes de choix.

Lone-wolf

XLDnaute Barbatruc
Bonjour le Forum,

vous avez déjà vu cette formule: =SOMME(Janvier:Février!A1) qui permet de faire le total suivant le choix d'une feuille que l'on insère entre les deux mois.

Je cherche à déplacer la feuille mais, selon des listes de choix que j'ai créé.

D'autres explications sont dans le fichier joint.


A+ :cool:


Amicalement
Lone-wolf
 

Pièces jointes

  • Déplacement Feuilles.xls
    30.5 KB · Affichages: 43
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Déplacer une feuille selon listes de choix.

Bonjour Lone-wolf,

Voici ton 1er point réglé. L'ajout de feuilles est possible, même après décembre, mais elles ne seront pas renommées : elles prendront le nom par défaut.

Pour les points suivants, désolé mais je n'ai pas bien compris le sens de tes questions. Peux-tu préciser davantage, si besoin avec un exemple ?

Cordialement.
 

Pièces jointes

  • Copie de Déplacement Feuilles.xlsm
    20.4 KB · Affichages: 49

Lone-wolf

XLDnaute Barbatruc
Re : Déplacer une feuille selon listes de choix.

Bonjour Papou-net,

merci pour ton aide. On vas procéder par étape.

Crée une nouvelle feuille et en A1 inscrit une somme, ensuite tu déplace la feuille "Mars" entre les feuilles de Janvier et Février. Dans la feuille Compte-rendu annuel, la cellule CA vas comptabilisé les sommes.

Maintenant au lieu de déplacer la feuille "Mars" manuellement, j'aimerais que ça soit la liste des mois qui le fasse. ce qui donnerais en VBA:

Si Liste de choix Mois.Value = Mars alors déplacer Mars avant Février.
Si Liste de choix Mois.Value = Avril alors déplacer Avril avant Février.

Ensuite la formule en E1 fera le reste. Je ne sais pas si j'ai été clair avec tout ça et je m'arrête là pour l'instant. On continuera par la suite.


A+ :cool:


Amicalement
Lone-wolf
 

job75

XLDnaute Barbatruc
Re : Déplacer une feuille selon listes de choix.

Bonjour Lone-wolf, Papou-net,

C'est un problème intéressant mais pas très simple.

Surtout je n'ai pas compris du tout pourquoi il faut intercaler des mois entre Janvier et Février...

Alors j'ai fait à ma façon : les feuilles des mois sont classées dans le bon ordre.

Et la formule du CA fait la somme entre le 1er mois et le mois choisi.

La macro dans le code de la feuille Compte-rendu Annuel :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'---MODIFICATION DU MOIS---
If Target.Address = [Mois].Address Then
  Dim f As Worksheet, i%, v1&, j%, v2&
  Application.ScreenUpdating = False
  On Error Resume Next
  '---création de la feuille du mois si elle n'existe pas---
  If Target <> "" Then Set f = Sheets(Target.Text)
  If Err Then Sheets.Add: ActiveSheet.Name = Target
  '---classement des feuilles des mois---
1 For i = 1 To Sheets.Count - 1
    v1 = 0
    v1 = CLng(CDate("1 " & Split(Sheets(i).Name, " ")(0)))
    For j = i + 1 To Sheets.Count
      v2 = 0
      v2 = CLng(CDate("1 " & Split(Sheets(j).Name, " ")(0)))
      If v2 < v1 Then Sheets(i).Move After:=Sheets(j): GoTo 1
    Next
  Next
  '---1er mois---
  For i = 1 To Sheets.Count
    v1 = 0
    v1 = CLng(CDate("1 " & Split(Sheets(i).Name, " ")(0)))
    If v1 Then Exit For
  Next
  '--- formule de [CA] : attention aux guillemets anglais---
  [CA] = "=SUM('" & Sheets(i).Name & ":" & Target & "'!A" & [Année] - 2011 & ")"
  '---activation de la présente feuille---
  Me.Activate
'---MODIFICATION DE L'ANNEE---
ElseIf Target.Address = [Année].Address Then
  [CA].Replace "!A*)", "!A" & [Année] - 2011 & ")", LookAt:=xlPart
End If
End Sub
Nota : dans la liste déroulante des mois il y avait Juillet:Août.

Le caractère : est interdit dans les noms des feuilles, je l'ai remplacé par un espace.

Fichier joint.

Edit : ajouté If Target <> "" Then devant Set f...

A+
 

Pièces jointes

  • Déplacement feuilles(1).xls
    53.5 KB · Affichages: 44
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Déplacer une feuille selon listes de choix.

Bonjour Job,

pourquoi il faut intercaler des mois entre Janvier et Février...

oui tu as tout à fait raison, c'est vrai qu'après coup je n'y ai trouvé aucun intérêt. Je voulais utiliser la formule ou l'astuce juste pour changer un peu de la façon dont ont fait la somme de plusieures feuilles.

Et sans vouloir t'offenser:

Nota : dans la liste déroulante des mois il y avait Juillet:Août. Je l'ai remplacé par un espace.

Tu crois pas qu'un ; aurais suffit ? ;)

Merci de nous venir en aide (enfin...surtout moi :eek:) , je vais regarder ce que ça donne.

A+ :cool:

Amicalement
Lone-wolf
 

job75

XLDnaute Barbatruc
Re : Déplacer une feuille selon listes de choix.

Re,

Tu peux remplacer l'espace par un point-virgule dans la liste de validation.

Dans ce cas remplace aussi " " par ";" dans les 3 Split.

Note que je viens d'éditer la macro du post #4 en ajoutant If Target <> "" Then.

En effet si l'on validait la cellule [Mois] vide une feuille était créée.

A+
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 782
Membres
101 817
dernier inscrit
carvajal