Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/10/2011, 10h43   #1
Invité de passage
 
Inscription : février 2011
Messages : 32
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 32
Points : 1
Points : 1
Par défaut Créer macro excel, alimenter un tableau

Bonjour,
Dans le cadre de l’analyse des données d’une grande application, je souhaite alimenter mon tableau Excel en utilisant du macro.
Il s’agit d’un fichier excel qui contient 3 feuilles(pieces jointes)
1- Tableau principal
2- Lien_class_packages
3- Lien_class e_tables.
Le but du macro est d’alimenter le tableau principal à partir des 2 autres tableaux (feuilles) et voici le principe.
On part de la feuille lien_classe_tables :dans cette page on a les tables en colonnes et les packages en lignes, le croix présente le lien entre les packages et les tables en select, update,insert et delete.
Si il y’a un lien entre une table et package, il faut aller dans la deuxième feuille(lien_class_package )et voir s’ il existe un lien entre ce pakage( en colonnes) et les classes (en lignes.), si oui, il faut alimenter la premier tableau(tableau principal) en respectant la table du tableau « lien_class_tables » et la classe du tableau « lien_class_package »
Remarque :dans le tableau »lien_class_packages il existe un lien entre un package et plusieurs table, il faut alimenter le tableau principal dans toutes ces tables exemple budget_regies et (menu_princ, Projet)
Le résultat attendu dans le tableau principal est en rouge.
Merci de me proposer du macro qui fait ca.
Cordialement
Fichiers attachés
Type de fichier : xls Donnees.xls (49,5 Ko, 7 affichages)
toga222 est déconnecté   Envoyer un message privé Réponse avec citation 03
Vieux 30/10/2011, 01h05   #2
Membre du Club
 
Inscription : mars 2007
Messages : 33
Détails du profil
Informations personnelles :
Âge : 58
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mars 2007
Messages : 33
Points : 47
Points : 47
Essaie ceci :
Fichiers attachés
Type de fichier : xls Donnees.xls (65,5 Ko, 10 affichages)
Patrice740 est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 30/10/2011, 10h07   #3
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonjour
Une autre proposition
Code :
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
Sub Report()
Dim c As Range, v As Range
Dim LastLig As Long
Dim Str As String
Dim i As Byte
 
Application.ScreenUpdating = False
With Worksheets("Lien_Classe_tables")
    LastLig = .Cells(.Rows.Count, "C").End(xlUp).Row                 'Dernière ligne du tableau principal
    For Each c In .Range("D7:F" & LastLig).SpecialCells(xlCellTypeConstants)    'on boucle sur les cellules remplies de la plage D7:Fxxx
        Str = .Cells(2, c.Column)                                    'Dans Str on a le nom de la classe
        If Str <> "" Then                                            'si str est non vide
            With Worksheets("Lien_Class_Packages")
                Set v = .Range("C:C").Find(Str, LookIn:=xlValues, lookat:=xlWhole)    'on cherche le nom de la classe dans la colonne C de la feuille Lien Class Packages
                If Not v Is Nothing Then                             'si on trouve la classe
                    For i = 4 To 8                                   'on boucle de la colonne D à H sur la même ligne où on a trouvé le nom de la classe
                        If .Cells(v.Row, i) <> "" Then Worksheets("Tableau_principal").Cells(c.Row, i) = "R"    's'il y a un X, on reporte un X dans tableau principal dans la cellule intersection de la ligne où on a X dans Lien_Classe_tables et la colonne où on a X dans Lien_Class_Packages
                    Next i
                    Set v = Nothing
                End If
            End With
        End If
    Next c
End With
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/11/2011, 15h27   #4
Invité de passage
 
Inscription : février 2011
Messages : 32
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 32
Points : 1
Points : 1
Merci pour votre aide.
Jai une derniere question:
comment je fais pour incrementer une valeur en couleur par exemple je voudrais incrementer la lettre M en rouge dans cette cellule
Code :
Worksheets(IndiceFeuilleTableauFinal).Cells(no_ligne_table_tp, CurColonneClasse) = "M"
Merci
toga222 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 15h31   #5
Invité de passage
 
Inscription : février 2011
Messages : 32
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 32
Points : 1
Points : 1
C Bon j'ai trouvé:
Code :
Worksheets(IndiceFeuilleTableauFinal).Cells(no_ligne_table_tp, CurColonneClasse).Font.Color = RGB(255, 0, 0)
Merci
toga222 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h38.


 
 
 
 
Partenaires

Hébergement Web