Wednesday, August 10, 2011

Installation de Visual Studio 2010 à partir de Dreamspark

Voici des PDF afin de procéder à l'installation de : Visual Studio 2010 et SIMIO

N'oubliez pas que VS 2010 est gratuit pour les étudiants.



Installation de Simio.pdf (vous devez avoir une licence)

Bonne installation !

Pour de l'aide en VB voici 2 tutoriels :


Olivier

Utiliser VBA avec EXCEL

Parfois pour des petits programmes ou simplement tester un petit simulateur, la programmation VBA avec EXCEL est avantageuse.

Voici un exemple de comment débuter un projet avec Excel 2007 et VBA.

1. étape ouvrez Excel
2. Maintenant vérifier si l'onglet développeur se situe en haut à gauche.



3. Dans l'image ci-dessus l'onglet développeur n'est pas présent, nous allons l'ajouter.
Pour ce faire nous allons cliquer sur le rond Office situé en haut à gauche. puis sur le bouton "
Options Excel", vous allez avoir une fenêtre avec 3 cases à cocher , cocher la 3eme "Afficher l'onglet développement dans le ruban" et cliquer sur Ok.

vous allez avoir maintenant l'onglet
développeur.

Nous allons maintenant créer un bouton afin de voir un peu de code.

4. pour créer un bouton cliquer sur
Insérer dans l'onglet développeur.
Choissiez bouton (le premier) et créer un bouton sur votre formulaire excel.

une fenêtre va avoir ouvrir, nommer votre bouton et cliquer sur "
Nouvelle"


vous allez avoir voir une fenêtre qui va contenir la procédure du bouton

Sub NomDeVotreBouton()

End Sub

Ceci est votre événement de bouton nous allons maintenant voir comment inter-réagir avec vos feuilles Excel et ce bouton.

1. déclaration des variables



2. Opérations de base (si alors, loop...)


3. Insertion de fonction


4. Débogage en VBA




Quoi mettre dans nos fonctions et procédures (le code pour écrire et interroger les cellules de nos feuilles Excel)

1. L'importance des "Ranges"

Un Range permet de travailler en référence avec un groupe de données. Il évite de devoir travailler avec des données comme A1,E12,F22. En VBA la colonne Horizontal A,B,C.... n'existe pas c'est sous forme de tableau (1,1) (1,2) (2,3) ... donc il faut constamment convertir les lettre en position chiffre (exemple b =2, c=3) donc A2 en VBA s'exprime sous la forme de (1,2) (les indices débutent à 1).

avec notre Range (moRange) (voir plus bas) E11 s'exprime (1,1) E12(2,1)... c'est pour cela que c'est plus facile de travailler avec un "range". aussi si vous déplacer vos données vous n'aurez pas besoin de modifier votre code car votre "range" est relatif.

2. comment créer un "Range"

Il suffit de sélectionner des donnée et d'écrire un nom dans la case situé en haut à gauche et une fois le nom écrit, appuyer sur la touche "Entrer"

Maintenant j'ai un Range au nom de "MoRange" qui contient les donnée de E11 à E16.

3. Comment lire un "Range"
dim x as integer
x = Range("MoRange").Cells(1, 2)


4. Comment modifier les données dans un "Range"

Range("MoRange").Cells(1, 1).Value = 1

ceci insert la valeur 1 dans la première cellule de mon Range.

voici un exemple de boucle

While Range("MoRange").Cells(1, 1).Value <> Range("MoRange").Cells(1, 2)
X= X+ 1
Wend

