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 :

VBA qui crée des tableaux en fonction d'une liste de données


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2019
    Messages : 38
    Par défaut VBA qui crée des tableaux en fonction d'une liste de données
    Bonjour,

    Est-il possible d'obtenir une programmation VBA qui crée des tableaux en fonctions d'une liste de données (22001ATU1...) ?

    Les tableaux sont à crées dans l'onglet " détail des heures " selon le même modèle que les tableaux existants en fonction du nombre de données (22001ATU1...) situées en colonne A de l'onglet "PFA 01 2022"

    => chaque nouveau tableau de l'onglet "détail des heures" crée doit être mis à jour en colonne A avec les données de la colonne A de l'onglet "PFA 01 2022"

    => Sachant que la liste de données en colonne A de l'onglet "PFA 01 2022" peut être plus importante ou moins importante (elle peut se terminer en ligne 25, 30, ou 45)

    => Par conséquent : si il y a 8 données en colonne A de l'onglet "PFA 01 2022" => il doit y avoir 8 tableaux dans l'onglet " détail des heures "
    si il y a 12 données en colonne A de l'onglet "PFA 01 2022" => il doit y avoir 12 tableaux dans l'onglet " détail des heures "

    J'ai joint un fichier qui illustre mes proposNom : Capture 2.PNG
Affichages : 115
Taille : 52,7 KoNom : Capture 3.PNG
Affichages : 114
Taille : 38,6 Ko
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Est-il possible d'obtenir une programmation VBA qui crée des tableaux en fonctions d'une liste de données (22001ATU1...) ?
    Oui, c'est possible.

    Pour le reste, votre demande ressemble furieusement à un cahier des charges
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2019
    Messages : 38
    Par défaut
    Bonjour,

    est-ce que je pourrai obtenir uniquement cette partie ?

    Est-il possible d'obtenir une programmation VBA qui crée des tableaux en fonctions d'une liste de données (22001ATU1...) ?


    Merci d'avance

    Cordialement

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ce forum est un club d'entraide donc pourriez vous nous indiquer où vous avez un problème par rapport à ce que vous avez écrit comme code ?
    Si vous voulez savoir comment lire l'ensemble des éléments de la liste et en supposant que cette liste se trouve dans un tableau structuré avec une seule colonne, le code est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub t()
      Dim t As Variant
      Dim e As Integer
      t = Application.Transpose(Range("t_Project").Value)
      For e = LBound(t) To UBound(t)
        MsgBox t(e)
      Next
    End Sub
    La variable tableau nommée t contient la liste des éléments contenus dans l'unique colonne d'un tableau structuré nommé "t_Project" et la boucle est prête pour créer vos tableaux.

    [EDIT]
    Quelques tutoriels à lire éventuellement
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2019
    Messages : 38
    Par défaut
    Je vous remercie beaucoup
    Je vous réponds dans la soirée

    Cordialement

  6. #6
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2019
    Messages : 38
    Par défaut
    Bonjour,

    Merci de votre aide !
    Finalement je n'ai qu'une seule question => dans le codage ci-après Est-ce que la liste des données prise en compte par programmation VBA peut s'arrêter à la dernière données en bleu précédent une cellule vide (dans le cas ici présent c'est 2200TRRDF ) => donc dans ce cas les données qui suivent la 1ère cellule vide ne doivent pas être prises en compte ("provisions" et "2200OPOR" "2200 RISKS" ne doivent pas être prise en compte pour la création des tableaux)

    Faut il ajouter " exit for emply cell " dans le codage ?????

    Merci beaucoup

    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
    Sub Macro1()
    Dim OM As Worksheet 'déclare la variable OM (Onglet Modèle)
    Dim OP As Worksheet 'déclare la variable OP (Onglet PFA 01 2022)
    Dim OD As Worksheet 'déclare la variable OD (Onglet Détail des heures)
    Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
    Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
    Dim PL As Range 'déclare la variable PL (PLage)
    Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
     
    Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
    Set OM = Worksheets("Modèle") 'définit l'onglet OM
    Set PL = OM.Range("A8:K19") 'définit la plage PL
    Set OP = Worksheets("PFA 01 2022") 'définit l'onglet OP
    DL = OP.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet OP
    Set OD = Worksheets("Détail des heures") 'définit l'onglet OD
    OD.Rows(8 & ":" & Application.Rows.Count).Delete 'efface les anciennes données de l'onglet OD
    TV = OP.Range(OP.Cells(17, "A"), OP.Cells(DL, "A")) 'définit le tableau des valeurs TV
    Set DEST = OD.Range("A8") 'initialise la cellule de destination DEST
    For I = 1 To UBound(TV, 1) 'boucle sur toutes les ligne I du tableau des valeurs
        PL.Copy DEST 'copie la plage PL dans la cellule de destination DEST
        DEST.Resize(11, 1).Value = TV(I, 1) 'copie la donnée ligne I colonne 1 de TV dans la cellue de destination DEST redimensionnée
        Set DEST = DEST.Offset(13, 0) 'redéfinit la cellule de destination DEST
    Next I 'prochaine ligne de la boucle
    Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
    OD.Activate 'active l'onglet OD
    MsgBox "Boards are completed !" 'message
    End Sub
    Nom : Capture 3.PNG
Affichages : 98
Taille : 38,6 Ko

Discussions similaires

  1. [2008] Requête qui duplique des lignes en fonction d'une valeur dans un champ
    Par Fredo67 dans le forum Développement
    Réponses: 6
    Dernier message: 27/01/2015, 12h03
  2. [AC-2007] Actualisation des champs en fonction d'une liste déroulante
    Par cool17 dans le forum IHM
    Réponses: 2
    Dernier message: 05/04/2010, 20h31
  3. Réponses: 9
    Dernier message: 24/06/2008, 09h45
  4. creer un bouton qui lance des requetes en fonction d'une colonne
    Par akdmks dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/12/2007, 17h41
  5. Réponses: 4
    Dernier message: 22/05/2007, 17h24

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