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

Excel Discussion :

Importer et nommer une feuille [XL-2010]


Sujet :

Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2009
    Messages : 117
    Points : 126
    Points
    126
    Par défaut Importer et nommer une feuille
    Bonjour, j'essai d'importer des fichiers excel en onglet dans un autre fichier excel et par le fait même de renommer chaque onglet selon le nom de la feuille d'origine, mais une erreur se produit et m'indique que je ne peux renommer une feuille du même nom que mon fichier. Comme faire pour contourner cela. Merci de votre appui.

    voici mon 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    ChDir ActiveWorkbook.Path
    Set classeurMaitre = ActiveWorkbook
    Dim DernLigne As Long
    Dim ws As Worksheet
    Dim Chemin As String
    Dim rep As String
    Dim nbfichier As Integer
    Chemin = "C:dossier temporaire de ficheir\" 'a adapter
    rep = Dir(Chemin & "*.xlsx")
    While Not rep = ""
    nbfichier = nbfichier + 1
    rep = Dir
    Wend
    MsgBox nbfichier
     
     
     
     
    Compteur = 1
      nf = Dir("*.xlsx")
      Name = Dir("*")
     
     
     
     
      Do While nf <> ""
          If nf = classeurMaitre.Name Then
     
     
        GoTo suite
        Else
          Workbooks.Open Filename:=nf
          For k = 1 To nbfichier
            Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
            classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = nf
            Compteur = Compteur + 1
     
    next

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Pas testé et après une lecture rapide. Sauf horreur de ma part, la fonction DIR retourne le nom de fichier et l'extension avec le point inclus. Toujours sauf horreur de ma part, on ne peut pas mettre de point dans un nom de feuille.

    Teste en vitesse, en enlevant le point du nom de fichier. Tu devrais pouvoir le faire avec replace.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Mairequimby Voir le message
    une erreur se produit et m'indique que je ne peux renommer une feuille du même nom que mon fichier.
    Quel est le message d'erreur ?
    Sur quelle ligne l'erreur se produit-elle ?

    Ta façon d'utiliser les Dir est pour le moins... chaotique : avec ou sans chemin, avec ou sans parenthèses, avec ou sans Dir() dans la boucle.
    Déjà, je ne comprends pas pourquoi tu fais deux boucles.
    Dans ta seconde boucle, tu ne mets pas de Dir() donc nf ne changera pas.
    Dans ton Open, tu n'indiques pas le chemin pour ouvrir le fichier.
    Pourquoi avoir mis une boucle For to sur le nombre de fichiers à l'intérieur de la boucle While ?
    Ta boucle For tourne sur un nombre de fichiers mais sa variable k est utilisé pour un numéro de feuille ???

    Entre autres...

    Je pense qu'il y a un gros soucis global de conception et d'erreur de détail dans ton code.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre actif Avatar de EBRAG
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 125
    Points : 236
    Points
    236
    Par défaut
    Bonjour Menhir

    Dans ta seconde boucle, tu ne mets pas de Dir() donc nf ne changera pas.
    c'est ce qui apparaît à la première lecture, vue l'organisation du code, mais le next que tu vois est le next du for k pas du Do While

    on ne sait pas ce qu'il y a derrière, (ni devant d'ailleurs !)

    Pas facile avec un code tronqué !
    Joël GARBE
    Fouillez bien, vous trouverez (ou pas !)

  5. #5
    Membre actif Avatar de EBRAG
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 125
    Points : 236
    Points
    236
    Par défaut
    Bonjour,

    quand tu fais...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
    la feuille est copiée avec le nom de la feuille d'origine, pourquoi vouloir la renommer ensuite ???

    la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = nf
    parait inutile ?

    Essaie d'indenter ton code de façon cohérente de façon à faciliter la lecture...
    Joël GARBE
    Fouillez bien, vous trouverez (ou pas !)

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2009
    Messages : 117
    Points : 126
    Points
    126
    Par défaut ca fonctionne - Onglet nommer en fonction du fichier
    Merci

    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
     
    nf = Dir("*.*")
      Name = Dir("*")
     
    Do While nf <> ""
          If nf = classeurMaitre.Name Then
         ' MsgBox (classeurMaitre.Name)
     
        GoTo suite1
        Else
          Workbooks.Open Filename:=nf
          For k = 1 To Sheets.Count
            Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
            classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = nf
            Compteur = Compteur + 1

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 01/09/2011, 23h14
  2. Réponses: 23
    Dernier message: 01/08/2008, 13h35
  3. Nommer une feuille Excel
    Par a_durand dans le forum LabVIEW
    Réponses: 2
    Dernier message: 14/05/2008, 16h29
  4. Import code dans une feuille provoque un bug
    Par mfm dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/04/2008, 14h19
  5. nommer une feuille excel par la date du jour.
    Par Bourezak dans le forum Access
    Réponses: 3
    Dernier message: 22/01/2007, 15h22

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