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 :

accès à un fichier excel depuis un autre fichier excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut accès à un fichier excel depuis un autre fichier excel
    bonjour,

    le code suivant hurle sur l'affectation à une variable de type workbook.



    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    Sub analyse()
    
    Dim Cell_Ec As Range
    Dim Cell_Rev As Range
    Dim fiche As Workbook
    
    Dim Ref As String
    Dim severite(1 To 3) As Integer
    severite(1) = 0 'minor
    severite(2) = 0 'signif
    severite(3) = 0 'oper
    Dim nom_feuil As String
    
    Dim Modero As String 'feuille 8
    Dim Pair1 As String 'feuille 9
    Dim Pair2 As String 'feuille 10
    Dim Pair3 As String 'feuille 11
    Dim Pair4 As String 'feuille 12
    Dim Pair5 As String 'feuille 13
    
    Dim ligne As Integer
    Dim ln As Integer
    Dim fich As String
    
    
    Const Rep As String = "D:\PatrickBrunel\IVQ\etudes\PeerReview\Revues\"
    
    
    ' recuperer le nom du fichier à lire
    Call datation
    'MsgBox LeMois
    Set Cell_Ec = ThisWorkbook.Worksheets(LeMois).Rows("1:1")
    
    ligne = 1
    Do While (Cell_Ec.Offset(ligne).Columns("c").Value <> "")
    Ref = Cell_Ec.Offset(ligne).Columns("c").Value
    fich = Replace(Ref, "/", "_") + ".xls"
    fich = Rep + fich
    MsgBox fich
    
    'rechercher le fichier dans le repertoire, verifier son existence et lit les fiches de descriptions
    
    ' If FileLen(fich) <> 0 Then
     'MsgBox FileLen(Ref)
     
     
     
    ' Set fiche = WorkBooks.Open Filename = fich
    
    Set fiche = Workbooks(fich) ' le programme plante à ce niveau
    If fiche Is Nothing Then
    Workbooks.Open (fich)
    Else: Set fiche = Nothing
    End If
     
    ' Modero = fiche.Workshetts(8).Name
     Modero = fiche.Workshetts(8).Name
     Pair1 = fiche.Workshetts(9).Name
      Pair2 = fiche.Workshetts(10).Name
       Pair3 = fiche.Workshetts(11).Name
       Pair4 = fiche.Workshetts(12).Name
       Pair5 = fiche.Workshetts(13).Name
       MsgBox Pair1
    ' End If
     
     Set Cell_Rev = Workbooks(Ref).Workshetts(Modero).Columns("d")
     
     
     For ln = 8 To 40
      Select Case Cell_Rev.Offset(ln).Value
      
    Case "minor"
    severite(1) = severite(1) + 1
    
     Case "signif"
     severite(2) = severite(2) + 1
     
     Case "oper"
      severite(3) = severite(3) + 1
    
    End Select
    Next ln
    
    ' fin de boucle de recherche
    
    ligne = ligne + 1
    Loop
    
    End Sub

    ce que je veux faire est de récupérer des données sur un ensemble de fichiers
    pour les traiter dans une macro du fichier d'analyse.

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour. Bienvenue sur nos forums...

    Cela m'étonnerait que le code hurle seulement sur cette ligne... Ton code est pourri d'erreurs ( ce n'est pas une critique, juste une constatation )

    Tu as mis une ligne en commentaires. Pour moi, elle est (presque bonne)
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ' Set fiche = WorkBooks.Open Filename = fich
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set fiche = workbooks.open(filename:=fich)
    et cela pourrait aller mieux.
    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set fiche = Workbooks(fich)
    doit être supprimée. Elle ne fonctionne que si le classeur nommé fich est ouvert, car la collection Workbooks ne sait forcément contenir que les classeurs ouverts.

    Dans les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Modero = fiche.Workshetts(8).Name
     Pair1 = fiche.Workshetts(9).Name
    , la collection Workshetts n'existe pas. Tu dois corriger en Worksheets

    Je n'ai pas regardé le reste, mais ton code n'est pas plus propre lorsque tu utilises du code tel que
    car si l'utilisateur modifie l'ordre des feuilles, ca va un peu foirer...

    Si Fiche est nothing, ton code va planter également sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Modero = fiche.Workshetts(8).Name
    Bref, sans vouloir te décourager, il n'y a rien de valable dans ce code. Tu aurais intérêt à d'abord définir en français ce que tu souhaites réaliser, puis à commencer à coder proprement... avec notre aide éventuelle.

    Ok?

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut
    bien sur Ok et merci
    ce qui veut dire que la syntaxe est un peu différence suivant que l'on indique le nom du ficier en "dur" ou dans une variable. c'est ça qui m'a induit avec de l'erreur.
    bien sûr pour les fautes sur "sheet", j'avais mis des mouffles !!!

    à +
    Patnel

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut
    mouffles = erreur d'écriture
    il n'empéche que ta solution n'étatait pas exprimée dans les tutoriaux

    merci à +

    patnel

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

Discussions similaires

  1. Mise à jour d'un fichier TARGET excel depuis un autre SOURCE
    Par breweryfr dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/09/2013, 21h59
  2. Lire un fichier rb depuis un autre fichier rb
    Par MackValentine dans le forum Ruby
    Réponses: 5
    Dernier message: 27/08/2012, 11h05
  3. [XL-2007] Plantage excel à la fermeture du fichier avec macro si autre fichier excel ouvert
    Par Systémicien dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/03/2011, 09h00
  4. Réponses: 1
    Dernier message: 13/07/2010, 06h59
  5. appeler la fonction d'un fichier js depuis un autre fichier
    Par kohsaka dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/09/2007, 18h49

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