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 :

Remplissage d'un tableau via des cellules EXCEL


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Par défaut Remplissage d'un tableau via des cellules EXCEL
    Bonjour à tous,

    Je viens vous demander de l'aide pour une instruction que je n'arrive pas à développer.

    J'ai 3 fichiers EXCEL :
    1. Un contenant une fiche concernant des informations sur des armoires de commande de communes
    2. Un fichier contenant une liste déroulante de communes et un bouton "Transfert"
    3. Un (pour le moment vide), qui contiendra les informations récupérées dans le premier via le bouton du second...

    En cliquant sur le bouton "Transfert" après avoir choisi ma commune, je dois parcourir tous les dossiers et sous dossier de la commune pour récupérer les fichiers EXCEL.
    Ensuite j'ouvre chaque fiche, et j'aimerais enregistrer des cellules précises dans un tableau de valeurs. Afin de pouvoir les ressortir dans le fichier 3.

    En me renseignant sur le web, j'ai trouvé quelques informations sur la construction de tableau VBA mais je n'arrive pas à faire un algo compétent.

    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
     
    Sub Transfert_Armoires()
     
    Dim NomDossier As String
    Dim CheminDossier As String
    ' Déclaration du tableau
    Dim TabInformation
     
    ' On récupère le nom sélectionné dans la liste déroulante
    NomDossier = Workbooks(1).Worksheets(1).Cells(7, 2)
    ' On récupère le chemin où la recherche doit s'effectuer
    CheminDossier = "Y:Relevés commandes\" + NomDossier
     
    With Application.FileSearch
        ' Nouvelle recherche
        .NewSearch
        ' Dossier(s) de recherche :
        .LookIn = CheminDossier
        ' Fichiers à rechercher
        .Filename = "*.xlt"
        .FileType = msoFileTypeExcelWorkbooks
        ' Activation de la recherche dans les sous-dossiers
        .SearchSubFolders = True
        ' On éxécute tout ça !
        .Execute
     
        For Ctr = 1 To .FoundFiles.Count 
            ' Pour chaque fichier trouvé, on ouvre et on récupère les données
            Workbooks.Open (.FoundFiles(Ctr))
            ' C'est ici qu'il faut que je fasse mon traitement pour récupérer les infos
            ' J'ai 23 valeurs à récupérer dans chaque fichier
        Next
     
     End With
    End Sub
    Déjà je ne sais pas quel type de tableau déclarer, les arguments devraient correspondre aux lignes et colonnes du tableau excel où je dois transférer les informations.
    Peut être un tableau du type : TabInfos(ligne as integer, colonne as integer)
    Ce qui donnerait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim ligne as integer
     
      For Ctr = 1 To .FoundFiles.Count 
            ' Pour chaque fichier trouvé, on ouvre et on récupère les données
            Workbooks.Open (.FoundFiles(Ctr))
            ligne = 2
            TabInfos(ligne,1) = Range("E4")
            TabInfos(ligne,2) = Range("C5")
            TabInfos(ligne,3) = Range("E6")
            [...]
            ligne = ligne + 1
      Next
    Merci d'avance pour votre aide et bonne journée

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Par défaut
    Ça marche !!!!!

    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
     
    Dim Ctr As Integer, cellule As Integer
    Dim cmpt1 As Long, cmpt2 As Long
    Dim TabInfos(0, 22) As String
    Dim TabCellule As Variant
    Dim CelluleSelect As Variant
     
     ' Affectation des valeurs au tableau TabCellule
     TabCellule = Array("E4", "C5", "E6", "L6", "G7", "G8", "C10", "C11", "C12", "C13", "D16", "D17", "D18", "D19", "O16", "O17", "O18", "D21", "M21", "C20", "G20", "L20", "D22")
     
    For Ctr = 1 To .FoundFiles.Count
         ' Ouverture du premier fichier trouvé
          Workbooks.Open (.FoundFiles(Ctr))
          For cmpt1 = LBound(TabInfos, 1) To UBound(TabInfos, 1)
               cellule = 0
               For cmpt2 = LBound(TabInfos, 2) To UBound(TabInfos, 2)
                   ' Affectation de la variable avec la valeur du tableau en cours
                   CelluleSelect = TabCellule(cellule)
                   ' Ajout dans le tableau
                   TabInfos(cmpt1, cmpt2) = Range(CelluleSelect)
                   cellule = cellule + 1
               Next
           Next
    Next
    Quelle est l'instruction qui permet de voir l'intégralité des valeurs du tableau ??

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    sans avoir regarder plus loin, corriges cette ligne au départ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminDossier = "Y:Relevés commandes\" + NomDossier
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminDossier = "Y:\Relevés commandes\" & NomDossier & "\"
    Bon courage
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. Réponses: 12
    Dernier message: 22/08/2013, 19h06
  2. Réponses: 3
    Dernier message: 26/04/2009, 06h24
  3. Réponses: 3
    Dernier message: 20/02/2006, 15h34
  4. Insérer automatiquement des boutons dans des cellules excel
    Par Oaurelius dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/11/2005, 18h38
  5. [Automation Excel] ajuster des cellules excel
    Par willich dans le forum Access
    Réponses: 4
    Dernier message: 10/10/2005, 10h04

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