begin process at 2012 02 14 11:37:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

Débutants

 > 

Automatisation d'une petite fonction


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Automatisation d'une petite fonction

dimanche 5 avril 2009 à 16:02:29 | Automatisation d'une petite fonction

romanosky35

Bonjour,

Connaissez-vous un moyen d'automatiser une fonction ?
Je vous explique.. j'ai des données dans un tableau à 2 dimensions -> Tabdonnees(Années,Pays).
J'ai mi les années dans un combobox, et je voudrai qu'en cliquant sur une année, il m'affiche dans des textbox le chiffre correspondant à chaque pays.
Sauf que j'ai 29 Pays...

Ce qui m'oblige à écrire (si possible avec un Select Case):

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        '
        '  
        Dim i As Integer = ComboBox1.SelectedIndex
        Select i
            Case 0
           TextBox1.Text = Tabdonnees(1, 1)
           TextBox2.Text = Tabdonnees(1, 2)
           TextBox3.Text = Tabdonnees(1, 3)
           TextBox4.Text = Tabdonnees(1, 4)
           ...
            Case 1
           TextBox1.Text = Tabdonnees(1, 1)
           TextBox2.Text = Tabdonnees(1, 2)
           TextBox3.Text = Tabdonnees(1, 3)
           TextBox4.Text = Tabdonnees(1, 4)
           ...
        End Select
    End Sub

Mais j'ai 16 années (donc 16 cas) et 29 pays !!

Donc je voudrais savoir comment automatiser cette commande.. j'ai tenté ceci :

Dim i As Integer = ComboBox1.SelectedIndex
   Select i
     Case 0
        For Each num As Integer
           TextBox(num).Text = Tabdonnees(1, num)
        Next num

   End Select

Mais il souligne "Integer".. et.; bah je suis coincé.
De même le premier indice, je me dit que c'est Case + 1..
Ca donnerait quelque chose comme ca :

Case 0 To 16
        For Each num As Integer
           TextBox(num).Text = Tabdonnees(Case+1, num)
        Next num


Mais bon, c'est pareil je ne sais pas comment écrire ça.

Si jamais quelqu'un a une idée elle est la bienvenue !

Merci d'avance :)
dimanche 5 avril 2009 à 16:44:26 | Re : Automatisation d'une petite fonction

casy

Membre Club
En supposant que tes textbox soient posés directement sur la form, et non pas sur un panel ou groupbox, ....
En supposant que ton tableau Année va de 1 à 16 et non pas de 0 à 15
En supposant que ton tableau Pays va de 1 à 29 et non pas de 0 à 28

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
  Dim i As Integer = ComboBox1.SelectedIndex +1

  For j as integer = 1 to 29
    Me.Controls("TextBox" & j.ToString).Text = Tabdonnees(i, j)
  next
End Sub


---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]
dimanche 5 avril 2009 à 17:02:27 | Re : Automatisation d'une petite fonction

romanosky35

Arf.; ca ne fonctionne pas.

Je me suis mal expliqué, désolé !

Mon tableau est à double dimension, ca donne :

Année      Allemagne      Autriche   ....   Suède

1991           142                  201              87

1992          

1993

...

2006

Et je me suis trompé ! il y a bien 16 lignes ("Année" + les 15 ans)
(mais j'ai mi que les 15 années dans le Combobox.. donc y'a 15 item)
mais il n'y a que 28 colonnes ("Année" + les 27 pays de l'UE)

Voilà.. désolé mon énoncé manquait de précision.

Du coup si je sélectionne 1991 (1er item du Combobox) il me faut :
dans le textbox1 : Tabdonnees (1,1)
dans le textbox1 : Tabdonnees (1,2)
dans le textbox1 : Tabdonnees (1,3)
...

Tu crois que tu pourrais me redonner des lignes des codes en prenant en compte ceci ???
Pendant ce temps là.. jvé "tenter" de trouver la solution..

Merci d'avance.


dimanche 5 avril 2009 à 17:05:10 | Re : Automatisation d'une petite fonction

casy

Membre Club
Les lignes de codes sont les mêmes sauf que pour j tu ira de 1 à 27

Si ça marche pas, indique le message d'erreur que tu obtiens.

---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]
dimanche 5 avril 2009 à 17:05:44 | Re : Automatisation d'une petite fonction

romanosky35

J'ai mi ceci :

