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 :

Insertion et copie onglet automatique [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Insertion et copie onglet automatique
    Bonjour le forum,

    Ce que je souhaite faire me semble assez complexe , c'est pour ça que je me tourne vers vous:
    - j'ai une liste de codes dans un onglet sommaire
    - j'ai un onglet modèle (avec des champs pré-remplis)
    - quand je rentre une référence dans mon sommaire je souhaiterais que la feuille modèle se copie et prenne le nom de la référence rentrée.

    J'ai essayé d'adapter une petite macro mais sans succès.

    Merci à vous et bonne journée
    Cdlt
    aure_8
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Remplace ton code par la macro suivante :

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim Num As Variant, Nom As String, I As Long, C As Range, Sh As Worksheet, Teste As Boolean
        If Target.Column = 1 And Target.Rows.Count = 1 And Target.Count = Columns.Count Then
            If Application.CountA(Target) = 0 Then
                Set C = Cells(Target.Row, 2)
                For I = 1 To Len(C.Offset(-1))
                    If Mid(C.Offset(-1), I, 1) > "9" Then
                        Nom = Nom & Mid(C.Offset(-1), I, 1)
                    End If
                Next I
                For I = Len(C.Offset(-1)) To 1 Step -1
                    If Mid(C.Offset(-1), I, 1) <= 9 Then
                        Num = Mid(C.Offset(-1), I, 1) & Num
                    End If
                Next I
                Num = CInt(Num) + 1
                Application.EnableEvents = False
                C.Value = Nom & Num
                For I = 1 To Rows.Count
                    If C.Offset(I).Value = "" Then Exit For
                    C.Offset(I).Value = Nom & Num + I
                Next I
                Application.EnableEvents = True
                For Each Sh In Worksheets
                    If Sh.Name = C.Value Then
                        Teste = True
                        Exit Sub
                    End If
                Next Sh
                If Teste = False Then
                    Sheets.Add.Name = C.Value
                    Sheets(C.Value).Move after:=Sheets(Sheets.Count)
                End If
            End If
        End If
        Sheets("Sommaire").Select
    End Sub
    Oups, j'ai ajouté une feuille au lieu de copier le modèle. Si tu n'arrives pas à modifier, dis-le.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour !

    Merci pour votre. je suis désolé, je suis pas beaucoup calé en VBA et j'ai du mal a bien comprendre ton code: quand j'insère une ligne, les numéros se décalent et le numéro sur la ligne inséré devient le nom de l'onglet qui se créer? C'est ce que j'ai cru comprendre

    Merci à toi !

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    J'ai sans doute mal compris ce que tu voulais faire. J'ai cru que les noms en colonne B se suivaient les uns les autres par simple incrémentation. N'est-ce pas le cas ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Re,

    Oui c'est bien ça, sauf que moi je n'ai que des numéros (1,2,3 ...) quand j'insère autre chose ça ne marche pas. (doué comme je suis je dois mal le faire fonctionner aussi ^^)

    Cdlt
    aure_8

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Pas sûr de bien comprendre, désolé. Décris exactement ce que tu fais manuellement et ce que tu veux obtenir..

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

Discussions similaires

  1. invasion d'onglets "Automatique"
    Par Peanut dans le forum Visual Studio
    Réponses: 2
    Dernier message: 07/05/2008, 12h32
  2. INSERT SELECT - Clé primaire automatique
    Par david71 dans le forum Oracle
    Réponses: 7
    Dernier message: 10/01/2008, 16h31
  3. Insertion scrollbar dans onglet -> viewText
    Par vica6a dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 10/06/2007, 23h47
  4. créer des onglets automatiquement
    Par bnreb10 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 07/08/2006, 09h05
  5. [VBA-E] Nom d'onglet automatique
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 14/04/2006, 12h42

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