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 Insérer des tableaux dans un tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 6
    Par défaut VBA Insérer des tableaux dans un tableau
    Bonjour cher Forum,
    Je joins à ce message un fichier excel Exemple pour mieux illustrer ma demande d'aide.
    J'ai un code VBA (très simple) que je souhaite améliorer, pour le problème suivant

    J'ai un tableau sur une feuille 1, ce tableau reprend des informations concernant des acteurs (ACTOR ID) et une série des caractéristiques, chaque acteur est repris une fois.

    J'ai un deuxième tableau sur une feuille 2 qui reprend des informations pour les acteurs mais cette fois les acteurs sont répétés au tant de fois qu'ils ont des produits différents ( product lab).

    Et j'ai, un code qui permet d'intégrer les informations du second tableau dans le premier en créant pour chaque acteur, des sous lignes qui détaillent les informations colonnes. (Une sorte de décomposition de ACTOR ID), le résultat est obtenu sur la feuille "Résultat".
    Je souhaite améliorer mon code pour avoir la même sortie que sur la feuille 3, c'est à dire quand on ouvre un acteur ID on voit aussi les titres.

    Ps : le nombre ligne de chaque tableau n'est pas connu en avance.

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Essayez ceci
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    Option Explicit
     
    Public Sub MAJ()
        Dim oSh1 As Worksheet
        Dim oSh2 As Worksheet
        Dim oShRes As Worksheet
        Dim iLig1 As Integer
        Dim iDerLig1 As Integer
        Dim iLig2 As Integer
        Dim iDerLig2 As Integer
        Dim iDerLig3 As Integer
        Dim iEcr As Integer
        Dim iDeb As Integer
        Dim iFin As Integer
        Set oSh1 = Worksheets("Feuil1")
        Set oSh2 = Worksheets("Feuil2")
        Set oShRes = Worksheets("Resultat")
        'dégroupe
        On Error Resume Next
        oShRes.Rows.Rows.Ungroup
        On Error GoTo 0
        iDerLig1 = oSh1.Range("B" & Rows.Count).End(xlUp).Row
        iDerLig2 = oSh2.Range("B" & Rows.Count).End(xlUp).Row
        iDerLig3 = oShRes.Range("B" & Rows.Count).End(xlUp).Row
        oShRes.Range(Cells(4, "B"), Cells(iDerLig3, "H")).Clear 'on efface les précédents résultats
        iEcr = 4
        For iLig1 = 5 To iDerLig1
            iDeb = -1
            iFin = -1
            oShRes.Range("B" & iEcr & ":H" & iEcr).Value = oSh1.Range("B" & iLig1 & ":H" & iLig1).Value
            oShRes.Range("B" & iEcr + 1 & ":H" & iEcr + 1) = Array("PRODUCT LAB.", "ACTOR NAME", "ACTOR SEG", "PNB", "E.V.A", "R.W.A", "Rating")
            oShRes.Range("B" & iEcr + 1 & ":H" & iEcr + 1).Interior.Color = RGB(217, 226, 243)
            iEcr = iEcr + 2
            For iLig2 = 5 To iDerLig2
                If oSh2.Range("B" & iLig2).Value = oSh1.Range("B" & iLig1).Value Then
                    If iDeb = -1 Then
                        iDeb = iEcr
                    End If
                    iFin = iEcr
                    'ACTOR ID
                    oShRes.Range("B" & iEcr).Value = oSh2.Range("G" & iLig2).Value
                    'ACTOR NAME
                    oShRes.Range("C" & iEcr).Value = oSh1.Range("C" & iLig1).Value
                    'ACTOR SEG
                    oShRes.Range("D" & iEcr).Value = oSh1.Range("D" & iLig1).Value
                    'PNB
                    oShRes.Range("E" & iEcr).Value = oSh2.Range("C" & iLig2).Value
                    'E.V.A
                    'R.W.A
                    'Rating
                    'ligne suivante
                    iEcr = iEcr + 1
                End If
            Next iLig2
            'regroupe
            If iDeb <> -1 And iFin <> -1 Then
                oShRes.Rows(iDeb & ":" & iFin).Rows.Group
            End If
        Next iLig1
        Set oSh1 = Nothing
        Set oSh2 = Nothing
        Set oShRes = Nothing
        'Sheets("feuil2").Visible = xlVeryHidden
    End Sub
    Cdlt

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 6
    Par défaut
    Merci Beaucoup ARTURO83

Discussions similaires

  1. Insérer des tableaux dans un tableau associatif
    Par baguiweb dans le forum Langage
    Réponses: 4
    Dernier message: 01/08/2018, 14h13
  2. Insérer des QSpinBox dans un tableau
    Par peuf23 dans le forum Débuter
    Réponses: 8
    Dernier message: 30/09/2008, 19h11
  3. Insérer des cellules dans un tableau
    Par BkD35 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/12/2007, 22h00
  4. insérer des données dans un tableau lors d'une boucle
    Par sissi25 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 31/05/2007, 09h19
  5. Fonctions VBA renvoyant des tableaux dans Excel
    Par phil_75 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/08/2006, 00h19

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