Programme VB.Net - Excel! HELP!!

lizi22 Messages postés 4 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 1 juin 2008 - 30 mai 2008 à 14:43
lizi22 Messages postés 4 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 1 juin 2008 - 30 mai 2008 à 16:31
Bonjour,

J'ai actuellement un... énooorme problème. Je dois écrire deux programmes sous sharpdevelop qui utilise une base de données sous excel.
Le premier est bien avancé, il doit calculer la moyenne, écart-type... d'une variable (il y en a 3 au total) seulement, j'ai pleins de valeurs manquantes donc les résultats sont faussés.

Pour le deuxième, l'utilisateur choisit une variable et un critère parmi 3 proposés (qui sont aussi dans le fichier de données). Le programme doit afficher les modalités de la variable par ordre de popularité suivant le critère choisi... Un peu compliqué à expliquer

Par exemple, si on choisit la variable restaurant (qui a 4 modalités) et le critère étude (3 modalités), le résultat: étudiants: 1.ru
               2.mcdo

Je suis un peu (beaucoup même) désespérée et je ne sais pas si ça se fait de "balancé" tout ça

Enfin, si quelqu'un a des idées... je suis preneuse ! Merci !

4 réponses

lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
30 mai 2008 à 14:49
Bonjour,

C'est quoi la question???

slb

---------------------------------------------------------------
Il faut beaucoup donner pour recevoir un tout petit peu...
---------------------------------------------------------------
0
lizi22 Messages postés 4 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 1 juin 2008
30 mai 2008 à 14:55
Ah oui désolée...
La question serait... Comment on fait??


Ce serait sûrement trop demandé un programme entier... mais en même temps je suis vraiment désespérée... ma vie d'étudiante est en jeu  lol

Merci d'avance
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
30 mai 2008 à 14:58
Re:

Oui en effet c'est trop demander un programme entier...
Ta vie d'étudiante est en jeu... Tu n'as jamais programmé??? Ton projet est pour hier???
Si tu lis attentivement le reglement, tu verras que sur le site, tu trouveras toute l'aide nécessaire à chaque étape de TA programmation. Mais nous ne faisons pas du clé en main...
Désolée mais tu vas devoir t'y coller et si nous le pouvons (et je pense que nous le pourrons) nous t'aiderons en corigeant ton code ou en te conseillant sur une méthode.

Bon courage

slb

---------------------------------------------------------------
Il faut beaucoup donner pour recevoir un tout petit peu...
---------------------------------------------------------------
0
lizi22 Messages postés 4 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 1 juin 2008
30 mai 2008 à 16:31
Oui c'est normal, et oui j'ai déjà programmer et voilà ce que j'ai fait pour l'instant mais, rien ne s'affiche dans mes labels... et à cause des valeurs manquantes je pense que tout est faussé... Peut-être faut-il faire une boucle ou quelque chose comme ça...


Imports System.Windows.Forms



Imports



Microsoft.VisualBasic


Imports



System.IO


Public Partial Class



Form1


Public
app

As
object


Public
ofd1

As New
OpenFileDialog


Public
cl, f

As
Object


Public
nbligne

As
Integer


Public Sub New
()






Me
.InitializeComponent()app=createobject("excel.application")

app.visible=


false


app.screenUpdating=

False


'on ouvre le fichier


app.workbooks.open(filename)cl=app.workbooks.item(1)

f=app.worksheets.item(1)


End Sub

Sub


Button5Click(

ByVal
sender

As
Object
,

ByVal
e

As
EventArgs)Mainform.show


Me
.Hide


End Sub

Sub


Button4Click(

ByVal
sender

As
Object
,

ByVal
e

As
EventArgs)

Tmin.Text=""

Tmax.Text=""

Tmoy.Text=""

Tecart.Text=""

Tet.Text=""

Tq1.Text=""

Tq2.Text=""

Tq3.text=""


End Sub

Sub


Button1Click(

ByVal
sender

As
Object
,

ByVal
e

As
EventArgs)


Dim
j

As
Integer
'j=colonnes


For
j=48

To
50listBox1.items.Add(f.cells(1,j).value)

listbox1.items.Remove(f.cells(1,3).value)


Next
j


End Sub

Sub


Button2Click(

ByVal
sender

As
Object
,

ByVal
e

As
EventArgs)


Dim
variable

As
String


Label11.Text listbox1.selecteditem variable listbox1.selecteditem


End Sub

Sub


Button3Click(

ByVal
sender

As
Object
,

ByVal
e

As
EventArgs)


Dim
i, j

As
Integer


Dim
cpt1, cpt2

As
Integer
, cpt3

as
Integer


dim
b, k

as
String


Dim
som2, som3, Somme, vari

As
single
'Variables somme


dim
a

as
string


'Dim Numerodecolonne() As Integer


Dim
numerocolonne

As
Integer


Dim
min, max

As
Single


nbligne = 0

app=createobject("excel.application")

app.visible=


false


app.screenUpdating=

false


'on ouvre le fichier


Numerocolonne = f.cells.find(label11.Text).Column


'pour trouver le nombre de lignes


nbligne=0


Do


nbligne=nbligne+1


Loop Until
Convert.ToString(f.cells(nbligne+1,1).value)=""


'If isnumeric(f.cells(2,numerocolonne).value) = True then'variable quantitative


For
i=2

To
nbligne


if
f.cells(Numerocolonne,i).value<>""

then


Somme += f.cells(i,Numerocolonne).valuecpt3=cpt3+1


end ifNext


i


'calcule de la moyenne


Tmoy.Text = somme/cpt3


for
i=2

to
nbligne


For
j=1

To
nbligne-i


Do


a = f.cells(i+j,Numerocolonne).value

f.cells(i+j,Numerocolonne).value = f.cells(i,Numerocolonne).value

f.cells(i,Numerocolonne).value = a


Loop until
(f.cells(i,Numerocolonne).value <= f.cells(i+j,Numerocolonne).value)


next
j


Next
i


'calcul du minimum et maximum


min f.cells(2,Numerocolonne).valuemax f.cells(nbligne,Numerocolonne).value

Tmin.Text=min

Tmax.Text=max


'calcul de l'étendue


Tet.Text = max-min


'calcul de la médiane


Tq2.Text = f.cells((nbligne/2),numerocolonne).value


'calcul des quartiles


Tq1.Text f.cells((nbligne)/4, numerocolonne).valueTq3.Text f.cells((nbligne)-((nbligne)/4), numerocolonne).value


'calcul de l'écart-type


For
i = 2

To
nblignesom2 += (f.cells(i,numerocolonne).value)^2


Next
isom3 = som2 - ((somme/nbligne)^2)

vari = som3/(nbligne)

Tecart.Text =


string
.Format("{0:F2}",(vari)^(1/2))


'Else

'variable qualitative

'cpt1 = 0

'cpt2 = 0


b = f.cells(2,numerocolonne).value


For
i = 2

To
nbligne


'for j=2 to nbligne-i


If
( f.cells(i,numerocolonne).value) = (f.cells(i+1,numerocolonne).value)

Then


cpt1 = cpt1+1


Else


k f.cells(i,numerocolonne).valuecpt2 cpt2+1


End If


'next j


Next
i

 

label3.Text = (f.cells(2,numerocolonne).value)

label5.Text = k

Tmin.Text =


string
.Format("{0:F2}",cpt1/(cpt1+cpt2))Tmoy.Text =


string
.Format("{0:F2}",cpt2/(cpt1+cpt2))


'End If


End Sub
End Class
0
Rejoignez-nous