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 :

Génération de 200 fichiers en automatique


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    achat
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : achat
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Génération de 200 fichiers en automatique
    Bonjour,
    Je début en programmation et sollicite votre aide car le programme ci dessous génère bien les fichiers demandés mais s'arrête à une dizaine de fichiers en automatique au lieu des 200 attendus...
    Il y a en effet 200 colonnes dans le fichier original avec le chiffre d'affaire de 200 clients et je souhaiterais générer un fichier par client qui reprendrait la première colonne et la colonne du client.
    (message d'erreur 1004 fichier inaccessible , cela met en surbrillance nwbk.SaveAs chemin & .Cells(1, i))
    voici le programme:

    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
    Sub a()
        Dim i As Long, nwbk As Workbook, chemin$
        chemin = "c:\temp\"
        Application.ScreenUpdating = False
        With ThisWorkbook.ActiveSheet
              derco = Cells(1, Columns.Count).End(xlToLeft).Column
            For i = 2 To derco
                If .Cells(1, i) <> "" Then
                    Set nwbk = Workbooks.Add(-4167)
                    .Range("A1:A114").Copy nwbk.Sheets(1).[A1]
                    .Cells(1, i).Resize(.Cells(.Rows.Count, i).End(xlUp).Row).Copy nwbk.Sheets(1).[B1]
                    nwbk.Sheets(1).Cells.EntireColumn.AutoFit
                    nwbk.SaveAs chemin & .Cells(1, i)
                    nwbk.Close True
                End If
                Set nwbk = Nothing
            Next i
        End With
    End Sub
    Je vous remercie pour votre aide!

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour,

    pour nous aider à diagnostiquer ... lorsque tu as une erreur est du code en surbrillance tu peu utiliser la souris la placer sur les différentes variables afin de connaitre leur valeur ...

    valeur de i , de nwbk ....

  3. #3
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, est-ce que ton nom de fichier .Cells(1, i) ne contient pas des caractères interdits ? pour voir cela utiliser qqch comme :
    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
    Option Explicit
     
    Private Function NomFichierValide(sChaine As String) As Boolean
    Dim i As Long
    Const CaracInterdits As String = """*/:<>?[\]|"
        NomFichierValide = True
        If Len(sChaine) = 0 Then
            NomFichierValide = False
            Exit Function
        End If
        For i = 1 To Len(CaracInterdits)
            If InStr(sChaine, Mid$(CaracInterdits, i, 1)) > 0 Then
                NomFichierValide = False
                Exit Function
            End If
        Next i
    End Function
    et agir en conséquence.

  4. #4
    Candidat au Club
    Femme Profil pro
    achat
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : achat
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci pour la réponse, non pas de caractères interdits ..cela bloque après la 13ème colonne.

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonjour ,

    et il y as quoi dans ta 14° colonne 1° ligne ?

  6. #6
    Candidat au Club
    Femme Profil pro
    achat
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : achat
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    il est noté 8300MEDICAL SERVICE

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    et pour chemin c'est bien c:\tmp .?

  8. #8
    Candidat au Club
    Femme Profil pro
    achat
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : achat
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    oui c'est c:\temp\

    Le problème venait du curseur qui était a la ligne dans la cellule
    merci pour votre aide

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

Discussions similaires

  1. [2.x] Génération des fichiers PDF automatiquement
    Par hrizi dans le forum Symfony
    Réponses: 4
    Dernier message: 11/03/2014, 19h14
  2. [PHP 5.3] Génération de fichier excel automatique
    Par roy2work dans le forum Langage
    Réponses: 4
    Dernier message: 26/09/2013, 11h35
  3. Réponses: 9
    Dernier message: 18/09/2006, 08h24
  4. Import de fichier CSV automatique dans Access
    Par Jmar dans le forum Access
    Réponses: 4
    Dernier message: 20/01/2006, 10h48
  5. [SQL*Plus] génération dynamique du fichier de spool
    Par lalystar dans le forum Oracle
    Réponses: 3
    Dernier message: 06/12/2004, 10h44

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