IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Incrémenter le nom d'un feuille dans une formule [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Incrémenter le nom d'un feuille dans une formule
    Bonjour à tous,

    Je ne suis absolument pas calée en macro, mais voila j'ai un exercice à faire, et je cherche à incrémenter le nom d'un feuille dans une formule plus exactement une matrice.

    Voila le problème, mes feuilles sont nommés comme tel:

    Mois n+1, Mois n+2, Mois n+3 ....

    J'ai dans un premier temps trouvé comment, rajouter une feuille, en copiant la précédente et en an incrémentant le nom de la feuille:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim D As String
    'Copie du dernier onglet
    Sheets(Worksheets.Count).Copy After:=Sheets(Worksheets.Count)
    With ActiveSheet
    D = Range("B1").Value + 1
    .Name = "Mois n+" & Range("B1").Value + 1
    .Range("B1") = D
    End With
    Maintenant, dans un ensemble de cellule, ici de E4 à J4, j'ai une matrice:

    {='Mois n+3'!E4:J4+'Mois n+3'!F44:K44}

    Ce que je cherche à faire c'est d'incrémenter le 'Mois n+3' de 1 à chaque fois que je copie une feuille.

    Je suis partie sur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("E4:J4").Select
    Selection.FormulaArray = "='Mois n+4'!RC:RC[5]+'Mois n+4'!R[40]C[1]:R[40]C[6]"
    Mais la je bloque, je suis incapable de trouver comment incrémenter le nom de ma feuille pour que la matrice suive à chaque exécution de la macro.


    Je ne sais si j'ai été assez claire, n'hésitez pas à me demander.

    Je suis à court d'idées, donc si quelqu'un à une idée je prends .

  2. #2
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Maintenant je suis partie sur ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        If Range("B1") = 5 Then Range("E4:J4").Select
            Selection.FormulaArray = "='Mois n+4'!RC:RC[5]+'Mois n+4'!R[40]C[1]:R[40]C[6]"
        If Range("B1") = 5 Then Range("E6:J6").Select
            Selection.FormulaArray = "='Mois n'!R[-3]C[-2]:R[-3]C[3]-'Mois n+4'!R[-1]C:R[-1]C[5]"
    Que je referais 36 fois (le nombre de feuille auquel je doit arriver)

    Mais je suis confronter à un problème, lorsque je lance la macro, il me demande de chercher ou se trouve 'Mois n+6' puis 'Mois n+7'...etc, qui ne sont pas encore créé.

    Existe t'il un moyen de l’empêcher de chercher ?

    De plus je ne sais pour qu'elle raison le résultat affiché dans les cellules E4:J4 est bon, mais pas dans les cellules E6:J6.

    Une idée pourquoi ça marche pour certaines cellules et pas d'autres ?

  3. #3
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Tu peux faire une boucle afin de ne pas écrire 36 lignes mais il faut que tu ais créée la feuille avant d'entrer la formule ou alors annuler l'affichage des alertes. Un exemple sur lequel tu peux t'aracher les cheveux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Application.DisplayAlerts = False
     
    For I = 1 To 36
     
        Range("A" & I).FormulaArray = "='Mois n+" & I & "'!E4:J4+'Mois n+" & I & "'!F44:K44"
     
    Next I
     
    Application.DisplayAlerts = True
    Hervé.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Merci
    Avec un peu de temps et de patiente j'obtiens exactement ce que je souhaite !!!

    Merci !!

    Ça me donne:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Sub Macro3()
    '
    ' Macro3 Macro
     
        Dim D As String
        'Copie du dernier onglet
        Sheets(Worksheets.Count).Copy After:=Sheets(Worksheets.Count)
        With ActiveSheet
            D = Range("B1").Value + 1
            .Name = "Mois n+" & Range("B1").Value + 1
            .Range("B1") = D
        End With
     
     
    Application.DisplayAlerts = False
     
     Range("B1") = D
     E = D - 1
     
        Range("E4:J4").Select
            Selection.FormulaArray = "='Mois n+" & E & "'!RC:RC[5]+'Mois n+" & E & "'!R[40]C[1]:R[40]C[6]"
        Range("E6:J6").Select
            Selection.FormulaArray = "='Mois n'!R[-3]C[-2]:R[-3]C[3]-'Mois n+" & E & "'!R[-1]C:R[-1]C[5]"
     
    Application.DisplayAlerts = True
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/02/2015, 12h09
  2. [XL-2013] Nom d'un onglet dans une formule à partir d'une cellule
    Par pounette dans le forum Excel
    Réponses: 3
    Dernier message: 04/12/2013, 15h06
  3. Récupérer une partie du nom de la feuille dans une cellule
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 06/11/2013, 15h07
  4. [XL-2007] Nom fichier et feuille dans une cellule
    Par Scuba69 dans le forum Excel
    Réponses: 2
    Dernier message: 07/05/2010, 14h28
  5. Réponses: 3
    Dernier message: 20/06/2008, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo