Inverser 2 éléments d'un tableau

Résolu
Mario329 Messages postés 4 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 28 janvier 2008 - 28 janv. 2008 à 00:24
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 29 janv. 2008 à 00:28
Bonjour, je début en VB.net, et la procédure suivante devrait inverser les 2 élément du tableau, mais elle ne fonction pas. Exemple, elle prend l'élément 2 et le place dans 3, mais elle ne place pas 3 dans 2?

Private



Sub
cmdInver_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
cmdInver.ClickEcrEmpl((RangEmpl))


'On vérifie pour ne pas être sur le premier enregistrement ensuite on inverse les rangs






If
RangEmpl > 1

Then

gEmployes(RangEmpl) = gEmployes(RangEmpl - 1)


gEmployes(RangEmpl - 1) = gEmployes(RangEmpl)


LireEmpl((RangEmpl))







End



If






End



Sub

4 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 janv. 2008 à 03:16
salut

beh oui... tu fais
b= a
a=b 'qui a déjà changé..., donc b=a pour le a d'origine, soit gEmployes(RangEmpl - 1)

donc forcément çà ne risque pas de fonctionner, il te faut passer par uen variable temporaire
temp=gEmployes(RangEmpl - 1)

gEmployes(RangEmpl - 1) = gEmployes(RangEmpl)

gEmployes(RangEmpl)
=temp

ps : c'est sensé fait quoi çà :  EcrEmpl((RangEmpl))
?
++
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
3
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
28 janv. 2008 à 10:54
Salut PCPT
juste pour rire, si gEmployes est un tableau de nombres, on peut faire

gEmployes(RangEmpl - 1)+=gEmployes(RangEmpl)
gEmployes(RangEmpl)=gEmployes(RangEmpl - 1)-gEmployes(RangEmpl)
gEmployes(RangEmpl - 1)-=gEmployes(RangEmpl)

donc sans employer de variable temporaire !
Mais c'est juste pour rire, car inutile et super pas lisible....
@+
Megafan
3
Mario329 Messages postés 4 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 28 janvier 2008
28 janv. 2008 à 13:22
Merci beaucoup PCPT pour ta réponse rapide, cela fonctionne.




Pour EcrEmpl((RangEmpl))
c'est une procédure pour enregistrer les informations du formulaire si il y a eu des modifications.

Private

Sub EcrEmpl( _
ByVal RgEmpl
As
Short)



'Transfert des données de la feuille vers le tableau

' Écriture des données








If
RgEmpl >= 1

And
RgEmpl <= NbEmpl

Then



'Simple précaution ...






With
gEmployes(RgEmpl)
.Nom = txtNom.Text
.Numero = txtNum.Text
.Telephone = txtTelephone.Text
.Poste = cboPoste.Text
.DateEmbauche =

CDate
(txtDateEmb.Text)
.NumDepartement =

CShort
(lstDept.Text)
.Salaire =

CShort
(txtSalaire.Text)
.SiComm = optComm.Checked
.MtCommission =

CShort
(txtComm.Text)


End



With



' ... jusqu'ici
.

End



If

End



Sub


Mario
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 janv. 2008 à 00:28
ok

peut-être pas besoin de double parenthèses alors ;)
EcrEmpl(<strike>(</strike>RangEmpl<strike>)</strike>)
0
Rejoignez-nous