Inverser 2 éléments d'un tableau [Résolu]

Messages postés
4
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
28 janvier 2008
- - Dernière réponse : PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
20
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 154 internautes nous ont dit merci ce mois-ci

Commenter la réponse de PCPT
Messages postés
390
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 154 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Megafan
Messages postés
4
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
28 janvier 2008
0
Merci
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
Commenter la réponse de Mario329
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
20
0
Merci
ok

peut-être pas besoin de double parenthèses alors ;)
EcrEmpl(<strike>(</strike>RangEmpl<strike>)</strike>)
Commenter la réponse de PCPT