For Counter = 1 To Range("MoRange").Cells(1, 1).Value
Range("
MoRange").Cells(1, 2).Value = Counter
Next Counter

Pour effacer une case
Range("MoRange").Cells(1, 1).ClearContents

Faire de count du nombre de ligne du Range
Range("
MoRange").Rows.Count

ex :
For compterow = 1 To Range("
MoRange").Rows.Count
....
Next compterow

Changer la couleur
Range("
MoRange").Cells(1, 1).Interior.Color = RGB(255, 255, 255)

CPLEX OPL et .Net

Ici nous allons voir comment intégrer les dll de cplex et comment faire un mini projet.
Afin d’intégrer la librairie .dll de CPLEX directement dans votre programme effectuez les étapes suivantes :

1. Copier les fichiers cplexXXX.dll, ILOG.Concert.dll, et ILOG.CPLEX.dll dans le classeur \bin\Debug de votre projet.

2. Créer un dossier sur le disque local C:\ appelé ILOG.

C:\ILOG

3. Dans le dossier C:\ILOG créer un dossier appélé ILM

C:\ILOG\ILM

4. Dans le dossier C:\ILOG\ILM copier le fichier ACCESS.ILM.

Le fichier ACCESS.ILM contient les licences d’utilisation.


5.Si vous êtes à l'extérieur de votre réseau (qui contient les licences) vous allez alors avoir besoin d'un VPN afin de vous identifier sur le réseau. Ca permet à CPLEX de vérifier la validité des licences.

Et voilà !!!

Maintenant voici un exemple de code. et VB.Net

(important de faire les imports)



Imports ILOG.Concert
Imports ILOG.CPLEX



Public Class Blend
Friend Shared _nbElements As Integer = 3
Friend Shared _nbRaw As Integer = 2
Friend Shared _nbScrap As Integer = 2
Friend Shared _nbIngot As Integer = 1
Friend Shared _alloy As Double = 71.0

Friend Shared _cm As Double() = {22.0, 10.0, 13.0}
Friend Shared _cr As Double() = {6.0, 5.0}
Friend Shared _cs As Double() = {7.0, 8.0}
Friend Shared _ci As Double() = {9.0}
Friend Shared _p As Double() = {0.05, 0.3, 0.6}
Friend Shared _P1 As Double() = {0.1, 0.4, 0.8}

Friend Shared _PRaw As Double()() = {New Double() {0.2, 0.01}, New Double() {0.05, 0.0}, New Double() {0.05, 0.3}}
Friend Shared _PScrap As Double()() = {New Double() {0.0, 0.01}, New Double() {0.6, 0.0}, New Double() {0.4, 0.7}}
Friend Shared _PIngot As Double()() = {New Double() {0.1}, New Double() {0.45}, New Double() {0.45}}


Public Overloads Shared Sub Main(ByVal args() As String)
Try
Dim cplex As New Cplex()

Dim m As INumVar() = cplex.NumVarArray(_nbElements, 0.0, System.Double.MaxValue)
Dim r As INumVar() = cplex.NumVarArray(_nbRaw, 0.0, System.Double.MaxValue)
Dim s As INumVar() = cplex.NumVarArray(_nbScrap, 0.0, System.Double.MaxValue)
Dim i As INumVar() = cplex.NumVarArray(_nbIngot, 0.0, System.Double.MaxValue)
Dim e(_nbElements - 1) As INumVar

' Objective Function: Minimize Cost
cplex.AddMinimize(cplex.Sum(cplex.ScalProd(_cm, m), cplex.ScalProd(_cr, r), cplex.ScalProd(_cs, s), cplex.ScalProd(_ci, i)))

' Min and max quantity of each element in alloy
Dim j As Integer
For j = 0 To _nbElements - 1
e(j) = cplex.NumVar(_p(j) * _alloy, _P1(j) * _alloy)
Next j

' Constraint: produce requested quantity of alloy
cplex.AddEq(cplex.Sum(e), _alloy)

' Constraints: Satisfy element quantity requirements for alloy
For j = 0 To _nbElements - 1
cplex.AddEq(e(j), cplex.Sum(m(j), cplex.ScalProd(_PRaw(j), r), cplex.ScalProd(_PScrap(j), s), cplex.ScalProd(_PIngot(j), i)))
Next j

If cplex.Solve() Then
If cplex.GetStatus().Equals(cplex.Status.Infeasible) Then
Console.WriteLine("No Solution")
Return
End If

Dim mVals As Double() = cplex.GetValues(m)
Dim rVals As Double() = cplex.GetValues(r)
Dim sVals As Double() = cplex.GetValues(s)
Dim iVals As Double() = cplex.GetValues(i)
Dim eVals As Double() = cplex.GetValues(e)

' Print results
Console.WriteLine(("Cost:" & cplex.ObjValue))

Console.WriteLine("Pure metal:")
For j = 0 To _nbElements - 1
Console.WriteLine(("(" & j & ") " & mVals(j)))
Next j
Console.WriteLine("Raw material:")
For j = 0 To _nbRaw - 1
Console.WriteLine(("(" & j & ") " & rVals(j)))
Next j
Console.WriteLine("Scrap:")
For j = 0 To _nbScrap - 1
Console.WriteLine(("(" & j & ") " & sVals(j)))
Next j
Console.WriteLine("Ingots : ")
For j = 0 To _nbIngot - 1
Console.WriteLine(("(" & j & ") " & iVals(j)))
Next j
Console.WriteLine("Elements:")
For j = 0 To _nbElements - 1
Console.WriteLine(("(" & j & ") " & eVals(j)))
Next j
End If
System.Console.Write(" ")
cplex.End()
Catch exc As ILOG.Concert.Exception
Console.WriteLine(("Concert exception '" + exc.ToString + "' caught"))
End Try
End Sub 'Main
End Class 'Blend

'
'Cost:653.554
'Pure metal:
'0) 0
'1) 0
'2) 0
'Raw material:
'0) 0
'1) 0
'Scrap:
'0) 17.059
'1) 30.2311
'Ingots :
'0) 32.4769
'Elements:
'0) 3.55
'1) 24.85
'2) 42.6
'


Access et VB.Net

premièrement faire une classe connexion.vb
Pour télécharger la classe : Connection.rar

Cette classe permet de bien gérer les connexions.
Vous faites vos déclarations à un seul endroit. De plus, il est important de ne jamais laisser une connexion ouverte. Il est important de travailler en mode déconnecté.

voici un autre site web pour des exemple :http://www.homeandlearn.co.uk/NET/nets12p4.html

La classe connexion :

Imports System.Data
Imports System.Data.OleDb

Public Class connection

#Region "Constants"
Private Const PATH As String = "c:\CGSC.mdb"
#End Region

#Region "Fields"
Private _ObjetConnection As OleDbConnection
Private _ds As DataSet

#End Region

#Region "Properties"

Public Property OpenConn() As OleDbConnection

Get
'Connexion à la BD selon une PATH
_ObjetConnection = New OleDbConnection
_ObjetConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & PATH
Try
_ObjetConnection.Open()
Catch ex As Exception
'MsgBox("Impossible d'ouvrir la connexion")
End Try


Return _ObjetConnection
End Get
Set(ByVal value As OleDbConnection)

_ObjetConnection.Close()

End Set
End Property

Public Property Connect(ByVal sql As String) As DataSet
Get

Dim ObjetDataAdapter As OleDbDataAdapter

Try
Dim r As OleDbConnection
r = OpenConn
_ds = New DataSet
'Requete SQL
ObjetDataAdapter = New OleDbDataAdapter(sql, r)
'Ouverture de la BD
ObjetDataAdapter.Fill(_ds, "Nom de la BD")

OpenConn = Nothing
Catch ex As Exception
'MsgBox(ex.Message)
End Try
Return _ds
End Get
Set(ByVal value As DataSet)
_ds = value
End Set
End Property

#End Region


End Class



Deuxièmement voici un exemple de connexion à la base de données :



Imports System.Data
Imports System.Data.OleDb

Private Sub Launch()
Dim conn As New connection
Dim ds As DataSet
ds = conn.Connect("select * from TABLE")

For Each r As DataRow In ds.Tables(0).Rows

Dim query As String = "UPDATE TABLE SET CHAMPS = 'aaaa' WHERE CONDITION = '" & r("CHAMPS") & "'"

Try
'Opération de mise à jour UPDATE
Dim ole As OleDbConnection
'Connexion
ole = conn.OpenConn
Dim oledbcomm As New OleDbCommand
oledbcomm.Connection = ole
'Requete
oledbcomm.CommandText = query
oledbcomm.ExecuteNonQuery()

conn.OpenConn = Nothing

Catch ex As Exception
'voir mon erreur (selon une class msgbox custom) sinon seulement
'sans custom
'msgbox(ex.Message)
'avec Class cumtom
Dim n As New msgbox
n.Show(ex.Message)

End Try

Next

conn.Connect("") = Nothing
End Sub

SQL et Vb.Net

Voici un exemple de connexion à un serveur SQL avec une requête simple (SELECT)
puis un UPDATE sur les résultats trouvés par la première requête


Il est possible de faire comme dans le POST précèdent ACCESS et VB.NET une classe connexion afin de mieux gérer votre code et répéter le moins possible votre code.


Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient

Private Const BDSQLCONNEXIONSTRING As String = "Data Source=SERVEUR;Initial Catalog=NOM_DE_LA_TABLE;Integrated Security=True"

Private Sub testSQL()

Dim SQLStr As String
Dim ConnString As String
Dim SQLdr As SqlDataReader
'Connstring = Server Name, Database Name, Windows Authentication

ConnString = BDSQLCONNEXIONSTRING
'SQL Staments
SQLStr = "SELECT * FROM TABLE"


'Write to SQL
Dim SQLConn As New SqlConnection() 'The SQL Connection
Dim SQLCmd As New SqlCommand() 'The SQL Command

SQLConn.ConnectionString = ConnString 'Set the Connection String
SQLConn.Open() 'Open the connection

SQLCmd.Connection = SQLConn 'Sets the Connection to use with the SQL Command
SQLCmd.CommandText = SQLStr 'Sets the SQL String

SQLdr = SQLCmd.ExecuteReader
While SQLdr.Read() 'While Data is Present

Dim query As String = "VOTRE REQUETE"
ConnexionSQL(query)

End While


SQLConn.Close() 'Close the connection

End Sub

Private Sub ConnexionSQL(ByVal q As String)
Dim ConnString As String
ConnString = BDSQLCONNEXIONSTRING

Dim SQLCmd2 As New SqlCommand() 'The SQL Command
Dim SQLConn2 As New SqlConnection()
SQLConn2.ConnectionString = ConnString 'Set the Connection String
SQLConn2.Open() 'Open the connection
SQLCmd2.Connection = SQLConn2
SQLCmd2.CommandText = q
SQLCmd2.ExecuteNonQuery()
SQLConn2.Close()

End Sub

LinkToSQL

LinkToSQL

Link To SQL est un moyen simple d'utiliser votre base de données dans un interface WinForm. Avec LinkToSQL vous pouvez facilement gérer via des tableaux etdes datagrid l'affihage de vos données et la mise-à-jour de celle-ci. !

c'est à voir !

Voici un vidéo en anglais de comment débuter avec LinkToSQL :



voici un blog qui explique comment utiliser Link to SQl
http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx

Programme IBM académique CPLEX/OPL ILOG

Programme IBM académique


Depuis mars 2010, IBM a ajouté les versions complètes des produits ILOG a sa liste de logiciels disponibles par leur programme académique.

Pour pouvoir utiliser ces produits vous devrez vous inscrire sur le site et obtenir votre licence access.ilm personnelle. Il est de la responsabilité de chaque utilisateur de respecter les critères et de renouveler sa licence lorsque nécessaire.

Q: Who can join the Academic Initiative?

A: IBM Academic Initiative membership is open to faculty and research professionals at accredited institutions of higher education and members of standards organizations, all over the globe. Membership is granted on an individual basis. There is no limit on the number of members at an institution that can join.

L'usager DOIT ABSOLUMENT RESPECTER ce qui suit:

In general, members of non-profit organizations may be eligible to join the IBM Academic Initiative only if all of the following conditions are met:

* The non-profit organization conducting the research is predominantly research-oriented, with demonstrable ties to the academic community.
* The research is being done in connection with an academic institution.
* The results of the research will be published in a public academic journal or otherwise be made publicly available.
* The IBM Academic Initiative offerings will not be used for operational or administrative purposes, or in a production environment, outside the scope of the research project.

Pour vous inscrire allez sur le site http://www.ibm.com/academicinitiative/
et cliquez sur le lien « Join now ». Vous recevrez une confirmation de votre inscription au programme académique par courriel.

Dreamspark

Voici une bonne manière pour avoir des la formation MS gratuitement et des logiciels gratuitement...

https://www.dreamspark.com/

Porter attention aux onglets de formations :