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 :

Lecture cellule autre classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de dj_benz
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 178
    Par défaut Lecture cellule autre classeur
    Bonjour,

    Je voudrais faire un truc très très simple: lire une cellule d'un autre classeur. Sauf que je n'y arrive pas, c'est pourtant très simple à faire sur le papier...

    J'utilise Excel 2002.

    Peut-être verrez-vous mon erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim wbInput, wbOutput As Excel.Workbook
    Dim wsInput, wsOutput As Excel.Worksheet
    Set wbInput = Excel.Application.Workbooks.Open(filename)
    Set wsInput = wbInput.Sheets(sheetname)
    Set wbOutput = Excel.Application.Workbooks.Add
    Set wsOutput = wbOutput.Worksheets.Add
    wsOutput.name = "newSheet"
    Dim valeur As String
    valeur = wsInput.Cells(lig, col)
    Et là, j'ai une erreur 1004 (Erreur définie par l'application ou par l'objet) sur la dernière ligne.
    De plus, je trouve bizarre que la completion automatique ne fonctionne pas dès que je tape "Set wsInput = wbInput. ..." (4eme ligne)

    Peut-être que j'ai trop la tête dans le guidon pour pas voir où je me suis gourré...

    Merci de vos lumières!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut dj_benz et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim wbInput As Excel.Workbook, wbOutput As Excel.Workbook
    Dim wsInput As Excel.Worksheet, wsOutput As Excel.Worksheet
    Dim valeur As String
    Set wbInput = Excel.Application.Workbooks.Open(filename)
    Set wsInput = wbInput.Sheets(sheetname)
    'Set wbOutput = Excel.Application.Workbooks.Add
    'Set wsOutput = wbOutput.Worksheets.Add
    'wsOutput.name = "newSheet"
    valeur = wsInput.Cells(lig, col)
    Tu demandes de solutionner une erreur, mais tu donnes un code incomplet. Pas de possibilité de trouver l'erreur, celle-ci se situant ailleurs : À vu de nez, ton erreur vient de filename/sheetname/lig ou col, variables qui ont quelles valeurs ?
    Quand tu soupçonnes une ligne d'être responsable du plantage, mets un point d'arrêt dessus et vérifies chaque variable qu'elle utilise.

    Le fait d'utiliser un terme comme variable qu'Excel comprend et utilise(newsheet) n'est pas une bonne idée (à mon sens).
    A+

  3. #3
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Bonsoir,

    pour la complétation automatique, commence par bien déclarer tes variables ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim wbInput, wbOutput As Excel.Workbook
    wbInput et un variant et WbOutput un Worbook, comme la écrit aprés Gorfael il faut répéter le type pour chacune des variables.

  4. #4
    Membre confirmé
    Avatar de dj_benz
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 178
    Par défaut
    Merci pour vos réponses.

    Gorfael: tu as raison, j'évite toujours les mots-clé en tant que noms de variable, rien de tel pour s'arracher les cheveux... En réalité, ma feuille ne s'appelle pas comme ça, c'était pour l'exemple.

    JackOuYA: le fait de répéter les types dans la déclaration a résolu mon problème: ça foncitonne maintenant.

    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
     
    Dim listingFilename As String
    Dim listingSheetname As String
    Dim ligFirst As Integer, ligLast As Integer
    Dim colFil As Integer
    listingFilename = Replace(Cells(2, 2), "\", "/")
    listingSheetname = Cells(3, 2)
    colFil = Cells(4, 2)
    ligFirst = Cells(8, 2)
    ligLast = Cells(9, 2)
     
    ' Ouverture fichier listing & fichier sortie
    Dim wbInput As Excel.Workbook, wbOutput As Excel.Workbook
    Dim wsInput As Excel.Worksheet, wsOutput As Excel.Worksheet
    Set wbInput = Excel.Application.Workbooks.Open(listingFilename)
    Set wsInput = wbInput.Sheets(listingSheetname)
    Set wbOutput = Excel.Application.Workbooks.Add
     
    ' Parcours du fichier listing
    Dim ligCurr As Integer
    Dim valeur As String
    For ligCurr = ligFirst To ligLast
        valeur = wsInput.Cells(ligCurr, colFil)
        '....
    Next
    Merci à vous.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/08/2008, 21h40
  2. Réponses: 5
    Dernier message: 06/04/2007, 14h05
  3. cellule d'un autre classeur
    Par magictom42 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/10/2006, 13h02
  4. [VBA-Excel]Copier des cellules vers un autre classeur
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/10/2006, 18h18
  5. [VBA]Copier le contenu d'une cellule d'un autre classeur
    Par dudu59 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/02/2006, 17h08

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