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 :

Copie d'onglet de façon que les formules s'ajustent au nouveau nom


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Par défaut Copie d'onglet de façon que les formules s'ajustent au nouveau nom
    Bonjour,

    J'ai un onglet que je nomme 2012, je fais une copie de cet onglet que je nomme 2013.

    Le problème est que dans le nouvel onglet 2013 les formules qui se réfère au nom de l'onglet conserve le nom 2012 et ne prend pas le nouveau.

    Voici mon code, qu'est ce que je dois ajoute ???

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     Private Sub Workbook_Open()
     
        Dim ws As Worksheet
        Dim Verif_An, Nom_Feuille, Anc_Feuille As String
        Dim Premier As Boolean
        Dim An_Date, Periode As Integer
        Dim Existe As Boolean
     
        Existe = False
        An_Date = Year(Date)
        Verif_An = 2013  'An_Date
        Periode = 1    'Month(Date)
     
     
        If Periode = 1 Then
            For Each ws In ThisWorkbook.Worksheets
               If ws.Name = Verif_An Then  'Vérifie si l'onglet année existe déjà si oui il n'ajoutera aucun onglet
                    Existe = True
               End If
            Next ws
     
            For Each ws In ThisWorkbook.Worksheets
                    If Left(ws.Name, 4) = "Data" And Premier = False And Existe = False Then
     
                        Nom_Feuille = Verif_An
     
                        Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Data " & Verif_An 'ajoute l'onglet data année à la fin pour la nouvelle année
     
                        Anc_Feuille = Verif_An - 1
                        Sheets(Anc_Feuille).Select
                        Sheets(Anc_Feuille).Copy After:=Sheets(Anc_Feuille)
                        Sheets(Anc_Feuille & " (2)").Select
                        ActiveSheet.Name = Nom_Feuille
     
                        Premier = True
     
                    End If
     
             Next ws
        End If
     
    End Sub
    Merci et bonne journée

  2. #2
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Salut,
    tu peux faire un remplacement sur ton nouvel onglet dans les formules !

    à tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Sheets(Nom_Feuille).Cells.Replace What:=Anc_Feuille & "!", Replacement:=Nom_Feuille & "!", _
                                                      LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _
                                                      False, ReplaceFormat:=False
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Par défaut Erreur exécution 9
    Bonjour,

    Je suis débutante en VBA je vois ce que ta fonction fait.

    Merci pour le code, mais j'ai une erreur d'exécution 9, " L'indice n'appartient pas à la sélection".

    Merci

  4. #4
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Par défaut Copie onglet que les formules s'ajustent
    Bonjour,

    J'ai trouvé le pourquoi de mon erreur d'exécution 9, mais le code ne change rien dans mes formules.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets(Nom_Feuille).Cells.Replace What:=Anc_Feuille & "!", Replacement:=Nom_Feuille & "!", _
                                                      LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _
                                                      False, ReplaceFormat:=False
    Merci

  5. #5
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    Citation Envoyé par cchasse98 Voir le message
    Bonjour,

    J'ai trouvé le pourquoi de mon erreur d'exécution 9, mais le code ne change rien dans mes formules.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets(Nom_Feuille).Cells.Replace What:=Anc_Feuille & "!", Replacement:=Nom_Feuille & "!", _
                                                      LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _
                                                      False, ReplaceFormat:=False
    Merci

    Salut
    au pifometre comme ca, essaie de rajouter ca dans la commande :
    ++
    Nico

  6. #6
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par cchasse98 Voir le message
    ..., mais le code ne change rien dans mes formules.
    Difficile de voir sans un exemple de tes formules
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

Discussions similaires

  1. Réponses: 9
    Dernier message: 17/06/2015, 09h44
  2. [XL-2007] copy destination sans les formules qui sont dans certaines Cellules de la source
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/09/2014, 10h48
  3. Réponses: 7
    Dernier message: 27/03/2013, 20h00
  4. Copies de flots en passant par les itérateurs
    Par Christophe Brun dans le forum C++
    Réponses: 7
    Dernier message: 02/07/2003, 11h41

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