Dim i As Integer = ComboBox1.SelectedIndex
(j'ai donc enlevé le +1)

        For j As Integer = 0 To 27
            Me.Controls("TextBox" & j.ToString).Text = Tabdonnees(i, j)
        Next
(j'ai mi 0 To 27.. ca fait 28 colonnes ca nan ?)

Je lance, il me marque :
"La référence d'objet n'est pas définie à une instance d'un objet"
en soulignant ce que j'ai mi en bleu..
dimanche 5 avril 2009 à 17:07:58 | Re : Automatisation d'une petite fonction

romanosky35

j'ai mi de 1 à 27.. j'ai les noms des pays qui s'affichent dans les textbox..

on y est presque.. :)
dimanche 5 avril 2009 à 17:10:18 | Re : Automatisation d'une petite fonction

romanosky35

Bon bah en fait c'était bien ca :

        Dim i As Integer = ComboBox1.SelectedIndex + 1

        For j As Integer = 1 To 27
            Me.Controls("TextBox" & j.ToString).Text = Tabdonnees(i, j)
        Next

MERCI BEAUCOUP POUR TON AIDE !!
dimanche 5 avril 2009 à 17:12:58 | Re : Automatisation d'une petite fonction

casy

Membre Club
Si tu as le nom du pays qui s'affiche c'est que tu es sur la première ligne du tableau (index 0) correspondante à la première ligne du combo (index 0)

C'est pour cela que j'avais rajouter 1 à l'index du combo pour tomber sur le bonne ligne du tableau


---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]
dimanche 5 avril 2009 à 17:22:20 | Re : Automatisation d'une petite fonction

romanosky35

Oui c'est vrai, désolé.. j'ai... "tenté" ! :)

Et... euh.. Excuses moi je te dérange encore...

Si je veux afficher dans un enième TextBox la moyenne des 27 chiffres, je fais comment ?

Moi évidemment j'ai :

Somme = TextBox1 + Text Box 2....+ text Box 27
Moyenne = Somme / 27
TextBox30.Text = Moyenne

mais.. en automatisé ca donne quoi ??

Et pareil.. j'ai un bouton à côté.. jveu qu'en cliquant dessus, mon PictureBox affiche le graphique associé à l'année (j'ai fai les 15, je les ai enregistrés en image sous le nom "1991.jpg" , "1992.jpg")
Jme di qu'on doit pouvoir aussi faire une boucle genre :

Button_Click
Dim i As Integer = ComboBox1.SelectedIndex + 1990
picture.Load(i.ToString).jpg

qu'en pesnes-tu ?
dsl.. j'dois te saouler avec toutes mes questions.. !
dimanche 5 avril 2009 à 17:31:14 | Re : Automatisation d'une petite fonction

casy

Membre Club
Toujours dans la même boucle :

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
  Dim i As Integer = ComboBox1.SelectedIndex +1
  Dim somme as Integer

  For j as integer = 1 to 29
    Me.Controls("TextBox" & j.ToString).Text = Tabdonnees(i, j)
    somme += Tabdonnees(i,j)
  next
  TextBox30.Text = (somme/27).ToString
 
End Sub

.....
picture.Load(i.ToString & ".jpg" )


note que d'écrire a += 1 revient à écrire a = a+1

---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]

1 2

Cette discussion est classée dans : text, case, num, integer, tabdonnees


Répondre à ce message

Sujets en rapport avec ce message

Gestion Rtf (facil et urgent)plz [ par Rastacana ] Bon alors j ai un fichier text ke je plasse dans une string temp.temp je le bascule ds ma Rich text box alias rtfEt je fait mon traitement sur le rtf Comment faire une jointure entre deux tables [ par laurent207 ] je dévoloppe un prog qui sauvegarde une table access ds un fichier texte. Dans un souci de perfectionnement, je souhaite inscrire dans le fichier le t bleme de calcul [ par Laulaut ] j'ai un gros probleme de calcul si quelqu'un peut m'aide urgence ce serais coolvoila j'ai 3 boite de text et je fais un chiffre dans la premier et un bleme de calcul de chrigffre apre sla virgule [ par Laulaut ] j'ai un gros probleme de calcul si quelqu'un peut m'aide urgence ce serais coolvoila j'ai 3 boite de text et je fais un chiffre dans la premier et un Winsock qui reçoit seulement 1 octet ??? [ par doggy ] Salut !Bon ben voilà, je sais pas trop ce qu'il se passe, mais mon contrôle winsock ne veut pas recevoir plus d'1 octet ...Apres quelques tests, j'ai ADITIONER [ par Rifer ] exeple ...dim add as integer "add on va dire que cestdim tioner as integer "un text avec 10 de marquer"Text1.text = fonction qui marche pas [ par edrimor ] j'ai un problème étrange sur une fonction test, si je ne mets qu'un seul paramètre tout va bien mais si j'en mets deux, j'ai un message d'erreur !le p réception sur port com + buffer [ par comablack ] Bonjours,j'ai un petit boitier, qui, lorsque j'ouvre la porte du lab envoye un signal a 1 sur le port com. J'ai développer un petit soft qui coupe aut Besoin d'aide pour un programme simple... [ par Ghis ] Je doit faire un petit programme en Visual Basic et j'ai vraiment de la difficuleté. Voici le problème:Write a program... that inputs lines of text an Besoin d'aide pour un programme simple... [ par Ghis ] Je doit faire un petit programme en Visual Basic et j'ai vraiment de la difficuleté. Voici le problème:Write a program... that inputs lines of text an


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales