Powerd911 – Numéro #1 au Canada

Créer des tables et leurs colonnes à partir des informations contenus dans un chiffrier Excel

Ces quelques lignes de code en Visual Basic permettent de créer des tables et des colonnes à partir des informations contenus dans un chiffrier Excel.

Note : Une autre possibilité plus adéquate serait d’utilisé la fonction d’import Excel de PowerAMC

Compatible avec PowerDesigner/PowerAMC 16.5

'* Nom du fichier : CREER_TABLES.vbs
'* Définition : Créer des tables et leurs colonnes à partir des
'* informations contenus dans un chiffrier Excel
'* Modèle: Modèle de données physique (PDM)
'* Objets: Table, Colonne
'* Auteur: Benoît Le Nabec
'* URL : http://www.Powerd911.guru
'* Créé: 2015-01-01
'* Version: 1.0
'***********************************************************************

Option Explicit

Dim mdl ' Référence sur le modèle courant
Dim HaveExcel
Dim RQ
Dim x1

Set mdl = ActiveModel

If (mdl Is Nothing) Then
MsgBox "Il n'y a pas de modèle actif!"
End If

RQ = MsgBox ("Est-ce que Excel est installé sur votre ordinateur ?",   vbYesNo + vbInformation, "Confirmation")

'Si Excel est installé
If RQ = vbYes Then
HaveExcel = True

' Lance Excel et ouvre le document Excel indiquant la(les) tables et colonne(s) à créer
Set x1 = CreateObject("Excel.Application")

x1.Workbooks.Open "C:UsersBenoitDesktopTablesColonnes.xlsx"

'Active le premier onglet
x1.Workbooks(1).Worksheets("Feuil1").Activate
Else
HaveExcel = False
End If

if HaveExcel then
'Appel la routine de création des objets
CREATION_TABLES x1, mdl
end if

'* Nom de la routine : CREATION_TABLES
'* Définition : Créer des tables et leurs colonnes à partir des
'* informations contenus dans un chiffrier Excel
'* Modèle: Modèle de données physique (PDM)
'* Objets: Table, Colonne
'* Auteur: Benoît Le Nabec
'* URL : http://www.Powerd911.guru
'* Créé: 2015-01-01
'* Version: 1.0
'***********************************************************************

sub CREATION_TABLES(x1, mdl)

dim rwIndex
dim count
dim table
dim col

' S'il y'a une erreur passe par dessus
On error Resume Next

count = 0

'Boucle pour toutes les rangées jusqu'à 1000
For rwIndex = 2 To 1000

'Traitement du feuillet Feuil1
With x1.Workbooks(1).Worksheets("Feuil1")

' On termine le traitement si l'on ne trouve pas de nom de table ou de colonne
If .Cells(rwIndex, 1).Value = "" Then
Exit For
End If

' Si la troisième colonne n'a pas de valeur. Cela indique que nous devons créer une table
If .Cells(rwIndex, 3).Value = "" Then

'Création de l'objet Table
set table = mdl.Tables.CreateNew

'Sauvegarde les propriétés : Nom, code et commentaire
table.Name = .Cells(rwIndex , 1).Value
table.Code = .Cells(rwIndex , 1).Value
table.Comment = .Cells(rwIndex , 2).Value

'Indique qu'une nouvelle table a été créée
count = count + 1

' Sinon on créer les colonnes
Else
'Création de l'objet Colonne
set col = table.Columns.CreateNew

'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation
col.Name = .Cells(rwIndex, 1).Value
'MsgBox col.Name, vbOK + vbInformation

col.Code = .Cells(rwIndex, 1).Value

col.DataType = .Cells(rwIndex, 2).Value
'MsgBox col.DataType, vbOK + vbInformation

col.Comment = .Cells(rwIndex, 3).Value
End If
End With
Next

MsgBox "Nombre de table créée : " + CStr(count), vbOK + vbInformation

'Fermeture du fichier
x1.Workbooks.close

Exit Sub

End sub
Tableau Excel

Tableur permettant de définir les tables et les colonnes à créer dans le modèle physique de données

Tagged on: ,

Laisser un commentaire