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 :

recuperer les informations d'un autre document excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de léti07
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut recuperer les informations d'un autre document excel
    bonjour à tous,

    j'aimerai créer un document qui resemble à ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nom doc__________%_____liste
    c8hf7-8-45-15 ___ 5 ____ 586, 984, 745
    le nom du document je le rentre moi-même (avec un lien dessus)
    mais j'aimerais pouvoir recuperer le % et ma liste qui se trouve dans un autre document (qui porte le nom qui se situe dans ma colonne "nom doc")

    je voudrai faire ça de façon automatique (avec juste un appuie sur un bouton)

    mon % se trouve toujours dans la même cellules
    et ma liste dans la même colonne

    Pour voir si ma colonne "nom doc" est vide j'utilise ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A5").EntireColumn.SpecialCells(xlCellTypeConstants).Select <> ""
    c'est le seul truc que j'ai reussi à faire pour l'instant et ça marche

    mais comment faire pour affecter à la colonne E (à partir de E5) une valeur si il y a quelque chose dans la colonne A de la même ligne??

    et comment faire pour recuperer les valeurs dans un autre document??


    j'espere que j'ai été assez claire
    et merci d'avance de m'aider

  2. #2
    Membre éclairé Avatar de léti07
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    j'ai reussi à affecter une valeur sur ma colonne C en fonction de la colonne A (si elle est rempli ou pas)

    il me reste donc à aller chercher une valeur dans un autre classeur.

    quelqu'un peux m'aider?

    merci d'avance

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je me dévoue
    Déjà, je ne comprends pas ta ligne
    Range("A5").EntireColumn.SpecialCells(xlCellTypeConstants).Select <> ""
    Pour voir si ta colonne est vide, si tu sélectionnes A5 et que A4 est renseignée, tu ne le sauras pas. Ensuite, inutile de sélectionner la dernière ligne renseignée pour savoir si elle est renseignée. Si c'est A5 et que A5 n'est pas renseigné, tu auras un message d'erreur.
    Enfin, évite d'utiliser Select

    Je vais supposer que A5 est toujours renseigné, tu obtiendras la même chose en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Vide = Range("A5").EntireColumn.SpecialCells(xlCellTypeConstants).Row = 5
    msgbox Vide 'Juste pour que tu puisses voir que je dis vrai ^^
    Pour le reste, peux-tu reformuler ton pb, j'ai peur de ne pas avoir compris
    A+

  4. #4
    Membre éclairé Avatar de léti07
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    J'ai enlever ce morceau de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A5").EntireColumn.SpecialCells(xlCellTypeConstants).Select <> ""
    je voulais juste savoir si mes cellules de A5 à A35 etait vide ou non (le reste je m'en fiche) et si elles ne sont pas vide je remplis mes cellules C5 à C35 (celle qui correspond au case non vide)

    pour cela j'ai fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim val, compteur
     
    For compteur = 5 To 35
        Range("A" & compteur).Select
        Range("C" & compteur).Select
        If Range("A" & compteur).Value <> "" Then
            nom = Range("A" & compteur).Value & (".xsl")
            Range("C" & compteur).Value = "OK"
        End If
     
    Next
    ca marche tres bien

    maintenant ce que je voudrai
    c'est pouvoir remplir ma cellule C ( à la place du "OK" ) avec une donnée qui se trouve dans un autre classeur (et qui se situe toujours dans la même colonne).
    le nom de ce classeur je le recupere dans ma variable "nom" (ca marche aussi )

    Mais comment faire maintenant pour recupere la valeur dans l'autre classeur?

    j'espere que je suis un peu plus clair
    n'hesitez pas à me poser des questions sinon

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Il suffit que tu désignes l'autre classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        If Range("A" & compteur).Value <> "" Then
            nom = Range("A" & compteur).Value & (".xsl")
            Range("C" & compteur).Value = Workbooks("NomDeLautreClasseur.xls").worksheets("NomDeLaFeuille").cells(NoLigne,NoColonne).value
        End If
    Je suppose que tu es dans le classeur devant recevoir la donnée et que l'autre classeur a été ouvert au préalable.
    Tu dis

    PS - Oui, c'était plus clair

  6. #6
    Membre éclairé Avatar de léti07
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    donc oui je suis dans le classeur qui doit recevoir la donnée
    mais l'autre classeur n'est pas forcement ouvert

    j'ai essayé ton code mais ca bug
    j'ai ce message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur d'execution '9':
    l'indice n'appartient pas à la sélection
    et il coince sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & compteur).Value = Workbooks(nom).Worksheets("résumé").Cells(16, 13).Value
    c'est peut etre à cause de "nom"

    car j'ai un classeur par ligne donc j'ai mis le nom du classeur dans une variable
    (j'ai fait le teste avec les classeurs ouverts)

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Avant ta ligne, vérifie ce que tu as dans "nom" (debugprint ou msgbox nom)
    Sinon, vérifie le nom de ta feuille, sinon, assure-toi que ton classeur est ouvert, sinon... j'vois pas
    Un conseil : Donne plus de code qu'on y voit plus clair. Où ouvres-tu ton classeur ? Où prends-tu son nom ? dans la même procédure ? etc...

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/08/2006, 10h56
  2. Réponses: 28
    Dernier message: 09/06/2006, 14h05
  3. Réponses: 2
    Dernier message: 04/04/2006, 16h14
  4. Récupérer les informations d'un autre site
    Par deelyth dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/01/2006, 09h44
  5. Récuperer les fichiers d'une autre machine sur une autre
    Par khalidlyon dans le forum Réseau
    Réponses: 1
    Dernier message: 09/11/2004, 13h40

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