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 :

Etude de faisabilité


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Points : 74
    Points
    74
    Par défaut Etude de faisabilité
    Bonjour,

    P'tit nouveau sur ce domaine j'aurais besoin de vos lumières quant à la faisabilité d'un dev sous Excel.

    Le principe serait de constituer un template Excel contenant une macro afin d'automatiser certains traitements de transcodification actuellement réalisés à la main. Les principales fonctionnalités que j'aimerais développer (et sur lesquelles j'ai des doutes niveau faisabilité) sont les suivantes :

    1- Sélectionner des fichiers Excel (fermé) sur le disque (si possible faisant apparaitre un ecran "standard" d'ouverture de fichier sous Windows du type de celui que l'on obtient en faisant "Fichier->Ouvrir")
    2- Insérer les données des dits fichiers dans des onglets de travail
    3- Transcoder certaines infos : en fait, développer un équivalent à recherchev sauf que recherchev n'est pas multicritere et s'appuie sur un seul élement de la table matrice, dans mon cas j'aimerais m'appuyer sur plusieurs éléments de la table matrice pour retourner une valeur)


    Merci d'avance pour vos conseils avisés !

  2. #2
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut
    tout est faisable.
    le point 1 avec un: application.FileDialog(msoFileDialogOpen).show
    le point 2 ben avec un algo du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vtabMonTableau=wbOuvert.sheets(mafeuille).range("A1:AA65336")
    wbtemplate.sheets(mafeuille).range("A1:AA65336")=vtabMonTableau
    le point 3.. il peut tout a fait etre réalisé avec un RechercheV il suffit de faire un agrégat des valeurs de recherches... mais tu peux le fait par un algo de recherche classic dans tes feuilles.

  3. #3
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par EvaristeGaloisBis Voir le message
    tout est faisable.
    Gloups, moi qui croyais que c'était mission impossible

    Citation Envoyé par EvaristeGaloisBis Voir le message
    le point 1 avec un: application.FileDialog(msoFileDialogOpen).show
    Ok, ça marche super bien effectivement !
    Merci beaucoup

    Citation Envoyé par EvaristeGaloisBis Voir le message
    le point 2 ben avec un algo du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vtabMonTableau=wbOuvert.sheets(mafeuille).range("A1:AA65336")
    wbtemplate.sheets(mafeuille).range("A1:AA65336")=vtabMonTableau
    Sur ce point j'ai plus de pb : soit j'ai pas compris, soit je me suis mal exprimé.

    Application.FileDialog(msoFileDialogOpen) me permet de sélectionner un fichier dont je conserve le nom dans une variable. Maintenant, l'idée est de rapatrier les données du fichier identifié dans une feuille du fichier excel en cours d'utilisation. Le fichier dont on veux lire les données est donc fermé et non actif dans excel.

    Plus simplement encore on travaille sur un fichier A, et dans ce fichier A on veut récupérer les données d'un onglet d'un fichier B (fichier n'étant pas ouvert dans Excel)

    Est-ce possible ?

    Citation Envoyé par EvaristeGaloisBis Voir le message
    le point 3.. il peut tout a fait etre réalisé avec un RechercheV il suffit de faire un agrégat des valeurs de recherches... mais tu peux le fait par un algo de recherche classic dans tes feuilles.
    La non plus je n'ai pas très bien compris le principe d' "agrégat des valeurs de recherche", mais pour l'instant je suis plus préoccupé par le 2e point...

  4. #4
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut
    pour le point 2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim wbMyWorkBook as workbook
    dim stMonChemin as string
    dim vtabMonTableauContenantLesDonnees as variant
    stMonChemin=application.FileDialog(msoFileDialogOpen).show
    if stmonchemin<>"" then
     set wbMyWorkBook = workbooks.open(stMonChemin)
     'recupere d'un seul coup toutes les données de mon fichier
     vtabMonTableauContenantLesDonnees=wbMyWorkBook.sheets(1).range("A1:AA65335")
     wbMyWorkBook.close(false)
     set wbMyWorkBook= nothing 
    'Et on les colle dans ton classeur excel qui contient la macro
      thisworkbook.sheets(1).range("A1:AA65335").value=vtabMonTableauContenantLesDonnees
    end if
    Pour le point 3:
    tu as a faire une recherche pour que la colonne A= une truc et la colonne B=un autre truc.
    Tu fais la formule en C = A &"," & B
    et tu fais un vLookup sur C et non plus sur le A et le B

  5. #5
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Points : 74
    Points
    74
    Par défaut
    Merci beaucoup pour ton aide, j'avance à grand pas grace à toi !
    Je reste malgré tout confronté à qq soucis.
    J'ai notamment un comportement étonnant dans l'utilisation d'un VLOOKUP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "=VLOOKUP(INPUT!A" & myRow & "&INPUT!C" & myRow & ",Transco!" & myRange & ",9,FALSE)"
    Le résultat dans Excel n'est pas du tout celui attendu, voila ce qu'on trouve dans la barre de calcul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV(INPUT!'A5'&INPUT!$E:$E;Transco!$B:$B:'L4';9;FAUX)
    Alors que lorsque je trace la valeur d'ActiveCell.FormulaR1C1 dans le débugger j'ai bien la formule attendue, à savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =VLOOKUP(INPUT!A5&INPUT!C5,Transco!C2:L4,9,FALSE)
    J'ai un peu tout essayé relatif ou non, utilisation de application.vlookup... mais rien n'y fait, j'ai toujours le même problème... Une idée peut être ?

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    FormulaR1C1 attend des références de cellules de type RC (R pour Row et C pour Column). Par exemple pour la cellule B5, la référence doit s'écrire R5C2, ce qui n'est pas le cas dans ta formule.

    Essaie comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Formula = "=VLOOKUP(INPUT!A" & myRow & "&INPUT!C" & myRow & ",Transco!" & myRange & ",9,FALSE)"
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  7. #7
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par fring Voir le message
    FormulaR1C1 attend des références de cellules de type RC (R pour Row et C pour Column). Par exemple pour la cellule B5, la référence doit s'écrire R5C2, ce qui n'est pas le cas dans ta formule.
    Rhalala !! c'est tout ?? je suis vraiment le dernier des idiots !
    Mais merci beaucoup en tout cas !

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

Discussions similaires

  1. Etude de faisabilité
    Par diden138 dans le forum Méthodes
    Réponses: 10
    Dernier message: 12/01/2010, 21h05
  2. [Débutant] Etude de faisabilité
    Par Diody dans le forum Flash/Flex
    Réponses: 2
    Dernier message: 10/09/2009, 23h25
  3. Etude de faisabilité
    Par pikaboo2005 dans le forum Eclipse C & C++
    Réponses: 10
    Dernier message: 15/11/2007, 16h29
  4. Etude de faisabilité
    Par boux2 dans le forum Flash
    Réponses: 5
    Dernier message: 07/04/2007, 15h33
  5. Etude de faisabilité: images WebCam
    Par Flophx dans le forum Linux
    Réponses: 2
    Dernier message: 20/01/2007, 19h48

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