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 :

VBA Copier un onglet avec InputBox et éviter les doublons de noms [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Par défaut VBA Copier un onglet avec InputBox et éviter les doublons de noms
    Bonjour,

    Je cherche de l'aide concernant un code VBA.
    J'ai trouvé différents échanges sur le forum mais pas de solutions.

    J'ai une feuille Active avec un Bouton qui active la macro ci-dessous.
    Le but est de copier en dernier une feuille masquée nomée "TRAME_PERIODE" en changeant le nom mais de vérifier que le nom entré dans l'inputbox n'est pas une feuille déjà existante.
    J'ai un message d'erreur qui m'indique "Erreur d'exécution '438' : Propriété ou méthode non gérée pour cet objet

    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
    Private Sub CREER_PERIODE_Click()
     
        Dim periode As String
        Dim WS As Worksheet
        Dim WSname As String
     
        periode = InputBox("Veuillez entrer le nom de votre Période")
     
        For Each WS In Worksheets
            If WS.Name = periode Then
                MsgBox ("Cette période existe déjà, merci d'entrer un autre nom")
                Exit Sub
            End If
        Next
        Sheets("TRAME_PERIODE").Visible = True
        Sheets("TRAME_PERIODE").Copy after:=Sheets(Sheets.Count)
        ActiveSheet.Name = periode
        ActiveSheet.Unprotect
        Selection.OnAction = "ACCUEIL"
        Range("A3").Select
    End Sub
    Avez-vous une solution ou une modification de mon code ?

    Je vous remercie de votre aide.

    Mikael
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 54
    Par défaut
    Bonjour,

    Je pense que ton erreur viens de cette ligne:

    Normalement c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Unprotect Password:="YourPassWord"

  3. #3
    Membre régulier
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Par défaut
    Bonjour Manu3100,

    Je te remercie pour ta réponse.

    Ma feuille n'est pas protégé par un mot de passe. Elle est juste vérrouillée.

    Cdt,
    Mikael2403

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 54
    Par défaut
    Ok, j'ai telecharge ton fichier et l'erreur vient de cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.OnAction = "ACCUEIL"
    Je ne suis pas sure de ce que tu veux faire, mais si tu veux juste revenir sur l'onglet ACCUEIL, tu n'as juste a la changer par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("ACCUEIL").Select
    Et la macro fonctionne sans probleme

  5. #5
    Membre régulier
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Par défaut
    En fait ce que je souhaite dans la fonction Selection.OnAction = "ACCUEIL" c'est d'affecter une macro nommée ACCUEIL à un bouton retour déjà créé.

    Ce n'est peut être pas le bon code. :-(

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 54
    Par défaut
    J'ai compris, ca marche pour moi donc j'espère que ca va être la meme pour toi


    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
    Private Sub CREER_PERIODE_Click()
     
        Dim periode As String
        Dim WS As Worksheet
        Dim WSname As String
        Dim wb As Workbook
        Dim objBtn As Object
     
        Set wb = ThisWorkbook
     
        periode = InputBox("Veuillez entrer le nom de votre Période")
     
        For Each WS In Worksheets
     
                If WS.Name = periode Then
     
                        MsgBox ("Cette période existe déjà, merci d'entrer un autre nom")
                        Exit Sub
     
                End If
     
        Next
     
        Sheets("TRAME_PERIODE").Visible = True
        Sheets("TRAME_PERIODE").Copy after:=Sheets(Sheets.Count)
        ActiveSheet.Name = periode
        ActiveSheet.Unprotect
     
         Set objBtn = ActiveSheet.Shapes("Button 1")
        objBtn.OnAction = "ACCUEIL"
     
        wb.ActiveSheet.Range("A3").Select
     
    End Sub

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

Discussions similaires

  1. [XL-2010] VBA - copier des onglet dans nouveau fichier en fonction d'un referentiel
    Par smo911 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/11/2015, 18h16
  2. [XL-2007] Copier une feuille avec des TDC et les garder indépedant
    Par oekoniko dans le forum Excel
    Réponses: 3
    Dernier message: 09/07/2012, 11h54
  3. Réponses: 2
    Dernier message: 28/06/2009, 10h03
  4. Comment éviter les doublons dans ma table
    Par einegel dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2004, 12h18
  5. Éviter les doublons dans une requete
    Par royrremi dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/08/2004, 19h37

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