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 :

Probleme de macro [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Citrax
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2014
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 188
    Par défaut Probleme de macro
    Salut tout le monde, je ne sais pas si certains pro du VBA trainent encore par ici, mais dans le doute je poste ma demande. Puisque trouvé nul part ailleurs.

    Depuis 2 semaine je suis bloqué sur une commande VBA vraiment pratique, mais qui me rend dingue.
    En fait j'ai recuperer et bricoler un code qui fait presque ce que je veux finaliser, mais il me manque le point le plus vital;
    J'ai plusieurs references presque identique dans la colonne A et en double cliquant sur l'une d'elle je veux creer une nouvelle feuille unique, mais qui ne soit pas une feuille vierge d'excel, plutot une fiche de renseignement type que j'ai lourdement préremplie et preparé.
    A chaque creation de la nouvelle fiche de rens, celle ci doit porter le nom de la cellule d'origine.
    Et j'ai juste a cliquer dans les cases prevalidées.

    Sauf que je ne sais absolument pas ou definir dans le code VBA que la nouvelle feuille ("FRT") sera mon modele vierge et le seul a dupliquer....

    Please, help me, je vais imploser !!
    Voila le code :

    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
    Option Explicit
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim cel As Range
    Dim ws As Worksheet
    Dim Nom As String
     
    If Target.Column <> 1 Then Exit Sub
    On Error Resume Next
    Nom = Target.Value
    If Nom = "" Then Exit Sub
    For Each ws In Worksheets
        If ws.Name = Nom Then
            Call MsgBox("La [FRT] Fiche de Relevé de Traversée liée à cette référence existe déja.", vbCritical, "Impossible de créer une feuille")
            Exit Sub
        End If
    Next ws
    Sheets.Add , Sheets(Worksheets.Count)
    ActiveSheet.Name = Nom
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 166
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Actuellement le code que tu as réalisé vérifie si le nom de feuille cherchée qui correspondant à la valeur de la cellule où à eu lieu le double clic. Si le nom existe tu quittes la procédure dans le cas contraire tu insères une nouvelle feuille.
    Sauf que je ne sais absolument pas ou definir dans le code VBA que la nouvelle feuille ("FRT") sera mon modele vierge et le seul a dupliquer....
    Comment ferais-tu manuellement ?
    Je suppose que la feuille modèle existe déjà et se trouve sur le même classeur ?
    Donc il suffit de faire une copie de cette feuille modèle et la renommer du nom de la valeur de la cellule.
    Pour en connaître le code, utilise l'enregistreur de macros
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre très actif Avatar de Citrax
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2014
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 188
    Par défaut Plutot sans macro
    Bonjour, merci pour la reponse rapide.
    Alors jai testé votre solution et elle est bien, mais en procedant par simple copie ou par macro, je perd du coup toutes les fonctions interessantes qu’il y avait deja.

    et le risque grave serait de creer un doublon car a terme j’ai plus de mille references.
    Il faut donc qu’en double cliquant sur une cellule de ma liste, soit le message d’erreur apparait et empeche toute procedure, soit une nouvelle feuille est créee. Mais cette nouvelle feuille doit etre mon modele et deja nommée, sinon aucun interet.

    Je ne sais pas vraiment comment je ferais manuellement sauf en repetant l'action 5000 fois.....
    Avez vous une idée dans mon code de quelle sequence choisit de creer une feuille vierge ?
    Il me semblait que c’etait “sheet.add” sauf que non…

    ps: navré mais j'ai repondu il y a deux jours et le message n'est pas passé !?!

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Citrax Voir le message
    en procedant par simple copie ou par macro, je perd du coup toutes les fonctions interessantes qu’il y avait deja.
    Tu peux être plus explicite ? Comment procèdes-tu à la copie ? Qu'est-ce que tu perds exactement ?

    et le risque grave serait de creer un doublon car a terme j’ai plus de mille references.
    Si tu veux créer 1000 onglets dans un classeur, je doute que ce soit gérable et je ne suis même pas sûr que ce soit techniquement possible.

    Pour éviter les doublons, il suffit que la désignation se trouvant dans ta cellule source soit unique.
    Excel dispose d'un outil pour identifier les doublons dans la mise en forme conditionnelle.

    Il faut donc qu’en double cliquant sur une cellule de ma liste, soit le message d’erreur apparait et empeche toute procedure, soit une nouvelle feuille est créee.
    Quelle est la condition qui oriente vers l'un ou l'autre de ces "soit" ?

    Mais cette nouvelle feuille doit etre mon modele et deja nommée, sinon aucun interet.
    Regarde dans l'aide VBA Excel la méthode Copy de l'objet Worksheet.

    Avez vous une idée dans mon code de quelle sequence choisit de creer une feuille vierge ?
    Au lieu d'utiliser la méthode Add de l'objet Sheets, utilise la méthode Copy de l'objet Worksheet.
    Voir sa syntaxe et son utilisation dans l'aide VBA.

  5. #5
    Membre très actif Avatar de Citrax
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2014
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 188
    Par défaut Soluce founded
    Bonjour tout le monde,
    Alors tout d’abord merci de vos recherches actives pour m’aider, même si je n’ai pas tout saisi au langage de pro que vous user.Ensuite désolé pour l’absence un peu irrespectueuse, j’avais perdu le lien du forum, donc galère galère de retrouver cette page.
    J’ai finalement réussi à trouver ma soluce d’après vos bonnes indications, car il s’agissait en fait d’une condition de création de feuille si la cible n’était pas référencée. Au debut j’avais pas compris.
    Du coup en changeant les 2 dernières lignes j’ai obtenu la copie de mon model plutôt qu’une feuille vierge.
    A la main la manip était simple, et pour milles références c’était trop long.

    (ce que je perdais c’était la verif de la reference existante, et le message box, plus le double clic.
    Les doublons n’etaient pas un probleme car j’en ai déjà 200 au depart, mais je voulais surtout eviter d’en créer d’autre par megarde.)
    Voila, Je poste le code des fois qu’il puisse servir à d’autres.
    Merci encore, & au plaisir.

    « Dupliquer une feuille modelé à partir d’une liste de donnée » :

    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
    Option Explicit
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim cel As Range
    Dim ws As Worksheet
    Dim Nom As String
     
    If Target.Column <> 4 Then Exit Sub
    On Error Resume Next
    Nom = Target.Value
    If Nom = "" Then Exit Sub
    For Each ws In Worksheets
        If ws.Name = Nom Then
            Call MsgBox("La Fiche liée à cette référence existe déja.", vbCritical, "Impossible de créer une feuille")
            Exit Sub
        End If
    Next ws
    Sheets("modele").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = Nom
    End Sub

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

Discussions similaires

  1. Probleme lancement macro excel 2007
    Par nico63vb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/03/2007, 13h55
  2. Problème de macro
    Par emmablue dans le forum Access
    Réponses: 2
    Dernier message: 19/07/2006, 15h00
  3. [VBA-excel]Probleme de macro pour creer un graphique.
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 15h42
  4. [VBA-E] Probleme couleur macro
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/09/2005, 11h11
  5. probleme de macro
    Par wxcnbv dans le forum C
    Réponses: 2
    Dernier message: 14/07/2004, 21h22

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