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 :

problème ajout feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Par défaut problème ajout feuille
    bonjour,


    petit problème dans mon code pour ajouter une feuille



    il me retoune comme erreur

    run time error 1004


    cannot rename a sheet to the same name as another sheet, a referenced
    object library or a workbook referenced by visual basic.


    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
    43
    44
     
    Do
        bonNom = True
        If sem <> "" Then
        'Vérifier que le nom n'existe pas déjà
            For a = 1 To ActiveWorkbook.Worksheets.Count
                If UCase(sem) <> UCase(Worksheets(a).Name) Then
                    Sheets.Add.Name = sem
                    'ActiveSheet.Name = sem
                    i = 3
                    Worksheets(sem).Select
                    ActiveSheet.Range("A" & i).Value = "Semaine" & sem
                    i = 4
                    ActiveSheet.Range("A" & i).Value = "Route"
                    ActiveSheet.Range("b" & i).Value = "Date"
                    ActiveSheet.Range("c" & i).Value = "kilometre"
                    ActiveSheet.Range("d" & i).Value = "nombre de client"
                        While ActiveSheet.Range("A" & i) <> ""
                        i = i + 1
                        Wend
                    ActiveSheet.Range("A" & i).Value = Tournee
                    ActiveSheet.Range("B" & i).Value = jourdate
                    ActiveSheet.Range("c" & i).Value = kilometre
                    ActiveSheet.Range("d" & i).Value = client
                Else
     
                     i = 3
                    Worksheets(sem).Select
                    ActiveSheet.Range("A" & i).Value = "Semaine" & sem
                        While ActiveSheet.Range("A" & i) <> ""
                        i = i + 1
                        Wend
                    ActiveSheet.Range("A" & i).Value = Tournee
                    ActiveSheet.Range("B" & i).Value = jourdate
                    ActiveSheet.Range("c" & i).Value = kilometre
                    ActiveSheet.Range("d" & i).Value = client
                End If
            Next
     
        End If
        Label1.Caption = "pas de nom"
    Loop Until bonNom = True
     
    End Sub
    une idée de mon erreur, merci

  2. #2
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Bonjour,

    Comment initialise tu ta variable sem?

    Et je pense qu'il faut que tu test ta feuille sem avec la totalité des feuilles présente car la tu test le nom sur chaque feuille les une à la suite des autres.

    Concrètement pour l'exemple tu as 3 feuille

    Semaine1 | semaine2 | semaine3

    sur la première feuille tu test le nom mais tu ne le test pas tout de suite sur les feuilles 2 et 3

    si le nom n'est pas identique du ajoute ta feuille mais rien n'enpêche qu'eele se nomme comme 2 ou 3

    Utilise un variable booleen de test .



    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
    43
    44
    45
    46
    47
    48
    49
    50
    Do
        bonNom = True
        If sem <> "" Then
        Dim existe As Boolean
        existe = False
        'Vérifier que le nom n'existe pas déjà
            For a = 1 To ActiveWorkbook.Worksheets.Count
                   If UCase(sem) = UCase(Worksheets(a).Name) Then
                           existe = true
                   end if
     
            Next
            if existe = false then
                       Sheets.Add.Name = sem
                    'ActiveSheet.Name = sem
                    i = 3
                    Worksheets(sem).Select
                    ActiveSheet.Range("A" & i).Value = "Semaine" & sem
                    i = 4
                    ActiveSheet.Range("A" & i).Value = "Route"
                    ActiveSheet.Range("b" & i).Value = "Date"
                    ActiveSheet.Range("c" & i).Value = "kilometre"
                    ActiveSheet.Range("d" & i).Value = "nombre de client"
                        While ActiveSheet.Range("A" & i) <> ""
                        i = i + 1
                        Wend
                    ActiveSheet.Range("A" & i).Value = Tournee
                    ActiveSheet.Range("B" & i).Value = jourdate
                    ActiveSheet.Range("c" & i).Value = kilometre
                    ActiveSheet.Range("d" & i).Value = client
                Else
     
                     i = 3
                    Worksheets(sem).Select
                    ActiveSheet.Range("A" & i).Value = "Semaine" & sem
                        While ActiveSheet.Range("A" & i) <> ""
                        i = i + 1
                        Wend
                    ActiveSheet.Range("A" & i).Value = Tournee
                    ActiveSheet.Range("B" & i).Value = jourdate
                    ActiveSheet.Range("c" & i).Value = kilometre
                    ActiveSheet.Range("d" & i).Value = client
                End If
     
     
        End If
        Label1.Caption = "pas de nom"
    Loop Until bonNom = True
     
    End Sub

    enfin je l'ai pas tester mais c un truc du genre

    Bon Courage

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Par défaut
    ok super

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

Discussions similaires

  1. [Base de registre] Problème ajout scanner
    Par guiguisi dans le forum Périphériques
    Réponses: 3
    Dernier message: 17/05/2006, 10h11
  2. Problème attachement feuille externe
    Par finalfx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 15/04/2006, 19h43
  3. [VBA-A]Problème de feuille de donnée access
    Par acidstrike dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/04/2006, 11h02
  4. problème ajout données avec db.execute et access
    Par Dauphind dans le forum Access
    Réponses: 2
    Dernier message: 29/11/2005, 12h03
  5. [TPAbbrevia] Problème ajout de fichiers dans archive
    Par Pill_S dans le forum Composants VCL
    Réponses: 4
    Dernier message: 13/10/2005, 23h18

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